AbstractObfuscatingReplacer.ts 924 B

12345678910111213141516171819202122232425262728293031
  1. import { inject, injectable, } from 'inversify';
  2. import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
  3. import * as ESTree from 'estree';
  4. import { IObfuscatingReplacer } from '../../../interfaces/node-transformers/obfuscating-transformers/obfuscating-replacers/IObfuscatingReplacer';
  5. import { IOptions } from '../../../interfaces/options/IOptions';
  6. @injectable()
  7. export abstract class AbstractObfuscatingReplacer implements IObfuscatingReplacer {
  8. /**
  9. * @type {IOptions}
  10. */
  11. protected readonly options: IOptions;
  12. /**
  13. * @param {IOptions} options
  14. */
  15. constructor (
  16. @inject(ServiceIdentifiers.IOptions) options: IOptions
  17. ) {
  18. this.options = options;
  19. }
  20. /**
  21. * @param {any} nodeValue
  22. * @param {number} nodeIdentifier
  23. * @returns {Node}
  24. */
  25. public abstract replace (nodeValue: any, nodeIdentifier?: number): ESTree.Node;
  26. }