@suzulabo/ttscripts
v0.0.3
Published
Simple task runner for TypeScript or JavaScript
Downloads
3
Maintainers
Readme
ttscripts
ttscripts は TypeScript、JavaScript で書けるシンプルなタスクランナーです。
インストール
npm i -D @suzulabo/ttscripts
使い方
タスク内容をコーディングします。
(例)scripts/index.ts
import { Cmd, main, RunP, RunS, ScriptEntries } from '@suzulabo/ttscripts';
const functionTask = () => {
console.log('done.');
};
const entries: ScriptEntries = [
['hello', Cmd('echo hello')],
['function', functionTask],
[
'sequential',
RunS([Cmd('sleep 1 && echo 1'), Cmd('sleep 1 && echo 2'), Cmd('sleep 1 && echo 3')]),
],
[
'parallel',
RunP([Cmd('sleep 1 && echo 1'), Cmd('sleep 1 && echo 2'), Cmd('sleep 1 && echo 3')]),
],
];
const name = process.argv[2];
const args = process.argv.slice(3);
main(entries, name, args).catch(err => {
console.error(err);
process.exit(1);
});
実行方法は任意ですが、例えば package.json の scripts に以下のように記載します。
"scripts": {
"-": "node -r esbuild-register scripts/index.ts"
},
以下のように実行できます。
npm run - hello
JavaScript での例
(例)scripts/index.js
const { Cmd, main, RunS, RunP } = require('@suzulabo/ttscripts');
// @ts-check
const functionTask = () => {
console.log('done.');
};
/** @type {import("@suzulabo/ttscripts").ScriptEntries} */
const entries = [
['hello', Cmd('echo hello')],
['function', functionTask],
[
'sequential',
RunS([Cmd('sleep 1 && echo 1'), Cmd('sleep 1 && echo 2'), Cmd('sleep 1 && echo 3')]),
],
[
'parallel',
RunP([Cmd('sleep 1 && echo 1'), Cmd('sleep 1 && echo 2'), Cmd('sleep 1 && echo 3')]),
],
];
const name = process.argv[2];
const args = process.argv.slice(3);
main(entries, name, args).catch(err => {
console.error(err);
process.exit(1);
});
"scripts": {
"-": "node scripts/index.js"
},