From e98da8794e594bc02292bade12f2bad3feb2b305 Mon Sep 17 00:00:00 2001 From: Sergio Bur Date: Tue, 19 May 2026 13:33:47 +0200 Subject: [PATCH 1/5] fix: fix eslint --- .../utils/create-bundles/Angular/bundler.ts | 9 ++++++--- .../utils/ts-to-js-converter/converter.ts | 20 +++++++++---------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/apps/demos/utils/create-bundles/Angular/bundler.ts b/apps/demos/utils/create-bundles/Angular/bundler.ts index ca2d8dbe953e..d5200fe4b708 100644 --- a/apps/demos/utils/create-bundles/Angular/bundler.ts +++ b/apps/demos/utils/create-bundles/Angular/bundler.ts @@ -1,4 +1,4 @@ -import { exec } from 'child_process'; +import { spawn } from 'child_process'; import { BuildOptions } from 'esbuild'; import { existsSync, mkdirSync, removeSync } from 'fs-extra'; import { Demo, Framework } from '../helper/types'; @@ -42,8 +42,11 @@ export default class AngularBundler implements Bundler { createDemoLayout(demo, this.framework); - const ngBuildCommand = `npm run build-angular -- ${getProjectNameByDemo(demo)}`; - const ngBuildProcess = exec(ngBuildCommand); + const isWin = process.platform === 'win32'; + const [npmCmd, npmArgs] = isWin + ? ['cmd', ['/c', 'npm.cmd', 'run', 'build-angular', '--', getProjectNameByDemo(demo)]] + : ['npm', ['run', 'build-angular', '--', getProjectNameByDemo(demo)]]; + const ngBuildProcess = spawn(npmCmd, npmArgs); ngBuildProcess.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); diff --git a/apps/demos/utils/ts-to-js-converter/converter.ts b/apps/demos/utils/ts-to-js-converter/converter.ts index b56d1bf6ff4a..87f7771110c4 100644 --- a/apps/demos/utils/ts-to-js-converter/converter.ts +++ b/apps/demos/utils/ts-to-js-converter/converter.ts @@ -78,16 +78,14 @@ const pipeSource = async ( })); }; -// eslint-disable-next-line require-await -const execTsc = async (directory: string, args: string): Promise => new Promise((resolve, reject) => { - cps.exec(`tsc ${args}`, (error, stdout, stderr) => { - if (error != null) { - // eslint-disable-next-line prefer-promise-reject-errors - return reject(`${error}\n${stderr}\n${stdout}`); - } - return resolve(stdout); - }); -}); +const execFilePromise = promisify(cps.execFile); + +const execTsc = (directory: string, args: string[]): Promise => { + const [cmd, cmdArgs] = isWindows() + ? ['cmd', ['/c', 'tsc.cmd', ...args]] + : ['tsc', args]; + return execFilePromise(cmd, cmdArgs, { cwd: directory }).then(({ stdout }) => stdout); +}; const compile = async (resolve: PathResolvers, log: Logger) => { log.debug('compiling sources and unit tests'); @@ -110,7 +108,7 @@ const compile = async (resolve: PathResolvers, log: Logger) => { ), ); - await execTsc(resolve.source('./'), `--build ${tsconfigFile}`); + await execTsc(resolve.source('./'), ['--build', tsconfigFile]); }; const copyAssets = async (resolve: PathResolvers, log: Logger) => { From 0ddd73119452a1d4a33be1c4a11e1e03b50ad9ae Mon Sep 17 00:00:00 2001 From: Sergio Bur Date: Wed, 20 May 2026 13:27:34 +0200 Subject: [PATCH 2/5] refactor: convert execTsc to async --- apps/demos/utils/ts-to-js-converter/converter.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/demos/utils/ts-to-js-converter/converter.ts b/apps/demos/utils/ts-to-js-converter/converter.ts index 87f7771110c4..288ca1d63905 100644 --- a/apps/demos/utils/ts-to-js-converter/converter.ts +++ b/apps/demos/utils/ts-to-js-converter/converter.ts @@ -80,11 +80,12 @@ const pipeSource = async ( const execFilePromise = promisify(cps.execFile); -const execTsc = (directory: string, args: string[]): Promise => { +const execTsc = async (directory: string, args: string[]): Promise => { const [cmd, cmdArgs] = isWindows() ? ['cmd', ['/c', 'tsc.cmd', ...args]] : ['tsc', args]; - return execFilePromise(cmd, cmdArgs, { cwd: directory }).then(({ stdout }) => stdout); + const { stdout } = await execFilePromise(cmd, cmdArgs, { cwd: directory }); + return stdout; }; const compile = async (resolve: PathResolvers, log: Logger) => { From de8bcb2dcb97bf95fc9055751df74e413a32c57a Mon Sep 17 00:00:00 2001 From: Sergio Bur Date: Wed, 20 May 2026 13:30:04 +0200 Subject: [PATCH 3/5] refactor: delete useless var --- apps/demos/utils/ts-to-js-converter/converter.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/demos/utils/ts-to-js-converter/converter.ts b/apps/demos/utils/ts-to-js-converter/converter.ts index 288ca1d63905..6e0c47d661bc 100644 --- a/apps/demos/utils/ts-to-js-converter/converter.ts +++ b/apps/demos/utils/ts-to-js-converter/converter.ts @@ -78,13 +78,11 @@ const pipeSource = async ( })); }; -const execFilePromise = promisify(cps.execFile); - const execTsc = async (directory: string, args: string[]): Promise => { const [cmd, cmdArgs] = isWindows() ? ['cmd', ['/c', 'tsc.cmd', ...args]] : ['tsc', args]; - const { stdout } = await execFilePromise(cmd, cmdArgs, { cwd: directory }); + const { stdout } = await promisify(cps.execFile)(cmd, cmdArgs, { cwd: directory }); return stdout; }; From 5a412d3fb4c29de927cacfff1ad87a1291b93c6e Mon Sep 17 00:00:00 2001 From: Sergio Bur Date: Wed, 20 May 2026 14:42:10 +0200 Subject: [PATCH 4/5] feat: copilot review --- apps/demos/utils/ts-to-js-converter/converter.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/demos/utils/ts-to-js-converter/converter.ts b/apps/demos/utils/ts-to-js-converter/converter.ts index 6e0c47d661bc..cd7319aacb69 100644 --- a/apps/demos/utils/ts-to-js-converter/converter.ts +++ b/apps/demos/utils/ts-to-js-converter/converter.ts @@ -79,10 +79,12 @@ const pipeSource = async ( }; const execTsc = async (directory: string, args: string[]): Promise => { - const [cmd, cmdArgs] = isWindows() - ? ['cmd', ['/c', 'tsc.cmd', ...args]] - : ['tsc', args]; - const { stdout } = await promisify(cps.execFile)(cmd, cmdArgs, { cwd: directory }); + const tscScript = require.resolve('typescript/bin/tsc'); + const { stdout } = await promisify(cps.execFile)( + process.execPath, + [tscScript, ...args], + { cwd: directory }, + ); return stdout; }; From b01d7af4c7ff1fb2aba172872a0bf39c99c0522b Mon Sep 17 00:00:00 2001 From: Sergei Burkatskii Date: Wed, 20 May 2026 14:48:05 +0200 Subject: [PATCH 5/5] feat: copilot review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Sergei Burkatskii --- apps/demos/utils/create-bundles/Angular/bundler.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/demos/utils/create-bundles/Angular/bundler.ts b/apps/demos/utils/create-bundles/Angular/bundler.ts index d5200fe4b708..1b76b9cea5fa 100644 --- a/apps/demos/utils/create-bundles/Angular/bundler.ts +++ b/apps/demos/utils/create-bundles/Angular/bundler.ts @@ -43,9 +43,8 @@ export default class AngularBundler implements Bundler { createDemoLayout(demo, this.framework); const isWin = process.platform === 'win32'; - const [npmCmd, npmArgs] = isWin - ? ['cmd', ['/c', 'npm.cmd', 'run', 'build-angular', '--', getProjectNameByDemo(demo)]] - : ['npm', ['run', 'build-angular', '--', getProjectNameByDemo(demo)]]; + const npmCmd = isWin ? 'npm.cmd' : 'npm'; + const npmArgs = ['run', 'build-angular', '--', getProjectNameByDemo(demo)]; const ngBuildProcess = spawn(npmCmd, npmArgs); ngBuildProcess.stdout.on('data', (data) => { console.log(`stdout: ${data}`);