Compare commits

..

17 Commits

Author SHA1 Message Date
ad5f5a3c15 updated help command output 2024-07-17 21:22:33 -05:00
8247860806 v1.1.6 added homepageUrl argument 2024-07-17 21:18:14 -05:00
zomo
9c4fe7d3ea updated dependencies 2024-06-19 09:47:25 -05:00
ec24ba6c3e v1.0.5
fixed watching for meta.json changes
2024-05-30 22:05:05 -05:00
d95a5533b1 fix: corrected dependencies 2023-07-19 23:28:45 -05:00
302b8feee4 fix: shebang insertion broke escaped characters 2023-07-19 23:25:10 -05:00
7df811852d fix: applied shebang to wrong file 2023-07-19 23:20:01 -05:00
d249b02def fix: updated build to include a shebang 2023-07-19 22:47:13 -05:00
5de6a97dbd homepage url hotfix 2023-02-09 18:57:56 -06:00
7e67128abe updated cli args and help screen 2023-02-09 17:24:40 -06:00
806a82baae updated readme 2023-01-11 15:47:18 -06:00
ab8ef4ff5b fixed watch mode 2023-01-11 15:36:34 -06:00
bf50d06d60 reduced indent length for readme file 2022-08-24 12:00:28 -05:00
1b4cb233e5 v1.1.1 2022-08-24 11:59:21 -05:00
c9183d3022 added more data to readme generation 2022-08-24 11:57:11 -05:00
7e24370186 cli arg aliases can only be 1 char 2022-08-24 11:21:52 -05:00
83570d9535 refactord paths.ts 2022-06-11 00:05:32 -05:00
20 changed files with 1410 additions and 872 deletions

View File

