import { InversifyContainerFacade } from '../../InversifyContainerFacade'; import { ContainerModule, interfaces } from 'inversify'; import { ServiceIdentifiers } from '../../ServiceIdentifiers'; import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer'; import { IObfuscatingGuard } from '../../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard'; import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer'; import { ObfuscatingGuard } from '../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard'; import { BlackListObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard'; import { ConditionalCommentObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard'; import { CustomCodeHelpersTransformer } from '../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer'; import { EvalCallExpressionTransformer } from '../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer'; import { ForceTransformStringObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard'; import { MetadataTransformer } from '../../../node-transformers/preparing-transformers/MetadataTransformer'; import { ObfuscatingGuardsTransformer } from '../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer'; import { ParentificationTransformer } from '../../../node-transformers/preparing-transformers/ParentificationTransformer'; import { ReservedStringObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard'; import { VariablePreserveTransformer } from '../../../node-transformers/preparing-transformers/VariablePreserveTransformer'; export const preparingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => { // preparing transformers bind(ServiceIdentifiers.INodeTransformer) .to(CustomCodeHelpersTransformer) .whenTargetNamed(NodeTransformer.CustomCodeHelpersTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(EvalCallExpressionTransformer) .whenTargetNamed(NodeTransformer.EvalCallExpressionTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(MetadataTransformer) .whenTargetNamed(NodeTransformer.MetadataTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(ObfuscatingGuardsTransformer) .whenTargetNamed(NodeTransformer.ObfuscatingGuardsTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(ParentificationTransformer) .whenTargetNamed(NodeTransformer.ParentificationTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(VariablePreserveTransformer) .whenTargetNamed(NodeTransformer.VariablePreserveTransformer); // obfuscating guards bind(ServiceIdentifiers.INodeGuard) .to(BlackListObfuscatingGuard) .inSingletonScope() .whenTargetNamed(ObfuscatingGuard.BlackListObfuscatingGuard); bind(ServiceIdentifiers.INodeGuard) .to(ConditionalCommentObfuscatingGuard) .inSingletonScope() .whenTargetNamed(ObfuscatingGuard.ConditionalCommentObfuscatingGuard); bind(ServiceIdentifiers.INodeGuard) .to(ForceTransformStringObfuscatingGuard) .inSingletonScope() .whenTargetNamed(ObfuscatingGuard.ForceTransformStringObfuscatingGuard); bind(ServiceIdentifiers.INodeGuard) .to(ReservedStringObfuscatingGuard) .inSingletonScope() .whenTargetNamed(ObfuscatingGuard.ReservedStringObfuscatingGuard); // obfuscating guards factory bind(ServiceIdentifiers.Factory__INodeGuard) .toFactory(InversifyContainerFacade .getCacheFactory( ServiceIdentifiers.INodeGuard )); });