@banana020/ast-plugin-system
Version:
AST插件系统 - 支持JavaScript/TypeScript代码转换,包含十六进制转换、代码清理等功能
190 lines (189 loc) • 4.99 kB
TypeScript
import { type ASTPlugin, type PluginInfo } from './src/types/index.ts';
/**
* 转换配置
*/
export interface TransformConfig {
inputDir: string;
outputDir: string;
plugins: PluginInfo[];
include: string[];
exclude: string[];
preserveStructure: boolean;
}
/**
* 默认转换配置
*/
export declare const defaultConfig: TransformConfig;
/**
* 自定义配置示例
*/
export declare const customConfigs: {
jsOnly: {
include: string[];
inputDir: string;
outputDir: string;
plugins: PluginInfo[];
exclude: string[];
preserveStructure: boolean;
};
typeSpecific: {
plugins: {
name: string;
description: string;
version: string;
plugin: ASTPlugin;
nodeTypes: string[];
}[];
inputDir: string;
outputDir: string;
include: string[];
exclude: string[];
preserveStructure: boolean;
};
delExtraOnly: {
plugins: PluginInfo[];
inputDir: string;
outputDir: string;
include: string[];
exclude: string[];
preserveStructure: boolean;
};
deadCodeCleanup: {
plugins: {
name: string;
description: string;
version: string;
plugin: ASTPlugin;
nodeTypes: string[];
}[];
inputDir: string;
outputDir: string;
include: string[];
exclude: string[];
preserveStructure: boolean;
};
constantCalculation: {
plugins: {
name: string;
description: string;
version: string;
plugin: ASTPlugin;
nodeTypes: string[];
}[];
inputDir: string;
outputDir: string;
include: string[];
exclude: string[];
preserveStructure: boolean;
};
codeOptimization: {
plugins: {
name: string;
description: string;
version: string;
plugin: ASTPlugin;
nodeTypes: string[];
}[];
inputDir: string;
outputDir: string;
include: string[];
exclude: string[];
preserveStructure: boolean;
};
flatten: {
preserveStructure: boolean;
inputDir: string;
outputDir: string;
plugins: PluginInfo[];
include: string[];
exclude: string[];
};
errorHandlingEnhancement: {
plugins: {
name: string;
description: string;
version: string;
plugin: ASTPlugin;
nodeTypes: string[];
}[];
inputDir: string;
outputDir: string;
include: string[];
exclude: string[];
preserveStructure: boolean;
};
variableRenaming: {
plugins: {
name: string;
description: string;
version: string;
plugin: ASTPlugin<import("./src/plugins/rename-var.ts").PluginOptions>;
nodeTypes: string[];
}[];
inputDir: string;
outputDir: string;
include: string[];
exclude: string[];
preserveStructure: boolean;
};
hexVariableRenaming: {
plugins: {
name: string;
description: string;
version: string;
plugin: ASTPlugin<import("./src/plugins/rename-var.ts").PluginOptions>;
nodeTypes: string[];
options: {
hexadecimalOnly: boolean;
};
}[];
inputDir: string;
outputDir: string;
include: string[];
exclude: string[];
preserveStructure: boolean;
};
customPrefixRenaming: {
plugins: {
name: string;
description: string;
version: string;
plugin: ASTPlugin<import("./src/plugins/rename-var.ts").PluginOptions>;
nodeTypes: string[];
options: {
variablePrefix: string;
functionPrefix: string;
paramPrefix: string;
};
}[];
inputDir: string;
outputDir: string;
include: string[];
exclude: string[];
preserveStructure: boolean;
};
deobfuscation: {
plugins: ({
name: string;
description: string;
version: string;
plugin: ASTPlugin;
nodeTypes: string[];
options?: undefined;
} | {
name: string;
description: string;
version: string;
plugin: ASTPlugin<import("./src/plugins/rename-var.ts").PluginOptions>;
nodeTypes: string[];
options: {
hexadecimalOnly: boolean;
};
})[];
inputDir: string;
outputDir: string;
include: string[];
exclude: string[];
preserveStructure: boolean;
};
};