mirror of
https://github.com/tenrok/BBob.git
synced 2026-05-15 11:59:37 +03:00
8797f7f363
* feat: initial typescript support * feat: typescript support * feat(plugin-helper): move files to typescript * chore: update lock files * feat: preset types * fix: build * fix: benchmark * fix: remove pnpm cache * fix: bench action * fix: pnpm recursive install * fix: nx cache * fix: lock file * fix: workflows * fix: lerna support in pnpm * fix: pnpm workspace * fix: remove unused files * fix: pnpm lock file * fix: update lerna for support pnpm * fix: lerna bootstrap * fix: rollup build * fix: update nx * fix: build * fix: add nx dep target * fix: remove nx cache * fix: workflow run on push only for master * fix: test workflow run on push only for master * fix: remove parallel for gen types * fix: benchmark * fix: benchmark imports * fix: pnpm * fix: types errors and pnpm * fix: types * fix: types * refactor: parser * fix(parser): tests * fix: preset tests * fix: react types * fix: react type declarations * fix: pnpm lock file * fix: react preset types * fix: lock file * fix: vue2 types * feat: dev container support * fix: types * fix: types * refactor: rewrite pkg-task, add nx gen-types deps, fix react/render.ts * refactor: types * fix: types * fix: rename gen-types to types * fix: nx build order * fix: nx reset * fix: define nx deps explicit * fix: build * fix: nx * fix: nx order build * fix: nx deps * fix: bbob cli tests * fix: tests * fix: cli tests and import * fix: test cover * fix: cli cover
50 lines
1.2 KiB
JavaScript
Executable File
50 lines
1.2 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
'use strict';
|
|
const { resolve } = require('path')
|
|
const { spawn } = require('child_process')
|
|
|
|
const pkg = require(resolve(__dirname, '../package.json'))
|
|
const nmBinDir = resolve(__dirname, '../node_modules/.bin/')
|
|
|
|
const shell = { cmd: 'sh', arg: '-c' }
|
|
|
|
// replace all @/ to node modules bin dir
|
|
const replaceTokens = str => String(str).replace(new RegExp('@\\/', 'gi'), `${nmBinDir}/`)
|
|
|
|
function runCommand(command, args = '') {
|
|
const proc = spawn(shell.cmd, [shell.arg, `${replaceTokens(command)} ${args}`], {
|
|
env: process.env,
|
|
cwd: process.cwd(),
|
|
stdio: 'inherit',
|
|
})
|
|
|
|
proc.on('close', (code) => {
|
|
if (code !== 0) {
|
|
console.log(`command:"${command}" exited with code ${code}`);
|
|
}
|
|
|
|
process.exit(code)
|
|
});
|
|
}
|
|
|
|
function runCommandByKey(key, command) {
|
|
const event_name = process.env.npm_lifecycle_event
|
|
const args = process.argv.slice(2);
|
|
|
|
if (args.length >= 1) {
|
|
const [name, ...argarr] = args
|
|
|
|
if (name === key) {
|
|
return runCommand(command, argarr.join(' '))
|
|
}
|
|
}
|
|
|
|
if (args.length === 0 && event_name && event_name === key) {
|
|
return runCommand(command)
|
|
}
|
|
}
|
|
|
|
for (const [key, command] of Object.entries(pkg.pkgTasks)) {
|
|
runCommandByKey(key, command)
|
|
}
|