1234567891011121314151617181920212223242526272829303132333435363738 |
- import { injectable, inject } from 'inversify';
- import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
- import * as ESTree from 'estree';
- import { IControlFlowReplacer } from '../../../interfaces/node-transformers/IControlFlowReplacer';
- import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
- import { IOptions } from '../../../interfaces/options/IOptions';
- import { IStorage } from '../../../interfaces/storages/IStorage';
- @injectable()
- export abstract class AbstractControlFlowReplacer implements IControlFlowReplacer {
- /**
- * @type {IOptions}
- */
- protected readonly options: IOptions;
- /**
- * @param options
- */
- constructor (
- @inject(ServiceIdentifiers.IOptions) options: IOptions
- ) {
- this.options = options;
- }
- /**
- * @param node
- * @param parentNode
- * @param controlFlowStorage
- * @returns {ESTree.Node}
- */
- public abstract replace (
- node: ESTree.Node,
- parentNode: ESTree.Node,
- controlFlowStorage: IStorage <ICustomNode>
- ): ESTree.Node;
- }
|