forked from javascript-obfuscator/javascript-obfuscator
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCodeTransformersModule.ts
More file actions
28 lines (22 loc) · 1.54 KB
/
Copy pathCodeTransformersModule.ts
File metadata and controls
28 lines (22 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { InversifyContainerFacade } from '../../InversifyContainerFacade';
import { ContainerModule, interfaces } from 'inversify';
import { ServiceIdentifiers } from '../../ServiceIdentifiers';
import { ICodeTransformer } from '../../../interfaces/code-transformers/ICodeTransformer';
import { ITransformerNamesGroupsBuilder } from '../../../interfaces/utils/ITransformerNamesGroupsBuilder';
import { CodeTransformer } from '../../../enums/code-transformers/CodeTransformer';
import { CodeTransformerNamesGroupsBuilder } from '../../../code-transformers/CodeTransformerNamesGroupsBuilder';
import { HashbangOperatorTransformer } from '../../../code-transformers/preparing-transformers/HashbangOperatorTransformer';
export const codeTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
// code transformers factory
bind<ICodeTransformer>(ServiceIdentifiers.Factory__ICodeTransformer)
.toFactory<ICodeTransformer>(InversifyContainerFacade
.getCacheFactory<CodeTransformer, ICodeTransformer>(ServiceIdentifiers.ICodeTransformer));
// code transformer names groups builder
bind<ITransformerNamesGroupsBuilder<CodeTransformer, ICodeTransformer>>(ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)
.to(CodeTransformerNamesGroupsBuilder)
.inSingletonScope();
// preparing code transformers
bind<ICodeTransformer>(ServiceIdentifiers.ICodeTransformer)
.to(HashbangOperatorTransformer)
.whenTargetNamed(CodeTransformer.HashbangOperatorTransformer);
});