mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
import { INode } from "../../interfaces/nodes/INode";
|
|
import { IOptions } from "../../interfaces/IOptions";
|
|
|
|
import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
|
|
|
|
import { AppendState } from "../../enums/AppendState";
|
|
|
|
import { DebugProtectionFunctionIntervalTemplate } from "../../templates/custom-nodes/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate";
|
|
|
|
import { Node } from '../Node';
|
|
import { NodeUtils } from '../../NodeUtils';
|
|
|
|
export class DebugProtectionFunctionIntervalNode extends Node {
|
|
/**
|
|
* @type {AppendState}
|
|
*/
|
|
protected appendState: AppendState = AppendState.BeforeObfuscation;
|
|
|
|
/**
|
|
* @type {string}
|
|
*/
|
|
private debugProtectionFunctionName: string;
|
|
|
|
/**
|
|
* @param debugProtectionFunctionName
|
|
* @param options
|
|
*/
|
|
constructor (debugProtectionFunctionName: string, options: IOptions) {
|
|
super(options);
|
|
|
|
this.debugProtectionFunctionName = debugProtectionFunctionName;
|
|
}
|
|
|
|
/**
|
|
* @param blockScopeNode
|
|
*/
|
|
public appendNode (blockScopeNode: TNodeWithBlockStatement): void {
|
|
NodeUtils.appendNode(blockScopeNode.body, this.getNode());
|
|
}
|
|
|
|
/**
|
|
* @returns {INode}
|
|
*/
|
|
protected getNodeStructure (): INode {
|
|
return NodeUtils.convertCodeToStructure(
|
|
DebugProtectionFunctionIntervalTemplate(this.debugProtectionFunctionName)
|
|
);
|
|
}
|
|
}
|