diff --git a/arkui-plugins/common/debug.ts b/arkui-plugins/common/debug.ts index 4675725602d7f27589789677fa841ae3ad924ca7..158ae11fe3b41f8921f41b44bdc1e86fbf0587a8 100644 --- a/arkui-plugins/common/debug.ts +++ b/arkui-plugins/common/debug.ts @@ -35,19 +35,20 @@ function mkDir(filePath: string): void { } export function debugDump( - content: string, + script: arkts.AstNode, fileName: string, isInit: boolean, cachePath: string | undefined, programFileName: string ): void { if (!isDebugDump) return; + const content = script.dumpSrc(); const currentDirectory = process.cwd(); const modifiedFileName = programFileName.replaceAll('.', '_'); const outputDir: string = cachePath ? path.resolve(currentDirectory, cachePath, modifiedFileName) : path.resolve(currentDirectory, 'dist', 'cache', modifiedFileName); - const filePath: string = path.resolve(outputDir, fileName); + const filePath: string = path.resolve(outputDir, fileName.replaceAll('\/', '_')); if (!fs.existsSync(outputDir)) { mkDir(outputDir); } @@ -67,9 +68,15 @@ export function debugDump( } } -export function debugLog(message?: any, ...optionalParams: any[]): void { +export function debugLog(...optionalParams: (arkts.AstNode | string)[]): void { if (!isDebugLog) return; - console.log(message, ...optionalParams); + const messages = optionalParams.map((p) => { + if (p instanceof arkts.AstNode) { + return p.dumpSrc(); + } + return p; + }); + console.log(...messages); } export function getDumpFileName(state: number, prefix: string, index: number | undefined, suffix: string): string { diff --git a/arkui-plugins/common/program-visitor.ts b/arkui-plugins/common/program-visitor.ts index 55ac1aad41e3b936d0d1faeeb5d037b98db90c66..bfde853308d417564110bb8ee6443c4e4fc86822 100644 --- a/arkui-plugins/common/program-visitor.ts +++ b/arkui-plugins/common/program-visitor.ts @@ -120,7 +120,7 @@ export class ProgramVisitor extends AbstractVisitor { extensionName: string ): void { debugDump( - script.dumpSrc(), + script, getDumpFileName(this.state, prefixName, undefined, name), true, cachePath, @@ -262,7 +262,7 @@ export class ProgramVisitor extends AbstractVisitor { arkts.setAllParents(script); if (!transformer.isExternal) { debugDump( - script.dumpSrc(), + script, getDumpFileName(this.state, this.pluginName, count, transformer.constructor.name), true, this.pluginContext?.getProjectConfig()?.cachePath, diff --git a/arkui-plugins/memo-plugins/index.ts b/arkui-plugins/memo-plugins/index.ts index 5c19bc8414083b125b060e9fa01acd1f62e8bbf6..e0bf2c11143deff449b3a7145763eb3f6406111a 100644 --- a/arkui-plugins/memo-plugins/index.ts +++ b/arkui-plugins/memo-plugins/index.ts @@ -43,12 +43,12 @@ function checkedTransform(this: PluginContext): arkts.EtsScript | undefined { if (!!contextPtr) { let program = arkts.getOrUpdateGlobalContext(contextPtr).program; let script = program.astNode; - debugLog('[BEFORE MEMO SCRIPT] script: ', script.dumpSrc()); + debugLog('[BEFORE MEMO SCRIPT] script: ', script); const cachePath: string | undefined = this.getProjectConfig()?.cachePath; const isFrameworkMode = !!this.getProjectConfig()?.frameworkMode; const canSkipPhases = !isFrameworkMode && program.canSkipPhases(); debugDump( - script.dumpSrc(), + script, getDumpFileName(0, 'SRC', 5, 'MEMO_AfterCheck_Begin'), true, cachePath, @@ -58,9 +58,9 @@ function checkedTransform(this: PluginContext): arkts.EtsScript | undefined { program = checkedProgramVisit(program, this, canSkipPhases, isFrameworkMode); script = program.astNode; arkts.Performance.getInstance().stopEvent('memo-checked', true); - debugLog('[AFTER MEMO SCRIPT] script: ', script.dumpSrc()); + debugLog('[AFTER MEMO SCRIPT] script: ', script); debugDump( - script.dumpSrc(), + script, getDumpFileName(0, 'SRC', 6, 'MEMO_AfterCheck_End'), true, cachePath, diff --git a/arkui-plugins/ui-plugins/index.ts b/arkui-plugins/ui-plugins/index.ts index 1785e4854352aa9d54977fe12a7ed1909928947e..41c67dc2d2ad7f028929d9a95d1d3352e91bd282 100644 --- a/arkui-plugins/ui-plugins/index.ts +++ b/arkui-plugins/ui-plugins/index.ts @@ -44,9 +44,9 @@ function parsedTransform(this: PluginContext): arkts.EtsScript | undefined { script = program.astNode; const cachePath: string | undefined = this.getProjectConfig()?.cachePath; const canSkipPhases = program.canSkipPhases(); - debugLog('[BEFORE PARSED SCRIPT] script: ', script.dumpSrc()); + debugLog('[BEFORE PARSED SCRIPT] script: ', script); debugDump( - script.dumpSrc(), + script, getDumpFileName(0, 'SRC', 1, 'UI_AfterParse_Begin'), true, cachePath, @@ -56,9 +56,9 @@ function parsedTransform(this: PluginContext): arkts.EtsScript | undefined { program = parsedProgramVisit(program, this, canSkipPhases); script = program.astNode; arkts.Performance.getInstance().stopEvent('ui-parsed', true); - debugLog('[AFTER PARSED SCRIPT] script: ', script.dumpSrc()); + debugLog('[AFTER PARSED SCRIPT] script: ', script); debugDump( - script.dumpSrc(), + script, getDumpFileName(0, 'SRC', 2, 'UI_AfterParse_End'), true, cachePath, @@ -112,9 +112,9 @@ function checkedTransform(this: PluginContext): arkts.EtsScript | undefined { script = program.astNode; const cachePath: string | undefined = this.getProjectConfig()?.cachePath; const canSkipPhases = program.canSkipPhases(); - debugLog('[BEFORE STRUCT SCRIPT] script: ', script.dumpSrc()); + debugLog('[BEFORE STRUCT SCRIPT] script: ', script); debugDump( - script.dumpSrc(), + script, getDumpFileName(0, 'SRC', 3, 'UI_AfterCheck_Begin'), true, cachePath, @@ -124,9 +124,9 @@ function checkedTransform(this: PluginContext): arkts.EtsScript | undefined { program = checkedProgramVisit(program, this, canSkipPhases); script = program.astNode; arkts.Performance.getInstance().stopEvent('ui-checked', true); - debugLog('[AFTER STRUCT SCRIPT] script: ', script.dumpSrc()); + debugLog('[AFTER STRUCT SCRIPT] script: ', script); debugDump( - script.dumpSrc(), + script, getDumpFileName(0, 'SRC', 4, 'UI_AfterCheck_End'), true, cachePath,