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 { CommentsTransformer } from '../../../node-transformers/preparing-transformers/CommentsTransformer'; import { ConditionalCommentObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard'; import { CustomNodesTransformer } from '../../../node-transformers/preparing-transformers/CustomNodesTransformer'; import { EvalCallExpressionTransformer } from '../../../node-transformers/preparing-transformers/EvaCallExpressionTransformer'; 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 { VariablePreserveTransformer } from "../../../node-transformers/preparing-transformers/VariablePreserveTransformer"; export const preparingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => { // preparing transformers bind(ServiceIdentifiers.INodeTransformer) .to(CommentsTransformer) .whenTargetNamed(NodeTransformer.CommentsTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(CustomNodesTransformer) .whenTargetNamed(NodeTransformer.CustomNodesTransformer); 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); // obfuscating guards bind(ServiceIdentifiers.INodeGuard) .to(BlackListObfuscatingGuard) .inSingletonScope() .whenTargetNamed(ObfuscatingGuard.BlackListNodeGuard); bind(ServiceIdentifiers.INodeGuard) .to(ConditionalCommentObfuscatingGuard) .inSingletonScope() .whenTargetNamed(ObfuscatingGuard.ConditionalCommentNodeGuard); // obfuscating guards factory bind(ServiceIdentifiers.Factory__INodeGuard) .toFactory(InversifyContainerFacade .getCacheFactory( ServiceIdentifiers.INodeGuard )); bind(ServiceIdentifiers.INodeTransformer) .to(VariablePreserveTransformer) .whenTargetNamed(NodeTransformer.VariablePreserveTransformer); });