8000 Object expression keys transformer rework · sec-js/javascript-obfuscator@007af5f · GitHub
[go: up one dir, main page]

Skip to content

Commit 007af5f

Browse files
author
sanex3339
committed
Object expression keys transformer rework
1 parent 7b231fe commit 007af5f

File tree

16 files changed

+27247
-815
lines changed

16 files changed

+27247
-815
lines changed

dist/index.cli.js

Lines changed: 13711 additions & 1 deletion
Large diffs are not rendered by default.

dist/index.js

Lines changed: 13070 additions & 1 deletion
Large diffs are not rendered by default.

src/container/modules/node-transformers/ConvertingTransformersModule.ts

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,14 @@ import { IPropertiesExtractor } from '../../../interfaces/node-transformers/conv
88
import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
99
import { PropertiesExtractor } from '../../../enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor';
1010

11-
import { AssignmentExpressionPropertiesExtractor } from '../../../node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor';
12-
import { BasePropertiesExtractor } from '../../../node-transformers/converting-transformers/properties-extractors/BasePropertiesExtractor';
11+
import { ObjectExpressionToVariableDeclarationExtractor } from '../../../node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor';
1312
import { MemberExpressionTransformer } from '../../../node-transformers/converting-transformers/MemberExpressionTransformer';
1413
import { MethodDefinitionTransformer } from '../../../node-transformers/converting-transformers/MethodDefinitionTransformer';
1514
import { ObjectExpressionKeysTransformer } from '../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer';
1615
import { ObjectExpressionTransformer } from '../../../node-transformers/converting-transformers/ObjectExpressionTransformer';
1716
import { SplitStringTransformer } from '../../../node-transformers/converting-transformers/SplitStringTransformer';
1817
import { TemplateLiteralTransformer } from '../../../node-transformers/converting-transformers/TemplateLiteralTransformer';
19-
import { VariableDeclaratorPropertiesExtractor } from '../../../node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor';
20-
import { AssignmentPatternPropertiesExtractor } from '../../../node-transformers/converting-transformers/properties-extractors/AssignmentPatternPropertiesExtractor';
18+
import { BasePropertiesExtractor } from '../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor';
2119

2220
export const convertingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
2321
// converting transformers
@@ -47,21 +45,13 @@ export const convertingTransformersModule: interfaces.ContainerModule = new Cont
4745

4846
// properties extractors
4947
bind<IPropertiesExtractor>(ServiceIdentifiers.IPropertiesExtractor)
50-
.to(AssignmentExpressionPropertiesExtractor)
51-
.whenTargetNamed(PropertiesExtractor.AssignmentExpressionPropertiesExtractor);
52-
53-
bind<IPropertiesExtractor>(ServiceIdentifiers.IPropertiesExtractor)
54-
.to(AssignmentPatternPropertiesExtractor)
55-
.whenTargetNamed(PropertiesExtractor.AssignmentPatternPropertiesExtractor);
48+
.to(ObjectExpressionToVariableDeclarationExtractor)
49+
.whenTargetNamed(PropertiesExtractor.ObjectExpressionToVariableDeclarationExtractor);
5650

5751
bind<IPropertiesExtractor>(ServiceIdentifiers.IPropertiesExtractor)
5852
.to(BasePropertiesExtractor)
5953
.whenTargetNamed(PropertiesExtractor.BasePropertiesExtractor);
6054

61-
bind<IPropertiesExtractor>(ServiceIdentifiers.IPropertiesExtractor)
62-
.to(VariableDeclaratorPropertiesExtractor)
63-
.whenTargetNamed(PropertiesExtractor.VariableDeclaratorPropertiesExtractor);
64-
6555
// properties extractor factory
6656
bind<IPropertiesExtractor>(ServiceIdentifiers.Factory__IPropertiesExtractor)
6757
.toFactory<IPropertiesExtractor>(InversifyContainerFacade

src/custom-nodes/object-expression-keys-transformer-nodes/BasePropertiesExtractorObjectExpressionHostNode.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { inject, injectable, } from 'inversify';
22
import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
33

4+
import * as ESTree from 'estree';
5+
46
import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
57
import { TStatement } from '../../types/node/TStatement';
68

@@ -13,6 +15,11 @@ import { NodeFactory } from '../../node/NodeFactory';
1315

1416
@injectable()
1517
export class BasePropertiesExtractorObjectExpressionHostNode extends AbstractCustomNode {
18+
/**
19+
* @ type {Property}
20+
*/
21+
private properties!: ESTree.Property[];
22+
1623
/**
1724
* @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
1825
* @param {ICustomNodeFormatter} customNodeFormatter
@@ -29,7 +36,9 @@ export class BasePropertiesExtractorObjectExpressionHostNode extends AbstractCus
2936
super(identifierNamesGeneratorFactory, customNodeFormatter, randomGenerator, options);
3037
}
3138

32-
public initialize (): void {}
39+
public initialize (properties: ESTree.Property[]): void {
40+
this.properties = properties;
41+
}
3342

3443
/**
3544
* @param {string} nodeTemplate
@@ -42,7 +51,7 @@ export class BasePropertiesExtractorObjectExpressionHostNode extends AbstractCus
4251
NodeFactory.identifierNode(
4352
this.identifierNamesGenerator.generate()
4453
),
45-
NodeFactory.objectExpressionNode([])
54+
NodeFactory.objectExpressionNode(this.properties)
4655
)
4756
],
4857
'const'
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
export enum PropertiesExtractor {
2-
AssignmentExpressionPropertiesExtractor = 'AssignmentExpressionPropertiesExtractor',
3-
AssignmentPatternPropertiesExtractor = 'AssignmentPatternPropertiesExtractor',
42
BasePropertiesExtractor = 'BasePropertiesExtractor',
5-
VariableDeclaratorPropertiesExtractor = 'VariableDeclaratorPropertiesExtractor'
3+
ObjectExpressionToVariableDeclarationExtractor = 'ObjectExpressionToVariableDeclarationExtractor'
64
}

src/interfaces/node-transformers/converting-transformers/properties-extractors/IPropertiesExtractor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import { TPropertiesExtractorResult } from '../../../../types/node-transformers/
55
export interface IPropertiesExtractor {
66
/**
77
* @param {ObjectExpression} objectExpressionNode
8-
* @param {Node} hostNode
8+
* @param {Statement} hostStatement
99
* @returns {TPropertiesExtractorResult}
1010
*/
1111
extract (
1212
objectExpressionNode: ESTree.ObjectExpression,
13-
hostNode: ESTree.Node
13+
hostStatement: ESTree.Statement
1414
): TPropertiesExtractorResult;
1515
}

0 commit comments

Comments
 (0)
0