diff --git a/lib/build.js b/lib/build.js index 04f49f3..859bc4a 100644 --- a/lib/build.js +++ b/lib/build.js @@ -8,7 +8,8 @@ const fs_1 = require("fs"); const paths_1 = require("./paths"); const readmeta_1 = __importDefault(require("./readmeta")); const prettier_1 = require("prettier"); -function default_1(name, watchCallback, PrettierConfig, CLIArgs) { +const main_1 = require("./main"); +function default_1(name, watchCallback) { //read meta file let [metaJson, metaString] = (0, readmeta_1.default)(name); let pathDist = (0, paths_1.DistPath)(name); @@ -19,7 +20,7 @@ function default_1(name, watchCallback, PrettierConfig, CLIArgs) { platform: 'node', format: 'esm', bundle: true, - minify: CLIArgs.minify, + minify: main_1.CLIArgs.minify, define: { UserScriptName: `'${metaJson.name}'`, UserScriptNamespace: `'${metaJson.namespace}'`, @@ -29,66 +30,44 @@ function default_1(name, watchCallback, PrettierConfig, CLIArgs) { UserScriptHomepageURL: `'${metaJson.homepageURL}'`, }, }, result => { - let error = runPostEsbuild(name, result, metaString, CLIArgs, PrettierConfig); + let error = postBuild(name, result, metaString); watchCallback(metaJson, error); - }, CLIArgs); - let error = runPostEsbuild(name, result, metaString, CLIArgs, PrettierConfig); + }); + let error = postBuild(name, result, metaString); return [metaJson, error]; } exports.default = default_1; -function doErrorFile(pathError, pathOutFile, error) { - if (error !== null) { - (0, fs_1.writeFileSync)(pathError, `${new Date().toISOString()}\n\n${error}`); - if ((0, fs_1.existsSync)(pathOutFile)) { - (0, fs_1.unlinkSync)(pathOutFile); - } - } - else if ((0, fs_1.existsSync)(pathError)) { - (0, fs_1.unlinkSync)(pathError); - } -} -function runEsbuild(opts, watchCallback, CLIArgs) { +function runEsbuild(opts, watchCallback) { opts.write = false; - if (CLIArgs.watch) { + if (main_1.CLIArgs.watch) { opts.watch = { onRebuild(err, res) { - if (err) { - watchCallback({ - content: null, - error: err.message, - errorRaw: err, - }); - } - else if (res) { - let content = ''; - if (res.outputFiles && res.outputFiles.length > 0) { - content = res.outputFiles[0].text; - } - if (content === '') { - watchCallback({ - content: null, - error: 'No output', - }); - } - watchCallback({ - content, - error: null, - }); - } - else { - watchCallback({ - content: null, - error: 'No result', - }); - } + watchCallback(getResult(err, res)); }, }; } try { let res = (0, esbuild_1.buildSync)(opts); + return getResult(null, res); + } + catch (err) { + return getResult(err, null); + } +} +function getResult(error, result) { + if (error) { + return { + content: null, + error: error.message, + errorRaw: error, + }; + } + else if (result) { let content = ''; - if (res.outputFiles && res.outputFiles.length > 0) { - content = clearFilenameComments(res.outputFiles[0].text); + if (result.outputFiles && result.outputFiles.length > 0) { + content = result.outputFiles[0].text; + if (!main_1.CLIArgs.srccomment) + content = clearFilenameComments(content); } if (content === '') { return { @@ -101,37 +80,54 @@ function runEsbuild(opts, watchCallback, CLIArgs) { error: null, }; } - catch (err) { + else { return { content: null, - error: err.message, + error: 'No result', }; } } -function runPostEsbuild(name, result, metaString, CLIArgs, PrettierConfig) { +function clearFilenameComments(content) { + let regexp = new RegExp(`//\\s*${paths_1.ScriptBase}/.*(?:\\n|$)`, 'g'); + return content.replace(regexp, ''); +} +function postBuild(name, result, metaString) { let error = null; let path = (0, paths_1.ScriptPath)(name); let pathDist = (0, paths_1.DistPath)(name); + let PrettierConfig = prettier_1.resolveConfig.sync(path.dir) || {}; if (result.error) { console.error(name, result.errorRaw || result.error); error = result.error; } else if (result.content) { let content = metaString + result.content; - if (CLIArgs.prettier) { - content = (0, prettier_1.format)(content, PrettierConfig); + if (main_1.CLIArgs.prettier) { + content = (0, prettier_1.format)(content, { + ...PrettierConfig, + parser: 'babel', + }); } (0, fs_1.writeFileSync)(pathDist, content); } else { console.error(name, 'No output'); } - doErrorFile(path.error, pathDist, error); + doErrorFile(name, error); return error; } -//remove all filename comments -function clearFilenameComments(content) { - let regexp = new RegExp(`//\\s*${paths_1.ScriptBase}/.*(?:\\n|$)`, 'g'); - return content.replace(regexp, ''); +function doErrorFile(name, error) { + let path = (0, paths_1.ScriptPath)(name); + let outfile = (0, paths_1.DistPath)(name); + let content = `${new Date().toISOString()}\n\n${error}`; + if (error !== null) { + (0, fs_1.writeFileSync)(path.error, content); + if ((0, fs_1.existsSync)(outfile)) { + (0, fs_1.unlinkSync)(outfile); + } + } + else if ((0, fs_1.existsSync)(path.error)) { + (0, fs_1.unlinkSync)(path.error); + } } //# sourceMappingURL=build.js.map \ No newline at end of file diff --git a/lib/build.js.map b/lib/build.js.map index ba9fb54..527192e 100644 --- a/lib/build.js.map +++ b/lib/build.js.map @@ -1 +1 @@ -{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":";;;;;AAAA,qCAA4E;AAC5E,2BAA0D;AAC1D,mCAA0D;AAE1D,0DAAiC;AACjC,uCAAgD;AAChD,iCAAgC;AAEhC,mBACI,IAAY,EACZ,aAAuE;IAEvE,gBAAgB;IAChB,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,QAAQ,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAE7B,IAAI,MAAM,GAAG,UAAU,CACnB;QACI,WAAW,EAAE,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QACpC,OAAO,EAAE,QAAQ;QAEjB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,KAAK;QAEb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,cAAO,CAAC,MAAM;QAEtB,MAAM,EAAE;YACJ,cAAc,EAAE,IAAI,QAAQ,CAAC,IAAI,GAAG;YACpC,mBAAmB,EAAE,IAAI,QAAQ,CAAC,SAAS,GAAG;YAC9C,iBAAiB,EAAE,IAAI,QAAQ,CAAC,OAAO,GAAG;YAE1C,qBAAqB,EAAE,IAAI,QAAQ,CAAC,WAAW,GAAG;YAClD,oBAAoB,EAAE,IAAI,QAAQ,CAAC,UAAU,GAAG;YAChD,qBAAqB,EAAE,IAAI,QAAQ,CAAC,WAAW,GAAG;SACrD;KACJ,EACD,MAAM,CAAC,EAAE;QACL,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;QAC/C,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC,CACJ,CAAA;IAED,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IAE/C,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC5B,CAAC;AAvCD,4BAuCC;AAQD,SAAS,UAAU,CACf,IAAkB,EAClB,aAAiD;IAEjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAClB,IAAI,cAAO,CAAC,KAAK,EAAE;QACf,IAAI,CAAC,KAAK,GAAG;YACT,SAAS,CAAC,GAAG,EAAE,GAAG;gBACd,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;YACtC,CAAC;SACJ,CAAA;KACJ;IAED,IAAI;QACA,IAAI,GAAG,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAA;QACzB,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;KAC9B;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,SAAS,CAAC,GAAmB,EAAE,IAAI,CAAC,CAAA;KAC9C;AACL,CAAC;AAED,SAAS,SAAS,CAAC,KAA0B,EAAE,MAA0B;IACrE,IAAI,KAAK,EAAE;QACP,OAAO;YACH,OAAO,EAAE,IAAI;YACb,KAAK,EAAG,KAAsB,CAAC,OAAO;YACtC,QAAQ,EAAE,KAAK;SAClB,CAAA;KACJ;SAAM,IAAI,MAAM,EAAE;QACf,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACrD,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACpC,IAAI,CAAC,cAAO,CAAC,UAAU;gBAAE,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;SACpE;QACD,IAAI,OAAO,KAAK,EAAE,EAAE;YAChB,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,WAAW;aACrB,CAAA;SACJ;QACD,OAAO;YACH,OAAO;YACP,KAAK,EAAE,IAAI;SACd,CAAA;KACJ;SAAM;QACH,OAAO;YACH,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,WAAW;SACrB,CAAA;KACJ;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC1C,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,kBAAU,cAAc,EAAE,GAAG,CAAC,CAAA;IAC/D,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,MAAwB,EAAE,UAAkB;IACzE,IAAI,KAAK,GAAkB,IAAI,CAAA;IAC/B,IAAI,IAAI,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,QAAQ,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAE7B,IAAI,cAAc,GAAG,wBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IAEvD,IAAI,MAAM,CAAC,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;QACpD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;KACvB;SAAM,IAAI,MAAM,CAAC,OAAO,EAAE;QACvB,IAAI,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,OAAO,CAAA;QACzC,IAAI,cAAO,CAAC,QAAQ,EAAE;YAClB,OAAO,GAAG,IAAA,iBAAM,EAAC,OAAO,EAAE;gBACtB,GAAG,cAAc;gBACjB,MAAM,EAAE,OAAO;aAClB,CAAC,CAAA;SACL;QACD,IAAA,kBAAa,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;KACnC;SAAM;QACH,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;KACnC;IAED,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAExB,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,KAAoB;IACnD,IAAI,IAAI,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,OAAO,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAE5B,IAAI,OAAO,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,EAAE,CAAA;IAEvD,IAAI,KAAK,KAAK,IAAI,EAAE;QAChB,IAAA,kBAAa,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAClC,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE;YACrB,IAAA,eAAU,EAAC,OAAO,CAAC,CAAA;SACtB;KACJ;SAAM,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC/B,IAAA,eAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACzB;AACL,CAAC"} \ No newline at end of file diff --git a/lib/main.js b/lib/main.js index 61e9e0d..418bdab 100644 --- a/lib/main.js +++ b/lib/main.js @@ -1,19 +1,76 @@ "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.CLIArgs = void 0; const fs_1 = require("fs"); const command_line_args_1 = __importDefault(require("command-line-args")); -const prettier_1 = require("prettier"); const paths_1 = require("./paths"); const readmefile_1 = require("./readmefile"); const build_1 = __importDefault(require("./build")); -const CLIArgs = (0, command_line_args_1.default)([ +const Path = __importStar(require("path")); +exports.CLIArgs = (0, command_line_args_1.default)([ { name: 'watch', alias: 'w', type: Boolean, defaultValue: false }, { name: 'minify', alias: 'm', type: Boolean, defaultValue: false }, { name: 'prettier', alias: 'p', type: Boolean, defaultValue: false }, + { name: 'srccomment', alias: 's', type: Boolean, defaultValue: false }, + { name: 'help', alias: 'h', type: Boolean, defaultValue: false }, ]); +if (exports.CLIArgs.help) { + let command = ''; + if (process.argv.length > 0) { + command = Path.parse(process.argv[0]).name; + } + if (command.toLowerCase() === 'node' && process.argv.length > 1) { + let path = Path.relative(process.cwd(), process.argv[1]) || '.'; + command = `${command} ${path}`; + } + console.log(` +Usage: ${command} [options] + +options: +--watch + alias: -w + automatically recompile on save +--minify + alias: -m + minify output files +--prettier + alias: -p + prettify output files +--srccomment + alias: -s + include src file path comments in the output files, i.e. // scripts/example/main.ts +--help + alias: -h + show this help message +`); + process.exit(0); +} //if package.json doesn't exist then there is no point in continuing if (!(0, fs_1.existsSync)('package.json') || !(0, fs_1.lstatSync)('package.json').isFile()) { console.error('package.json not found, unwilling to run'); @@ -21,14 +78,6 @@ if (!(0, fs_1.existsSync)('package.json') || !(0, fs_1.lstatSync)('package.json' } //delete compiled scripts (0, fs_1.readdirSync)(paths_1.DistBase).forEach(file => (0, fs_1.unlinkSync)(`${paths_1.DistBase}/${file}`)); -//read prettierrc file and make sure `babel` is the configured parser -const PrettierConfig = (() => { - let config = prettier_1.resolveConfig.sync(process.cwd()) || {}; - return { - ...config, - parser: 'babel', - }; -})(); //compile scripts let scripts = (0, fs_1.readdirSync)(paths_1.ScriptBase); let scriptMeta = []; @@ -45,11 +94,11 @@ for (let name of scripts) { console.log('WATCH', name, meta.version); (0, readmefile_1.updateReadmeFile)(scriptMeta); } - let [meta, error] = (0, build_1.default)(name, postWatchUpdate, PrettierConfig, CLIArgs); + let [meta, error] = (0, build_1.default)(name, postWatchUpdate); scriptMeta[id] = { meta, error }; console.log(name, meta.version); } } (0, readmefile_1.updateReadmeFile)(scriptMeta); -console.log(`\nFinished Compiling\n${CLIArgs.watch ? 'Listening for Changes\n' : ''}`); +console.log(`\nFinished Compiling\n${exports.CLIArgs.watch ? 'Listening for Changes\n' : ''}`); //# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/lib/main.js.map b/lib/main.js.map index 58f6ef5..8c3029e 100644 --- a/lib/main.js.map +++ b/lib/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/paths.js.map b/lib/paths.js.map index 696e651..685441f 100644 --- a/lib/paths.js.map +++ b/lib/paths.js.map @@ -1 +1 @@ -{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,2CAA2C,CAAA;AACrD,QAAA,YAAY,GAAG,MAAM,CAAA;AACrB,QAAA,UAAU,GAAG,SAAS,CAAA;AACtB,QAAA,QAAQ,GAAG,MAAM,CAAA;AAEjB,QAAA,UAAU,GAAG,GAAG,eAAO,SAAS,CAAA;AACtC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CACpC,GAAG,eAAO,eAAe,oBAAY,IAAI,gBAAQ,IAAI,IAAI,UAAU,CAAA;AAD1D,QAAA,OAAO,WACmD;AAEhE,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC;IACzC,GAAG,EAAE,GAAG,kBAAU,IAAI,IAAI,EAAE;IAC5B,IAAI,EAAE,GAAG,kBAAU,IAAI,IAAI,UAAU;IACrC,IAAI,EAAE,GAAG,kBAAU,IAAI,IAAI,YAAY;IACvC,KAAK,EAAE,GAAG,kBAAU,IAAI,IAAI,YAAY;CAC3C,CAAC,CAAA;AALW,QAAA,UAAU,cAKrB;AAEK,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,gBAAQ,IAAI,IAAI,UAAU,CAAA;AAA1D,QAAA,QAAQ,YAAkD"} \ No newline at end of file +{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,2CAA2C,CAAA;AACrD,QAAA,YAAY,GAAG,MAAM,CAAA;AACrB,QAAA,UAAU,GAAG,SAAS,CAAA;AACtB,QAAA,QAAQ,GAAG,MAAM,CAAA;AAEjB,QAAA,UAAU,GAAG,GAAG,eAAO,SAAS,CAAA;AACtC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CACpC,GAAG,eAAO,eAAe,oBAAY,IAAI,gBAAQ,IAAI,IAAI,UAAU,CAAA;AAD1D,QAAA,OAAO,WACmD;AAQhE,MAAM,UAAU,GAAG,CAAC,IAAY,EAAe,EAAE,CAAC,CAAC;IACtD,GAAG,EAAE,GAAG,kBAAU,IAAI,IAAI,EAAE;IAC5B,IAAI,EAAE,GAAG,kBAAU,IAAI,IAAI,UAAU;IACrC,IAAI,EAAE,GAAG,kBAAU,IAAI,IAAI,YAAY;IACvC,KAAK,EAAE,GAAG,kBAAU,IAAI,IAAI,YAAY;CAC3C,CAAC,CAAA;AALW,QAAA,UAAU,cAKrB;AAEK,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,gBAAQ,IAAI,IAAI,UAAU,CAAA;AAA1D,QAAA,QAAQ,YAAkD"} \ No newline at end of file diff --git a/readme.md b/readme.md index 7b12e26..62db787 100644 --- a/readme.md +++ b/readme.md @@ -46,4 +46,7 @@ Root --prettier alias: -p prettify output files +--srccomment + alias: -s + include src file path comments in the output files, i.e. // scripts/example/main.ts ``` diff --git a/src/build.ts b/src/build.ts index 385a03e..0a3a48f 100644 --- a/src/build.ts +++ b/src/build.ts @@ -1,16 +1,14 @@ -import { buildSync, BuildFailure, BuildOptions } from 'esbuild' +import { buildSync, BuildFailure, BuildOptions, BuildResult } from 'esbuild' import { existsSync, writeFileSync, unlinkSync } from 'fs' import { DistPath, ScriptBase, ScriptPath } from './paths' import { UserScriptMetaFull } from './types' import readMeta from './readmeta' -import { format, Options } from 'prettier' +import { format, resolveConfig } from 'prettier' import { CLIArgs } from './main' export default function ( name: string, - watchCallback: (meta: UserScriptMetaFull, error: string | null) => void, - PrettierConfig: Options, - CLIArgs: CLIArgs + watchCallback: (meta: UserScriptMetaFull, error: string | null) => void ): [UserScriptMetaFull, string | null] { //read meta file let [metaJson, metaString] = readMeta(name) @@ -39,45 +37,16 @@ export default function ( }, }, result => { - let error = runPostEsbuild( - name, - result, - metaString, - CLIArgs, - PrettierConfig - ) + let error = postBuild(name, result, metaString) watchCallback(metaJson, error) - }, - CLIArgs + } ) - let error = runPostEsbuild( - name, - result, - metaString, - CLIArgs, - PrettierConfig - ) + let error = postBuild(name, result, metaString) return [metaJson, error] } -function doErrorFile( - pathError: string, - pathOutFile: string, - error: string | null -) { - if (error !== null) { - writeFileSync(pathError, `${new Date().toISOString()}\n\n${error}`) - - if (existsSync(pathOutFile)) { - unlinkSync(pathOutFile) - } - } else if (existsSync(pathError)) { - unlinkSync(pathError) - } -} - interface RunEsbuildResult { content: string | null error: string | null @@ -86,49 +55,37 @@ interface RunEsbuildResult { function runEsbuild( opts: BuildOptions, - watchCallback: (result: RunEsbuildResult) => void, - CLIArgs: CLIArgs + watchCallback: (result: RunEsbuildResult) => void ): RunEsbuildResult { opts.write = false if (CLIArgs.watch) { opts.watch = { onRebuild(err, res) { - if (err) { - watchCallback({ - content: null, - error: (err as BuildFailure).message, - errorRaw: err, - }) - } else if (res) { - let content = '' - if (res.outputFiles && res.outputFiles.length > 0) { - content = res.outputFiles[0].text - } - if (content === '') { - watchCallback({ - content: null, - error: 'No output', - }) - } - watchCallback({ - content, - error: null, - }) - } else { - watchCallback({ - content: null, - error: 'No result', - }) - } + watchCallback(getResult(err, res)) }, } } try { let res = buildSync(opts) + return getResult(null, res) + } catch (err) { + return getResult(err as BuildFailure, null) + } +} + +function getResult(error: BuildFailure | null, result: BuildResult | null) { + if (error) { + return { + content: null, + error: (error as BuildFailure).message, + errorRaw: error, + } + } else if (result) { let content = '' - if (res.outputFiles && res.outputFiles.length > 0) { - content = clearFilenameComments(res.outputFiles[0].text) + if (result.outputFiles && result.outputFiles.length > 0) { + content = result.outputFiles[0].text + if (!CLIArgs.srccomment) content = clearFilenameComments(content) } if (content === '') { return { @@ -140,45 +97,59 @@ function runEsbuild( content, error: null, } - } catch (err) { + } else { return { content: null, - error: (err as BuildFailure).message, + error: 'No result', } } } -function runPostEsbuild( - name: string, - result: RunEsbuildResult, - metaString: string, - CLIArgs: CLIArgs, - PrettierConfig: Options -) { +function clearFilenameComments(content: string): string { + let regexp = new RegExp(`//\\s*${ScriptBase}/.*(?:\\n|$)`, 'g') + return content.replace(regexp, '') +} + +function postBuild(name: string, result: RunEsbuildResult, metaString: string) { let error: string | null = null let path = ScriptPath(name) let pathDist = DistPath(name) + let PrettierConfig = resolveConfig.sync(path.dir) || {} + if (result.error) { console.error(name, result.errorRaw || result.error) error = result.error } else if (result.content) { let content = metaString + result.content if (CLIArgs.prettier) { - content = format(content, PrettierConfig) + content = format(content, { + ...PrettierConfig, + parser: 'babel', + }) } writeFileSync(pathDist, content) } else { console.error(name, 'No output') } - doErrorFile(path.error, pathDist, error) + doErrorFile(name, error) return error } -//remove all filename comments -function clearFilenameComments(content: string): string { - let regexp = new RegExp(`//\\s*${ScriptBase}/.*(?:\\n|$)`, 'g') - return content.replace(regexp, '') +function doErrorFile(name: string, error: string | null) { + let path = ScriptPath(name) + let outfile = DistPath(name) + + let content = `${new Date().toISOString()}\n\n${error}` + + if (error !== null) { + writeFileSync(path.error, content) + if (existsSync(outfile)) { + unlinkSync(outfile) + } + } else if (existsSync(path.error)) { + unlinkSync(path.error) + } } diff --git a/src/main.ts b/src/main.ts index 61513cf..a4e4b16 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,22 +1,59 @@ import { existsSync, lstatSync, readdirSync, unlinkSync } from 'fs' import commandLineArgs from 'command-line-args' -import { resolveConfig } from 'prettier' import { DistBase, ScriptBase, ScriptPath } from './paths' import { readmeData, updateReadmeFile } from './readmefile' import runBuild from './build' import { UserScriptMetaFull } from './types' +import * as Path from 'path' -export interface CLIArgs { +export interface CLIArgsT { watch: boolean minify: boolean prettier: boolean + srccomment: boolean + help: boolean } -const CLIArgs = commandLineArgs([ +export const CLIArgs = commandLineArgs([ { name: 'watch', alias: 'w', type: Boolean, defaultValue: false }, { name: 'minify', alias: 'm', type: Boolean, defaultValue: false }, { name: 'prettier', alias: 'p', type: Boolean, defaultValue: false }, -]) as CLIArgs + { name: 'srccomment', alias: 's', type: Boolean, defaultValue: false }, + { name: 'help', alias: 'h', type: Boolean, defaultValue: false }, +]) as CLIArgsT + +if (CLIArgs.help) { + let command = '' + if (process.argv.length > 0) { + command = Path.parse(process.argv[0]).name + } + if (command.toLowerCase() === 'node' && process.argv.length > 1) { + let path = Path.relative(process.cwd(), process.argv[1]) || '.' + command = `${command} ${path}` + } + + console.log(` +Usage: ${command} [options] + +options: +--watch + alias: -w + automatically recompile on save +--minify + alias: -m + minify output files +--prettier + alias: -p + prettify output files +--srccomment + alias: -s + include src file path comments in the output files, i.e. // scripts/example/main.ts +--help + alias: -h + show this help message +`) + process.exit(0) +} //if package.json doesn't exist then there is no point in continuing if (!existsSync('package.json') || !lstatSync('package.json').isFile()) { @@ -27,15 +64,6 @@ if (!existsSync('package.json') || !lstatSync('package.json').isFile()) { //delete compiled scripts readdirSync(DistBase).forEach(file => unlinkSync(`${DistBase}/${file}`)) -//read prettierrc file and make sure `babel` is the configured parser -const PrettierConfig = (() => { - let config = resolveConfig.sync(process.cwd()) || {} - return { - ...config, - parser: 'babel', - } -})() - //compile scripts let scripts = readdirSync(ScriptBase) let scriptMeta: readmeData[] = [] @@ -61,12 +89,7 @@ for (let name of scripts) { updateReadmeFile(scriptMeta) } - let [meta, error] = runBuild( - name, - postWatchUpdate, - PrettierConfig, - CLIArgs - ) + let [meta, error] = runBuild(name, postWatchUpdate) scriptMeta[id] = { meta, error } console.log(name, meta.version) diff --git a/src/paths.ts b/src/paths.ts index 5cdd543..c55a8c2 100644 --- a/src/paths.ts +++ b/src/paths.ts @@ -7,7 +7,13 @@ export const SupportUrl = `${BaseUrl}/issues` export const FileUrl = (name: string) => `${BaseUrl}/raw/branch/${RemoteBranch}/${DistBase}/${name}.user.js` -export const ScriptPath = (name: string) => ({ +export interface ScriptPathT { + dir: `${string}/${string}` + main: `${string}/${string}/main.ts` + meta: `${string}/${string}/meta.json` + error: `${string}/${string}/error.log` +} +export const ScriptPath = (name: string): ScriptPathT => ({ dir: `${ScriptBase}/${name}`, main: `${ScriptBase}/${name}/main.ts`, meta: `${ScriptBase}/${name}/meta.json`,