@@ -4,18 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const esbuild_1 = require("esbuild"); const esbuild_1 = require("esbuild");
const fs_1 = require("fs");
const paths_1 = require("./paths");
const readmeta_1 = __importDefault(require("./readmeta")); const readmeta_1 = __importDefault(require("./readmeta"));
const prettier_1 = require("prettier"); const prettier_1 = require("prettier");
const main_1 = require("./main"); const main_1 = require("./main");
function runBuild(name, watchCallback) { const promises_1 = require("fs/promises");
async function runBuild(name) {
//read meta file //read meta file
let { meta, metaString } = (0, readmeta_1.default)(name); let { meta, metaString } = (0, readmeta_1.default)(name);
let pathDist = (0, paths_1.DistPath)(name); let paths = main_1.AllPaths.script(name);
let result = runEsbuild({ let result = await runEsbuild({
entryPoints: [(0, paths_1.ScriptPath)(name).main], entryPoints: [paths.main],
outfile: pathDist, outfile: paths.dist,
target: 'esnext', target: 'esnext',
platform: 'node', platform: 'node',
format: 'esm', format: 'esm',
@@ -29,31 +28,18 @@ function runBuild(name, watchCallback) {
UserScriptSupportURL: `'${meta.supportURL}'`, UserScriptSupportURL: `'${meta.supportURL}'`,
UserScriptHomepageURL: `'${meta.homepageURL}'`, UserScriptHomepageURL: `'${meta.homepageURL}'`,
}, },
}, result => {
let error = postBuild(name, result, metaString);
watchCallback({
meta,
error,
});
}); });
let error = postBuild(name, result, metaString); let error = await postBuild(name, result, metaString);
return { return {
meta, meta,
error, error,
}; };
} }
exports.default = runBuild; exports.default = runBuild;
function runEsbuild(opts, watchCallback) { async function runEsbuild(opts) {
opts.write = false; opts.write = false;
if (main_1.CLIArgs.watch) {
opts.watch = {
onRebuild(err, res) {
watchCallback(getResult(err, res));
},
};
}
try { try {
let res = (0, esbuild_1.buildSync)(opts); let res = await (0, esbuild_1.build)(opts);
return getResult(null, res); return getResult(null, res);
} }
catch (err) { catch (err) {
@@ -94,14 +80,13 @@ function getResult(error, result) {
} }
} }
function clearFilenameComments(content) { function clearFilenameComments(content) {
let regexp = new RegExp(`//\\s*${paths_1.ScriptBase}/.*(?:\\n|$)`, 'g'); let regexp = new RegExp(`//\\s*${main_1.AllPaths.base.in}/.*(?:\\n|$)`, 'g');
return content.replace(regexp, ''); return content.replace(regexp, '');
} }
function postBuild(name, result, metaString) { async function postBuild(name, result, metaString) {
let error = null; let error = null;
let path = (0, paths_1.ScriptPath)(name); let paths = main_1.AllPaths.script(name);
let pathDist = (0, paths_1.DistPath)(name); let PrettierConfig = (await (0, prettier_1.resolveConfig)(paths.dir)) ?? {};
let PrettierConfig = prettier_1.resolveConfig.sync(path.dir) || {};
if (result.error) { if (result.error) {
console.error(name, result.errorRaw || result.error); console.error(name, result.errorRaw || result.error);
error = result.error; error = result.error;
@@ -109,31 +94,37 @@ function postBuild(name, result, metaString) {
else if (result.content) { else if (result.content) {
let content = metaString + result.content; let content = metaString + result.content;
if (main_1.CLIArgs.prettier) { if (main_1.CLIArgs.prettier) {
content = (0, prettier_1.format)(content, { content = await (0, prettier_1.format)(content, {
...PrettierConfig, ...PrettierConfig,
parser: 'babel', parser: 'babel',
}); });
} }
(0, fs_1.writeFileSync)(pathDist, content); await (0, promises_1.writeFile)(paths.dist, content);
} }
else { else {
console.error(name, 'No output'); console.error(name, 'No output');
} }
doErrorFile(name, error); await doErrorFile(name, error);
return error; return error;
} }
function doErrorFile(name, error) { async function doErrorFile(name, error) {
let path = (0, paths_1.ScriptPath)(name); let paths = main_1.AllPaths.script(name);
let outfile = (0, paths_1.DistPath)(name);
let content = `${new Date().toISOString()}\n\n${error}`; let content = `${new Date().toISOString()}\n\n${error}`;
if (error !== null) { if (error !== null) {
(0, fs_1.writeFileSync)(path.error, content); await (0, promises_1.writeFile)(paths.error, content);
if ((0, fs_1.existsSync)(outfile)) { if (await existsFile(paths.dist)) {
(0, fs_1.unlinkSync)(outfile); await (0, promises_1.unlink)(paths.dist);
} }
} }
else if ((0, fs_1.existsSync)(path.error)) { else if (await existsFile(paths.error)) {
(0, fs_1.unlinkSync)(path.error); await (0, promises_1.unlink)(paths.error);
} }
} }
function existsFile(path) {
return new Promise(resolve => {
(0, promises_1.stat)(path)
.then(() => resolve(true))
.catch(() => resolve(false));
});
}
//# sourceMappingURL=build.js.map //# sourceMappingURL=build.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"} {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env node
"use strict"; "use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k; if (k2 === undefined) k2 = k;
@@ -26,20 +27,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod }; return (mod && mod.__esModule) ? mod : { "default": mod };
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.CLIArgs = void 0; exports.AllPaths = exports.CLIArgs = void 0;
const fs_1 = require("fs"); const fs_1 = require("fs");
const command_line_args_1 = __importDefault(require("command-line-args")); const command_line_args_1 = __importDefault(require("command-line-args"));
const paths_1 = require("./paths");
const readmefile_1 = require("./readmefile"); const readmefile_1 = require("./readmefile");
const build_1 = __importDefault(require("./build")); const build_1 = __importDefault(require("./build"));
const Path = __importStar(require("path")); const Path = __importStar(require("path"));
const paths_1 = __importDefault(require("./paths"));
const chokidar = __importStar(require("chokidar"));
exports.CLIArgs = (0, command_line_args_1.default)([ exports.CLIArgs = (0, command_line_args_1.default)([
{ name: 'watch', alias: 'w', type: Boolean, defaultValue: false }, { name: 'watch', alias: 'w', type: Boolean, defaultValue: false },
{ name: 'minify', alias: 'm', type: Boolean, defaultValue: false }, { name: 'minify', alias: 'm', type: Boolean, defaultValue: false },
{ name: 'prettier', alias: 'p', type: Boolean, defaultValue: false }, { name: 'prettier', alias: 'p', type: Boolean, defaultValue: false },
{ name: 'srccomment', alias: 's', type: Boolean, defaultValue: false }, { name: 'srccomment', alias: 'c', type: Boolean, defaultValue: false },
{ name: 'help', alias: 'h', type: Boolean, defaultValue: false }, { name: 'readme', alias: 'r', type: Boolean, defaultValue: false },
{ name: 'url', alias: 'u', type: String, defaultValue: '' },
{ name: 'supporturl', alias: 's', type: String, defaultValue: '' },
{ name: 'homepageurl', alias: 'U', type: String, defaultValue: '' },
{ name: 'remotebranch', alias: 'b', type: String, defaultValue: '' },
{ name: 'in', alias: 'i', type: String, defaultValue: 'scripts' },
{ name: 'out', alias: 'o', type: String, defaultValue: 'dist' },
{ name: 'help', alias: 'h', type: Boolean },
]); ]);
exports.AllPaths = (0, paths_1.default)({
baseUrl: exports.CLIArgs.url || '',
supportUrl: exports.CLIArgs.supporturl || '',
homepageUrl: exports.CLIArgs.homepageurl || '',
remoteBranch: exports.CLIArgs.remotebranch || '',
inBase: exports.CLIArgs.in || 'scripts',
outBase: exports.CLIArgs.out || 'dist',
});
if (exports.CLIArgs.help) { if (exports.CLIArgs.help) {
let command = '<command>'; let command = '<command>';
if (process.argv.length > 0) { if (process.argv.length > 0) {
@@ -55,16 +72,50 @@ Usage: ${command} [options]
options: options:
--watch --watch
alias: -w alias: -w
default: false
automatically recompile on save automatically recompile on save
--minify --minify
alias: -m alias: -m
default: false
minify output files minify output files
--prettier --prettier
alias: -p alias: -p
default: false
prettify output files prettify output files
--srccomment --srccomment
alias: -s alias: -c
default: false
include src file path comments in the output files, i.e. // scripts/example/main.ts include src file path comments in the output files, i.e. // scripts/example/main.ts
--readme
alias: -r
default: false
update the readme.md file in your directory to include links to each userscript
--url <url>
alias: -u <url>
default: ""
the base for urls used in the meta comments for @downloadURL
--supporturl <url>
alias: -s <url>
default: ""
the support url used in the meta comments for @supportURL
--homepageurl <url>
alias: -U <url>
default: ""
the support url used in the meta comments for @homepageURL
--remotebranch <name>
alias: -b <name>
default: ""
if included, the included base url will be treated as a git repo, and the support url is not required
--in
alias: -i
default: "scripts"
include src file path comments in the output files, i.e. // scripts/example/main.ts
--out
alias: -o
default: "dist"
include src file path comments in the output files, i.e. // scripts/example/main.ts
--help --help
alias: -h alias: -h
show this help message show this help message
@@ -76,29 +127,49 @@ if (!(0, fs_1.existsSync)('package.json') || !(0, fs_1.lstatSync)('package.json'
console.error('package.json not found, unwilling to run'); console.error('package.json not found, unwilling to run');
process.exit(1); process.exit(1);
} }
//delete compiled scripts //delete compiled scripts or create output folder if it doesnt exist
(0, fs_1.readdirSync)(paths_1.DistBase).forEach(file => (0, fs_1.unlinkSync)(`${paths_1.DistBase}/${file}`)); if (!(0, fs_1.existsSync)(exports.AllPaths.base.out)) {
//compile scripts (0, fs_1.mkdirSync)(exports.AllPaths.base.out);
let scripts = (0, fs_1.readdirSync)(paths_1.ScriptBase);
let scriptMeta = [];
for (let name of scripts) {
let path = (0, paths_1.ScriptPath)(name);
if (!name.endsWith('_') &&
(0, fs_1.existsSync)(path.dir) &&
(0, fs_1.lstatSync)(path.dir).isDirectory() &&
(0, fs_1.existsSync)(path.main) &&
(0, fs_1.lstatSync)(path.main).isFile()) {
let id = scriptMeta.length;
function update(result) {
console.log('WATCH', name, result.meta.version);
scriptMeta[id] = result;
(0, readmefile_1.updateReadmeFile)(scriptMeta);
}
let result = (0, build_1.default)(name, update);
console.log(name, result.meta.version);
scriptMeta[id] = result;
}
} }
(0, readmefile_1.updateReadmeFile)(scriptMeta); else {
console.log(`\nFinished Compiling\n${exports.CLIArgs.watch ? 'Listening for Changes\n' : ''}`); (0, fs_1.readdirSync)(exports.AllPaths.base.out).forEach(file => (0, fs_1.unlinkSync)(`${exports.AllPaths.base.out}/${file}`));
}
//compile scripts
async function doCompile() {
let scripts = (0, fs_1.readdirSync)(exports.AllPaths.base.in);
let scriptMeta = [];
for (let name of scripts) {
let path = exports.AllPaths.script(name);
if (!name.endsWith('_') &&
(0, fs_1.existsSync)(path.dir) &&
(0, fs_1.lstatSync)(path.dir).isDirectory() &&
(0, fs_1.existsSync)(path.main) &&
(0, fs_1.lstatSync)(path.main).isFile()) {
let id = scriptMeta.length;
scriptMeta[id] = await (0, build_1.default)(name);
console.log(name, scriptMeta[id].meta.version);
var running = false;
async function update(eventName) {
if (running) {
return;
}
running = true;
scriptMeta[id] = await (0, build_1.default)(name);
console.log(`WATCH ${eventName}`, name, scriptMeta[id].meta.version);
if (exports.CLIArgs.readme)
(0, readmefile_1.updateReadmeFile)(scriptMeta);
running = false;
}
if (exports.CLIArgs.watch) {
chokidar.watch(path.dir).on('all', update);
}
}
}
return scriptMeta;
}
doCompile().then(scriptMeta => {
if (exports.CLIArgs.readme)
(0, readmefile_1.updateReadmeFile)(scriptMeta);
console.log(`\nFinished Compiling\n${exports.CLIArgs.watch ? 'Listening for Changes\n' : ''}`);
});
//# sourceMappingURL=main.js.map //# sourceMappingURL=main.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"} {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}

View File

@@ -1,20 +1,35 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.DistPath = exports.ScriptPath = exports.FileUrl = exports.SupportUrl = exports.DistBase = exports.ScriptBase = exports.RemoteBranch = exports.BaseUrl = void 0; function getAllPaths({ baseUrl, supportUrl, homepageUrl, remoteBranch, inBase, outBase, }) {
exports.BaseUrl = `https://git.zomo.dev/zomo/browser-scripts`; // generate links for remote git server
exports.RemoteBranch = 'main'; if (baseUrl != '' && remoteBranch != '') {
exports.ScriptBase = 'scripts'; if (supportUrl == '') {
exports.DistBase = 'dist'; supportUrl = `${baseUrl}/issues`;
exports.SupportUrl = `${exports.BaseUrl}/issues`; }
const FileUrl = (name) => `${exports.BaseUrl}/raw/branch/${exports.RemoteBranch}/${exports.DistBase}/${name}.user.js`; if (homepageUrl == '') {
exports.FileUrl = FileUrl; homepageUrl = baseUrl;
const ScriptPath = (name) => ({ }
dir: `${exports.ScriptBase}/${name}`, baseUrl = `${baseUrl}/raw/branch/${remoteBranch}/${outBase}`;
main: `${exports.ScriptBase}/${name}/main.ts`, }
meta: `${exports.ScriptBase}/${name}/meta.json`, return {
error: `${exports.ScriptBase}/${name}/error.log`, base: {
}); in: inBase,
exports.ScriptPath = ScriptPath; out: outBase,
const DistPath = (name) => `${exports.DistBase}/${name}.user.js`; },
exports.DistPath = DistPath; url: {
home: homepageUrl,
base: baseUrl,
support: supportUrl,
},
script: (name) => ({
dir: `${inBase}/${name}`,
main: `${inBase}/${name}/main.ts`,
meta: `${inBase}/${name}/meta.json`,
error: `${inBase}/${name}/error.log`,
dist: `${outBase}/${name}.user.js`,
url: `${baseUrl}/${name}.user.js`,
}),
};
}
exports.default = getAllPaths;
//# sourceMappingURL=paths.js.map //# sourceMappingURL=paths.js.map

View File

@@ -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;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"} {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":";;AAkBA,SAAwB,WAAW,CAAC,EAChC,OAAO,EACP,UAAU,EACV,WAAW,EACX,YAAY,EACZ,MAAM,EACN,OAAO,GACM;IACb,uCAAuC;IACvC,IAAI,OAAO,IAAI,EAAE,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;QACtC,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;YACnB,UAAU,GAAG,GAAG,OAAO,SAAS,CAAA;QACpC,CAAC;QAED,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;YACpB,WAAW,GAAG,OAAO,CAAA;QACzB,CAAC;QACD,OAAO,GAAG,GAAG,OAAO,eAAe,YAAY,IAAI,OAAO,EAAE,CAAA;IAChE,CAAC;IAED,OAAO;QACH,IAAI,EAAE;YACF,EAAE,EAAE,MAAM;YACV,GAAG,EAAE,OAAO;SACf;QACD,GAAG,EAAE;YACD,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,UAAU;SACtB;QACD,MAAM,EAAE,CAAC,IAAY,EAAe,EAAE,CAAC,CAAC;YACpC,GAAG,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE;YACxB,IAAI,EAAE,GAAG,MAAM,IAAI,IAAI,UAAU;YACjC,IAAI,EAAE,GAAG,MAAM,IAAI,IAAI,YAAY;YACnC,KAAK,EAAE,GAAG,MAAM,IAAI,IAAI,YAAY;YACpC,IAAI,EAAE,GAAG,OAAO,IAAI,IAAI,UAAU;YAClC,GAAG,EAAE,GAAG,OAAO,IAAI,IAAI,UAAU;SACpC,CAAC;KACL,CAAA;AACL,CAAC;AAvCD,8BAuCC"}

View File

@@ -30,7 +30,11 @@ function readmeDataToString(results) {
let { meta, error } = results; let { meta, error } = results;
let errStr = error !== null ? '~~' : ''; let errStr = error !== null ? '~~' : '';
let errMsg = readmeDataErrorString(error); let errMsg = readmeDataErrorString(error);
return `- ${errStr}[${meta.name}](${meta.downloadURL})${errStr}${errMsg}`; return `
- ${errStr}[${meta.name}](${meta.downloadURL})${errStr}${errMsg}
- ${meta.namespace} ${meta.version}
- ${meta.description}
`.trim();
} }
function getReadmeFileName() { function getReadmeFileName() {
let files = (0, fs_1.readdirSync)('.'); let files = (0, fs_1.readdirSync)('.');

View File

@@ -1 +1 @@
{"version":3,"file":"readmefile.js","sourceRoot":"","sources":["../src/readmefile.ts"],"names":[],"mappings":"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"} {"version":3,"file":"readmefile.js","sourceRoot":"","sources":["../src/readmefile.ts"],"names":[],"mappings":"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"}

View File

@@ -1,8 +1,10 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = require("fs"); const fs_1 = require("fs");
const paths_1 = require("./paths"); const main_1 = require("./main");
function readMeta(name) { function readMeta(name) {
let paths = main_1.AllPaths.script(name);
let urls = main_1.AllPaths.url;
var meta = { var meta = {
name: name, name: name,
namespace: 'zomo.dev', namespace: 'zomo.dev',
@@ -17,12 +19,12 @@ function readMeta(name) {
noframes: false, noframes: false,
grant: '', grant: '',
injectinto: '', injectinto: '',
downloadURL: (0, paths_1.FileUrl)(name), downloadURL: paths.url,
supportURL: paths_1.SupportUrl, supportURL: urls.support,
homepageURL: paths_1.BaseUrl, homepageURL: urls.home,
unwrap: false, unwrap: false,
}; };
let metaPath = (0, paths_1.ScriptPath)(name).meta; let metaPath = paths.meta;
if ((0, fs_1.existsSync)(metaPath) && (0, fs_1.lstatSync)(metaPath).isFile()) { if ((0, fs_1.existsSync)(metaPath) && (0, fs_1.lstatSync)(metaPath).isFile()) {
try { try {
let args = JSON.parse((0, fs_1.readFileSync)(metaPath).toString()); let args = JSON.parse((0, fs_1.readFileSync)(metaPath).toString());

View File

@@ -1 +1 @@
{"version":3,"file":"readmeta.js","sourceRoot":"","sources":["../src/readmeta.ts"],"names":[],"mappings":"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"} {"version":3,"file":"readmeta.js","sourceRoot":"","sources":["../src/readmeta.ts"],"names":[],"mappings":"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"}

View File

@@ -29,7 +29,6 @@
"match": { "match": {
"description": "Define rules to decide whether a script should be executed", "description": "Define rules to decide whether a script should be executed",
"type": ["string", "array"], "type": ["string", "array"],
"minItems": 1,
"uniqueItems": true, "uniqueItems": true,
"items": { "items": {
"type": "string" "type": "string"
@@ -38,7 +37,6 @@
"excludematch": { "excludematch": {
"description": "Define rules to decide whether a script should be executed", "description": "Define rules to decide whether a script should be executed",
"type": ["string", "array"], "type": ["string", "array"],
"minItems": 1,
"uniqueItems": true, "uniqueItems": true,
"items": { "items": {
"type": "string" "type": "string"
@@ -68,7 +66,6 @@
"require": { "require": {
"description": "Require another script to execute before the current one\n\nThe value is the URL to the required script, which may be relative to the URL the script is being installed from", "description": "Require another script to execute before the current one\n\nThe value is the URL to the required script, which may be relative to the URL the script is being installed from",
"type": ["string", "array"], "type": ["string", "array"],
"minItems": 1,
"uniqueItems": true, "uniqueItems": true,
"items": { "items": {
"type": "string" "type": "string"
@@ -77,7 +74,6 @@
"resource": { "resource": {
"description": "Static resources that can be accessed in the script by GM_getResourceText and GM_getResourceURL\n\nThe value is composed of two parts, joined with one or more white spaces\n\nThe first part is the name of the resource, no white space is allowed in it\n\nThe second part is the URL to the resource, which may be relative to the URL the script is being installed from", "description": "Static resources that can be accessed in the script by GM_getResourceText and GM_getResourceURL\n\nThe value is composed of two parts, joined with one or more white spaces\n\nThe first part is the name of the resource, no white space is allowed in it\n\nThe second part is the URL to the resource, which may be relative to the URL the script is being installed from",
"type": ["string", "array"], "type": ["string", "array"],
"minItems": 1,
"uniqueItems": true, "uniqueItems": true,
"items": { "items": {
"type": "string" "type": "string"
@@ -95,7 +91,6 @@
"grant": { "grant": {
"description": "Specify which special APIs should be granted and can be used when the script executes\n\nIf nothing is present, \"none\" is assumed\n\nAny GM_ or GM. function used, including window.close and window.focus", "description": "Specify which special APIs should be granted and can be used when the script executes\n\nIf nothing is present, \"none\" is assumed\n\nAny GM_ or GM. function used, including window.close and window.focus",
"type": ["string", "array"], "type": ["string", "array"],
"minItems": 1,
"uniqueItems": true, "uniqueItems": true,
"items": { "items": {
"type": "string" "type": "string"

View File

@@ -1,6 +1,6 @@
{ {
"name": "browser-scripts-builder", "name": "browser-scripts-builder",
"version": "1.0.0", "version": "1.1.6",
"description": "", "description": "",
"main": "./lib/main.js", "main": "./lib/main.js",
"module": "./lib/main.js", "module": "./lib/main.js",
@@ -9,7 +9,7 @@
}, },
"scripts": { "scripts": {
"prettier": "prettier --write .", "prettier": "prettier --write .",
"build": "npm run prettier && tsc", "build": "npm run prettier && tsc && node -e \"(async () => { const p = 'lib/main.js'; await fs.promises.writeFile(p, '#!/usr/bin/env node\\n' + await fs.promises.readFile(p)); await fs.promises.chmod(p, 754); })()\"",
"test": "node ./test/test.mjs" "test": "node ./test/test.mjs"
}, },
"repository": { "repository": {
@@ -19,15 +19,16 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"chokidar": "^3.6.0",
"command-line-args": "^5.2.1", "command-line-args": "^5.2.1",
"esbuild": "^0.14.42", "esbuild": "^0.21.5",
"typescript": "^4.7.3", "prettier": "^3.3.2"
"prettier": "^2.6.2"
}, },
"devDependencies": { "devDependencies": {
"@types/command-line-args": "^5.2.0", "@types/command-line-args": "^5.2.3",
"@types/node": "^17.0.40", "@types/node": "^20.14.5",
"@types/prettier": "^2.6.3", "@types/prettier": "^2.7.3",
"eslint": "^8.17.0" "eslint": "^9.5.0",
"typescript": "^5.4.5"
} }
} }

1561
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -4,6 +4,8 @@ builder for [browser-scripts](https://git.zomo.dev/zomo/browser-scripts)
## Source File Structure ## Source File Structure
note: if `package.json` is not present, running the command is presumed to be a mistake and will refuse to run
```text ```text
Root Root
├───<package.json/etc> ├───<package.json/etc>
@@ -39,14 +41,51 @@ Root
```text ```text
--watch --watch
alias: -w alias: -w
default: false
automatically recompile on save automatically recompile on save
--minify --minify
alias: -m alias: -m
default: false
minify output files minify output files
--prettier --prettier
alias: -p alias: -p
default: false
prettify output files prettify output files
--srccomment --srccomment
alias: -s alias: -c
default: false
include src file path comments in the output files, i.e. // scripts/example/main.ts include src file path comments in the output files, i.e. // scripts/example/main.ts
--readme
alias: -r
default: false
update the readme.md file in your directory to include links to each userscript
--url <url>
alias: -u <url>
default: ""
the base for urls used in the meta comments for @downloadURL
--supporturl <url>
alias: -s <url>
default: ""
the support url used in the meta comments for @supportURL
--homepageurl <url>
alias: -U <url>
default: ""
the support url used in the meta comments for @homepageURL
--remotebranch <name>
alias: -b <name>
default: ""
if included, the included base url will be treated as a git repo, and the support url is not required
--in
alias: -i
default: "scripts"
include src file path comments in the output files, i.e. // scripts/example/main.ts
--out
alias: -o
default: "dist"
include src file path comments in the output files, i.e. // scripts/example/main.ts
--help
alias: -h
show this help message
``` ```

View File

@@ -1,56 +1,43 @@
import { buildSync, BuildFailure, BuildOptions, BuildResult } from 'esbuild' import { BuildFailure, BuildOptions, BuildResult, build } from 'esbuild'
import { existsSync, writeFileSync, unlinkSync } from 'fs'
import { DistPath, ScriptBase, ScriptPath } from './paths'
import { UserScriptMetaFull } from './types' import { UserScriptMetaFull } from './types'
import readMeta from './readmeta' import readMeta from './readmeta'
import { format, resolveConfig } from 'prettier' import { format, resolveConfig } from 'prettier'
import { CLIArgs } from './main' import { AllPaths, CLIArgs } from './main'
import { writeFile, stat, unlink } from 'fs/promises'
export default interface runBuild { export interface runBuildResult {
meta: UserScriptMetaFull meta: UserScriptMetaFull
error: string | null error: string | null
} }
export default function runBuild( export default async function runBuild(name: string) {
name: string,
watchCallback: (result: runBuild) => void
) {
//read meta file //read meta file
let { meta, metaString } = readMeta(name) let { meta, metaString } = readMeta(name)
let pathDist = DistPath(name) let paths = AllPaths.script(name)
let result = runEsbuild( let result = await runEsbuild({
{ entryPoints: [paths.main],
entryPoints: [ScriptPath(name).main], outfile: paths.dist,
outfile: pathDist,
target: 'esnext', target: 'esnext',
platform: 'node', platform: 'node',
format: 'esm', format: 'esm',
bundle: true, bundle: true,
minify: CLIArgs.minify, minify: CLIArgs.minify,
define: { define: {
UserScriptName: `'${meta.name}'`, UserScriptName: `'${meta.name}'`,
UserScriptNamespace: `'${meta.namespace}'`, UserScriptNamespace: `'${meta.namespace}'`,
UserScriptVersion: `'${meta.version}'`, UserScriptVersion: `'${meta.version}'`,
UserScriptDownloadURL: `'${meta.downloadURL}'`, UserScriptDownloadURL: `'${meta.downloadURL}'`,
UserScriptSupportURL: `'${meta.supportURL}'`, UserScriptSupportURL: `'${meta.supportURL}'`,
UserScriptHomepageURL: `'${meta.homepageURL}'`, UserScriptHomepageURL: `'${meta.homepageURL}'`,
},
}, },
result => { })
let error = postBuild(name, result, metaString)
watchCallback({
meta,
error,
})
}
)
let error = postBuild(name, result, metaString) let error = await postBuild(name, result, metaString)
return { return {
meta, meta,
@@ -64,21 +51,11 @@ interface RunEsbuildResult {
errorRaw?: BuildFailure errorRaw?: BuildFailure
} }
function runEsbuild( async function runEsbuild(opts: BuildOptions): Promise<RunEsbuildResult> {
opts: BuildOptions,
watchCallback: (result: RunEsbuildResult) => void
): RunEsbuildResult {
opts.write = false opts.write = false
if (CLIArgs.watch) {
opts.watch = {
onRebuild(err, res) {
watchCallback(getResult(err, res))
},
}
}
try { try {
let res = buildSync(opts) let res = await build(opts)
return getResult(null, res) return getResult(null, res)
} catch (err) { } catch (err) {
return getResult(err as BuildFailure, null) return getResult(err as BuildFailure, null)
@@ -117,16 +94,19 @@ function getResult(error: BuildFailure | null, result: BuildResult | null) {
} }
function clearFilenameComments(content: string): string { function clearFilenameComments(content: string): string {
let regexp = new RegExp(`//\\s*${ScriptBase}/.*(?:\\n|$)`, 'g') let regexp = new RegExp(`//\\s*${AllPaths.base.in}/.*(?:\\n|$)`, 'g')
return content.replace(regexp, '') return content.replace(regexp, '')
} }
function postBuild(name: string, result: RunEsbuildResult, metaString: string) { async function postBuild(
name: string,
result: RunEsbuildResult,
metaString: string
) {
let error: string | null = null let error: string | null = null
let path = ScriptPath(name) let paths = AllPaths.script(name)
let pathDist = DistPath(name)
let PrettierConfig = resolveConfig.sync(path.dir) || {} let PrettierConfig = (await resolveConfig(paths.dir)) ?? {}
if (result.error) { if (result.error) {
console.error(name, result.errorRaw || result.error) console.error(name, result.errorRaw || result.error)
@@ -134,33 +114,40 @@ function postBuild(name: string, result: RunEsbuildResult, metaString: string) {
} else if (result.content) { } else if (result.content) {
let content = metaString + result.content let content = metaString + result.content
if (CLIArgs.prettier) { if (CLIArgs.prettier) {
content = format(content, { content = await format(content, {
...PrettierConfig, ...PrettierConfig,
parser: 'babel', parser: 'babel',
}) })
} }
writeFileSync(pathDist, content) await writeFile(paths.dist, content)
} else { } else {
console.error(name, 'No output') console.error(name, 'No output')
} }
doErrorFile(name, error) await doErrorFile(name, error)
return error return error
} }
function doErrorFile(name: string, error: string | null) { async function doErrorFile(name: string, error: string | null) {
let path = ScriptPath(name) let paths = AllPaths.script(name)
let outfile = DistPath(name)
let content = `${new Date().toISOString()}\n\n${error}` let content = `${new Date().toISOString()}\n\n${error}`
if (error !== null) { if (error !== null) {
writeFileSync(path.error, content) await writeFile(paths.error, content)
if (existsSync(outfile)) { if (await existsFile(paths.dist)) {
unlinkSync(outfile) await unlink(paths.dist)
} }
} else if (existsSync(path.error)) { } else if (await existsFile(paths.error)) {
unlinkSync(path.error) await unlink(paths.error)
} }
} }
function existsFile(path: string): Promise<boolean> {
return new Promise(resolve => {
stat(path)
.then(() => resolve(true))
.catch(() => resolve(false))
})
}

View File

@@ -1,26 +1,56 @@
import { existsSync, lstatSync, readdirSync, unlinkSync } from 'fs' import { existsSync, lstatSync, mkdirSync, readdirSync, unlinkSync } from 'fs'
import commandLineArgs from 'command-line-args' import commandLineArgs from 'command-line-args'
import { DistBase, ScriptBase, ScriptPath } from './paths'
import { updateReadmeFile } from './readmefile' import { updateReadmeFile } from './readmefile'
import runBuild from './build' import runBuild, { runBuildResult } from './build'
import * as Path from 'path' import * as Path from 'path'
import getAllPaths from './paths'
import * as chokidar from 'chokidar'
export interface CLIArgsT { export interface CLIArgsT {
watch: boolean watch: boolean
minify: boolean minify: boolean
prettier: boolean prettier: boolean
srccomment: boolean srccomment: boolean
help: boolean readme: boolean
url?: string
supporturl?: string
homepageurl?: string
remotebranch?: string
in?: string
out?: string
help?: boolean
src?: string
} }
export const CLIArgs = commandLineArgs([ export const CLIArgs = commandLineArgs([
{ name: 'watch', alias: 'w', type: Boolean, defaultValue: false }, { name: 'watch', alias: 'w', type: Boolean, defaultValue: false },
{ name: 'minify', alias: 'm', type: Boolean, defaultValue: false }, { name: 'minify', alias: 'm', type: Boolean, defaultValue: false },
{ name: 'prettier', alias: 'p', type: Boolean, defaultValue: false }, { name: 'prettier', alias: 'p', type: Boolean, defaultValue: false },
{ name: 'srccomment', alias: 's', type: Boolean, defaultValue: false }, { name: 'srccomment', alias: 'c', type: Boolean, defaultValue: false },
{ name: 'help', alias: 'h', type: Boolean, defaultValue: false }, { name: 'readme', alias: 'r', type: Boolean, defaultValue: false },
{ name: 'url', alias: 'u', type: String, defaultValue: '' },
{ name: 'supporturl', alias: 's', type: String, defaultValue: '' },
{ name: 'homepageurl', alias: 'U', type: String, defaultValue: '' },
{ name: 'remotebranch', alias: 'b', type: String, defaultValue: '' },
{ name: 'in', alias: 'i', type: String, defaultValue: 'scripts' },
{ name: 'out', alias: 'o', type: String, defaultValue: 'dist' },
{ name: 'help', alias: 'h', type: Boolean },
]) as CLIArgsT ]) as CLIArgsT
export const AllPaths = getAllPaths({
baseUrl: CLIArgs.url || '',
supportUrl: CLIArgs.supporturl || '',
homepageUrl: CLIArgs.homepageurl || '',
remoteBranch: CLIArgs.remotebranch || '',
inBase: CLIArgs.in || 'scripts',
outBase: CLIArgs.out || 'dist',
})
if (CLIArgs.help) { if (CLIArgs.help) {
let command = '<command>' let command = '<command>'
if (process.argv.length > 0) { if (process.argv.length > 0) {
@@ -37,16 +67,50 @@ Usage: ${command} [options]
options: options:
--watch --watch
alias: -w alias: -w
default: false
automatically recompile on save automatically recompile on save
--minify --minify
alias: -m alias: -m
default: false
minify output files minify output files
--prettier --prettier
alias: -p alias: -p
default: false
prettify output files prettify output files
--srccomment --srccomment
alias: -s alias: -c
default: false
include src file path comments in the output files, i.e. // scripts/example/main.ts include src file path comments in the output files, i.e. // scripts/example/main.ts
--readme
alias: -r
default: false
update the readme.md file in your directory to include links to each userscript
--url <url>
alias: -u <url>
default: ""
the base for urls used in the meta comments for @downloadURL
--supporturl <url>
alias: -s <url>
default: ""
the support url used in the meta comments for @supportURL
--homepageurl <url>
alias: -U <url>
default: ""
the support url used in the meta comments for @homepageURL
--remotebranch <name>
alias: -b <name>
default: ""
if included, the included base url will be treated as a git repo, and the support url is not required
--in
alias: -i
default: "scripts"
include src file path comments in the output files, i.e. // scripts/example/main.ts
--out
alias: -o
default: "dist"
include src file path comments in the output files, i.e. // scripts/example/main.ts
--help --help
alias: -h alias: -h
show this help message show this help message
@@ -60,40 +124,67 @@ if (!existsSync('package.json') || !lstatSync('package.json').isFile()) {
process.exit(1) process.exit(1)
} }
//delete compiled scripts //delete compiled scripts or create output folder if it doesnt exist
readdirSync(DistBase).forEach(file => unlinkSync(`${DistBase}/${file}`)) if (!existsSync(AllPaths.base.out)) {
mkdirSync(AllPaths.base.out)
//compile scripts } else {
let scripts = readdirSync(ScriptBase) readdirSync(AllPaths.base.out).forEach(file =>
let scriptMeta: runBuild[] = [] unlinkSync(`${AllPaths.base.out}/${file}`)
)
for (let name of scripts) {
let path = ScriptPath(name)
if (
!name.endsWith('_') &&
existsSync(path.dir) &&
lstatSync(path.dir).isDirectory() &&
existsSync(path.main) &&
lstatSync(path.main).isFile()
) {
let id = scriptMeta.length
function update(result: runBuild) {
console.log('WATCH', name, result.meta.version)
scriptMeta[id] = result
updateReadmeFile(scriptMeta)
}
let result = runBuild(name, update)
console.log(name, result.meta.version)
scriptMeta[id] = result
}
} }
updateReadmeFile(scriptMeta) //compile scripts
async function doCompile() {
let scripts = readdirSync(AllPaths.base.in)
let scriptMeta: runBuildResult[] = []
console.log( for (let name of scripts) {
`\nFinished Compiling\n${CLIArgs.watch ? 'Listening for Changes\n' : ''}` let path = AllPaths.script(name)
)
if (
!name.endsWith('_') &&
existsSync(path.dir) &&
lstatSync(path.dir).isDirectory() &&
existsSync(path.main) &&
lstatSync(path.main).isFile()
) {
let id = scriptMeta.length
scriptMeta[id] = await runBuild(name)
console.log(name, scriptMeta[id].meta.version)
var running = false
async function update(eventName: string) {
if (running) {
return
}
running = true
scriptMeta[id] = await runBuild(name)
console.log(
`WATCH ${eventName}`,
name,
scriptMeta[id].meta.version
)
if (CLIArgs.readme) updateReadmeFile(scriptMeta)
running = false
}
if (CLIArgs.watch) {
chokidar.watch(path.dir).on('all', update)
}
}
}
return scriptMeta
}
doCompile().then(scriptMeta => {
if (CLIArgs.readme) updateReadmeFile(scriptMeta)
console.log(
`\nFinished Compiling\n${
CLIArgs.watch ? 'Listening for Changes\n' : ''
}`
)
})

View File

@@ -1,23 +1,58 @@
export const BaseUrl = `https://git.zomo.dev/zomo/browser-scripts`
export const RemoteBranch = 'main'
export const ScriptBase = 'scripts'
export const DistBase = 'dist'
export const SupportUrl = `${BaseUrl}/issues`
export const FileUrl = (name: string) =>
`${BaseUrl}/raw/branch/${RemoteBranch}/${DistBase}/${name}.user.js`
export interface ScriptPathT { export interface ScriptPathT {
dir: `${string}/${string}` dir: `${string}/${string}`
main: `${string}/${string}/main.ts` main: `${string}/${string}/main.ts`
meta: `${string}/${string}/meta.json` meta: `${string}/${string}/meta.json`
error: `${string}/${string}/error.log` error: `${string}/${string}/error.log`
dist: `${string}/${string}.user.js`
url: `${string}/${string}.user.js`
} }
export const ScriptPath = (name: string): ScriptPathT => ({
dir: `${ScriptBase}/${name}`,
main: `${ScriptBase}/${name}/main.ts`,
meta: `${ScriptBase}/${name}/meta.json`,
error: `${ScriptBase}/${name}/error.log`,
})
export const DistPath = (name: string) => `${DistBase}/${name}.user.js` export interface getAllPathsOps {
baseUrl: string
supportUrl: string
homepageUrl: string
remoteBranch: string
inBase: string
outBase: string
}
export default function getAllPaths({
baseUrl,
supportUrl,
homepageUrl,
remoteBranch,
inBase,
outBase,
}: getAllPathsOps) {
// generate links for remote git server
if (baseUrl != '' && remoteBranch != '') {
if (supportUrl == '') {
supportUrl = `${baseUrl}/issues`
}
if (homepageUrl == '') {
homepageUrl = baseUrl
}
baseUrl = `${baseUrl}/raw/branch/${remoteBranch}/${outBase}`
}
return {
base: {
in: inBase,
out: outBase,
},
url: {
home: homepageUrl,
base: baseUrl,
support: supportUrl,
},
script: (name: string): ScriptPathT => ({
dir: `${inBase}/${name}`,
main: `${inBase}/${name}/main.ts`,
meta: `${inBase}/${name}/meta.json`,
error: `${inBase}/${name}/error.log`,
dist: `${outBase}/${name}.user.js`,
url: `${baseUrl}/${name}.user.js`,
}),
}
}

View File

@@ -1,7 +1,7 @@
import { readdirSync, readFileSync, writeFileSync } from 'fs' import { readdirSync, readFileSync, writeFileSync } from 'fs'
import runBuild from './build' import { runBuildResult } from './build'
export function updateReadmeFile(fileList: runBuild[]) { export function updateReadmeFile(fileList: runBuildResult[]) {
let readmeFile = getReadmeFileName() let readmeFile = getReadmeFileName()
if (readmeFile !== null) { if (readmeFile !== null) {
let [readmeStart, readmeEnd] = readReadmeFile(readmeFile) let [readmeStart, readmeEnd] = readReadmeFile(readmeFile)
@@ -28,11 +28,15 @@ function readmeDataErrorString(error: string | null): string {
return `\n\n${error}` return `\n\n${error}`
} }
function readmeDataToString(results: runBuild): string { function readmeDataToString(results: runBuildResult): string {
let { meta, error } = results let { meta, error } = results
let errStr = error !== null ? '~~' : '' let errStr = error !== null ? '~~' : ''
let errMsg = readmeDataErrorString(error) let errMsg = readmeDataErrorString(error)
return `- ${errStr}[${meta.name}](${meta.downloadURL})${errStr}${errMsg}` return `
- ${errStr}[${meta.name}](${meta.downloadURL})${errStr}${errMsg}
- ${meta.namespace} ${meta.version}
- ${meta.description}
`.trim()
} }
function getReadmeFileName(): string | null { function getReadmeFileName(): string | null {

View File

@@ -1,5 +1,5 @@
import { existsSync, lstatSync, readFileSync } from 'fs' import { existsSync, lstatSync, readFileSync } from 'fs'
import { BaseUrl, FileUrl, ScriptPath, SupportUrl } from './paths' import { AllPaths } from './main'
import { import {
UserScriptMeta, UserScriptMeta,
UserScriptMetaFull, UserScriptMetaFull,
@@ -12,6 +12,9 @@ export default interface readMeta {
} }
export default function readMeta(name: string) { export default function readMeta(name: string) {
let paths = AllPaths.script(name)
let urls = AllPaths.url
var meta: UserScriptMetaFull = { var meta: UserScriptMetaFull = {
name: name, name: name,
namespace: 'zomo.dev', namespace: 'zomo.dev',
@@ -26,13 +29,13 @@ export default function readMeta(name: string) {
noframes: false, noframes: false,
grant: '', grant: '',
injectinto: '', injectinto: '',
downloadURL: FileUrl(name), downloadURL: paths.url,
supportURL: SupportUrl, supportURL: urls.support,
homepageURL: BaseUrl, homepageURL: urls.home,
unwrap: false, unwrap: false,
} }
let metaPath = ScriptPath(name).meta let metaPath = paths.meta
if (existsSync(metaPath) && lstatSync(metaPath).isFile()) { if (existsSync(metaPath) && lstatSync(metaPath).isFile()) {
try { try {

View File

@@ -0,0 +1 @@
// TODO add tests