refactor: extract inline build scripts from package.json to files
- Extract copy-resources, copy-themes, copy-export-html from root package.json inline node -e commands to proper .cjs script files - Extract pi-coding-agent copy-assets (356-char inline command) to scripts/copy-assets.cjs with readable multi-line formatting - All scripts use .cjs extension for CommonJS compatibility in ESM package context
This commit is contained in:
parent
4af3e5b741
commit
d41338cafb
6 changed files with 44 additions and 4 deletions
|
|
@ -44,9 +44,9 @@
|
|||
"build:native-pkg": "npm run build -w @gsd/native",
|
||||
"build:pi": "npm run build:native-pkg && npm run build:pi-tui && npm run build:pi-ai && npm run build:pi-agent-core && npm run build:pi-coding-agent",
|
||||
"build": "npm run build:pi && tsc && npm run copy-resources && npm run copy-themes && npm run copy-export-html",
|
||||
"copy-resources": "node -e \"const{cpSync,rmSync}=require('fs');rmSync('dist/resources',{recursive:true,force:true});cpSync('src/resources','dist/resources',{recursive:true,force:true})\"",
|
||||
"copy-themes": "node -e \"const{mkdirSync,cpSync}=require('fs');const{resolve}=require('path');const src=resolve(__dirname,'packages/pi-coding-agent/dist/modes/interactive/theme');mkdirSync('pkg/dist/modes/interactive/theme',{recursive:true});cpSync(src,'pkg/dist/modes/interactive/theme',{recursive:true})\"",
|
||||
"copy-export-html": "node -e \"const{mkdirSync,cpSync}=require('fs');const{resolve}=require('path');const src=resolve(__dirname,'packages/pi-coding-agent/dist/core/export-html');mkdirSync('pkg/dist/core/export-html',{recursive:true});cpSync(src,'pkg/dist/core/export-html',{recursive:true})\"",
|
||||
"copy-resources": "node scripts/copy-resources.cjs",
|
||||
"copy-themes": "node scripts/copy-themes.cjs",
|
||||
"copy-export-html": "node scripts/copy-export-html.cjs",
|
||||
"test:unit": "node --import ./src/resources/extensions/gsd/tests/resolve-ts.mjs --experimental-strip-types --test src/resources/extensions/gsd/tests/*.test.ts src/resources/extensions/gsd/tests/*.test.mjs src/tests/*.test.ts",
|
||||
"test:coverage": "c8 --reporter=text --reporter=lcov --exclude='src/resources/extensions/gsd/tests/**' --exclude='src/tests/**' --exclude='scripts/**' --exclude='native/**' --exclude='node_modules/**' --check-coverage --statements=40 --lines=40 --branches=0 --functions=0 node --import ./src/resources/extensions/gsd/tests/resolve-ts.mjs --experimental-strip-types --test src/resources/extensions/gsd/tests/*.test.ts src/resources/extensions/gsd/tests/*.test.mjs src/tests/*.test.ts",
|
||||
"test:integration": "node --import ./src/resources/extensions/gsd/tests/resolve-ts.mjs --experimental-strip-types --test src/resources/extensions/gsd/tests/*integration*.test.ts src/tests/integration/*.test.ts",
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
},
|
||||
"scripts": {
|
||||
"build": "tsc -p tsconfig.json && npm run copy-assets",
|
||||
"copy-assets": "node -e \"const{mkdirSync,cpSync}=require('fs');mkdirSync('dist/modes/interactive/theme',{recursive:true});cpSync('src/modes/interactive/theme','dist/modes/interactive/theme',{recursive:true,filter:(s)=>!s.endsWith('.ts')});mkdirSync('dist/core/export-html/vendor',{recursive:true});cpSync('src/core/export-html/template.html','dist/core/export-html/template.html');cpSync('src/core/export-html/template.css','dist/core/export-html/template.css');cpSync('src/core/export-html/template.js','dist/core/export-html/template.js');cpSync('src/core/export-html/vendor','dist/core/export-html/vendor',{recursive:true,filter:(s)=>!s.endsWith('.ts')});mkdirSync('dist/core/lsp',{recursive:true});cpSync('src/core/lsp/defaults.json','dist/core/lsp/defaults.json');cpSync('src/core/lsp/lsp.md','dist/core/lsp/lsp.md')\""
|
||||
"copy-assets": "node scripts/copy-assets.cjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@mariozechner/jiti": "^2.6.2",
|
||||
|
|
|
|||
24
packages/pi-coding-agent/scripts/copy-assets.cjs
Normal file
24
packages/pi-coding-agent/scripts/copy-assets.cjs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/env node
|
||||
const { mkdirSync, cpSync } = require('fs');
|
||||
|
||||
// Theme assets
|
||||
mkdirSync('dist/modes/interactive/theme', { recursive: true });
|
||||
cpSync('src/modes/interactive/theme', 'dist/modes/interactive/theme', {
|
||||
recursive: true,
|
||||
filter: (s) => !s.endsWith('.ts'),
|
||||
});
|
||||
|
||||
// Export HTML templates and vendor files
|
||||
mkdirSync('dist/core/export-html/vendor', { recursive: true });
|
||||
cpSync('src/core/export-html/template.html', 'dist/core/export-html/template.html');
|
||||
cpSync('src/core/export-html/template.css', 'dist/core/export-html/template.css');
|
||||
cpSync('src/core/export-html/template.js', 'dist/core/export-html/template.js');
|
||||
cpSync('src/core/export-html/vendor', 'dist/core/export-html/vendor', {
|
||||
recursive: true,
|
||||
filter: (s) => !s.endsWith('.ts'),
|
||||
});
|
||||
|
||||
// LSP defaults
|
||||
mkdirSync('dist/core/lsp', { recursive: true });
|
||||
cpSync('src/core/lsp/defaults.json', 'dist/core/lsp/defaults.json');
|
||||
cpSync('src/core/lsp/lsp.md', 'dist/core/lsp/lsp.md');
|
||||
6
scripts/copy-export-html.cjs
Normal file
6
scripts/copy-export-html.cjs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env node
|
||||
const { mkdirSync, cpSync } = require('fs');
|
||||
const { resolve } = require('path');
|
||||
const src = resolve(__dirname, '..', 'packages', 'pi-coding-agent', 'dist', 'core', 'export-html');
|
||||
mkdirSync('pkg/dist/core/export-html', { recursive: true });
|
||||
cpSync(src, 'pkg/dist/core/export-html', { recursive: true });
|
||||
4
scripts/copy-resources.cjs
Normal file
4
scripts/copy-resources.cjs
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env node
|
||||
const { cpSync, rmSync } = require('fs');
|
||||
rmSync('dist/resources', { recursive: true, force: true });
|
||||
cpSync('src/resources', 'dist/resources', { recursive: true, force: true });
|
||||
6
scripts/copy-themes.cjs
Normal file
6
scripts/copy-themes.cjs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env node
|
||||
const { mkdirSync, cpSync } = require('fs');
|
||||
const { resolve } = require('path');
|
||||
const src = resolve(__dirname, '..', 'packages', 'pi-coding-agent', 'dist', 'modes', 'interactive', 'theme');
|
||||
mkdirSync('pkg/dist/modes/interactive/theme', { recursive: true });
|
||||
cpSync(src, 'pkg/dist/modes/interactive/theme', { recursive: true });
|
||||
Loading…
Add table
Reference in a new issue