fixed watch
This commit is contained in:
161
lib/build.js
161
lib/build.js
@@ -10,57 +10,126 @@ const readmeta_1 = __importDefault(require("./readmeta"));
|
||||
async function default_1(name, watchCallback = false) {
|
||||
//read meta file
|
||||
let [metaJson, metaString] = (0, readmeta_1.default)(name);
|
||||
let outPath = (0, paths_1.DistPath)(name);
|
||||
let error = null;
|
||||
console.log('build watch?', !watchCallback ? false : 'obj');
|
||||
try {
|
||||
await (0, esbuild_1.build)({
|
||||
entryPoints: [(0, paths_1.ScriptPath)(name).main],
|
||||
outfile: outPath,
|
||||
target: 'esnext',
|
||||
platform: 'node',
|
||||
format: 'esm',
|
||||
bundle: true,
|
||||
minify: false,
|
||||
// write: false, //TODO this will cause result.outputFiles to have the file contents so i can write the file instead
|
||||
// watch: !watchCallback
|
||||
// ? false
|
||||
// : {
|
||||
// onRebuild(err, _result) {
|
||||
// console.log('onrebuild')
|
||||
// let error = null
|
||||
// if (err) {
|
||||
// console.error(name, err)
|
||||
// error = (err as BuildFailure).message
|
||||
// }
|
||||
// watchCallback(metaJson, error)
|
||||
// },
|
||||
// },
|
||||
define: {
|
||||
UserScriptName: `'${metaJson.name}'`,
|
||||
UserScriptNamespace: `'${metaJson.namespace}'`,
|
||||
UserScriptVersion: `'${metaJson.version}'`,
|
||||
UserScriptDownloadURL: `'${metaJson.downloadURL}'`,
|
||||
UserScriptSupportURL: `'${metaJson.supportURL}'`,
|
||||
UserScriptHomepageURL: `'${metaJson.homepageURL}'`,
|
||||
},
|
||||
});
|
||||
}
|
||||
catch (err) {
|
||||
console.error(name, err);
|
||||
error = err.message;
|
||||
}
|
||||
//add UserScript header
|
||||
if ((0, fs_1.existsSync)(outPath)) {
|
||||
if (!error) {
|
||||
let content = (0, fs_1.readFileSync)(outPath).toString();
|
||||
(0, fs_1.writeFileSync)(outPath, metaString + content);
|
||||
let path = (0, paths_1.ScriptPath)(name);
|
||||
let pathDist = (0, paths_1.DistPath)(name);
|
||||
let result = await runEsbuild({
|
||||
entryPoints: [(0, paths_1.ScriptPath)(name).main],
|
||||
outfile: pathDist,
|
||||
target: 'esnext',
|
||||
platform: 'node',
|
||||
format: 'esm',
|
||||
bundle: true,
|
||||
minify: false,
|
||||
define: {
|
||||
UserScriptName: `'${metaJson.name}'`,
|
||||
UserScriptNamespace: `'${metaJson.namespace}'`,
|
||||
UserScriptVersion: `'${metaJson.version}'`,
|
||||
UserScriptDownloadURL: `'${metaJson.downloadURL}'`,
|
||||
UserScriptSupportURL: `'${metaJson.supportURL}'`,
|
||||
UserScriptHomepageURL: `'${metaJson.homepageURL}'`,
|
||||
},
|
||||
}, result => {
|
||||
let error = null;
|
||||
if (result.error) {
|
||||
console.error(name, result.errorRaw || result.error);
|
||||
error = result.error;
|
||||
}
|
||||
else if (result.content) {
|
||||
(0, fs_1.writeFileSync)(pathDist, metaString + result.content);
|
||||
}
|
||||
else {
|
||||
(0, fs_1.unlinkSync)(outPath);
|
||||
console.error(name, 'No output');
|
||||
}
|
||||
doErrorFile(path.error, pathDist, error);
|
||||
if (watchCallback !== false) {
|
||||
watchCallback(metaJson, error);
|
||||
}
|
||||
}, watchCallback !== false);
|
||||
let error = null;
|
||||
if (result.error) {
|
||||
console.error(name, result.errorRaw || result.error);
|
||||
error = result.error;
|
||||
}
|
||||
else if (result.content) {
|
||||
(0, fs_1.writeFileSync)(pathDist, metaString + result.content);
|
||||
}
|
||||
else {
|
||||
console.error(name, 'No output');
|
||||
}
|
||||
doErrorFile(path.error, pathDist, error);
|
||||
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);
|
||||
}
|
||||
}
|
||||
async function runEsbuild(opts, watchCallback, toWatch = false) {
|
||||
opts.write = false;
|
||||
if (toWatch) {
|
||||
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',
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
try {
|
||||
let res = await (0, esbuild_1.build)(opts);
|
||||
let content = '';
|
||||
if (res.outputFiles && res.outputFiles.length > 0) {
|
||||
content = res.outputFiles[0].text;
|
||||
}
|
||||
if (content === '') {
|
||||
return {
|
||||
content: null,
|
||||
error: 'No output',
|
||||
};
|
||||
}
|
||||
return {
|
||||
content,
|
||||
error: null,
|
||||
};
|
||||
}
|
||||
catch (err) {
|
||||
return {
|
||||
content: null,
|
||||
error: err.message,
|
||||
};
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=build.js.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":";;;;;AAAA,qCAA6C;AAC7C,2BAAwE;AACxE,mCAA8C;AAE9C,0DAAiC;AAElB,KAAK,oBAChB,IAAY,EACZ,gBAEc,KAAK;IAEnB,gBAAgB;IAChB,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,OAAO,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAE5B,IAAI,KAAK,GAAkB,IAAI,CAAA;IAE/B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAE3D,IAAI;QACA,MAAM,IAAA,eAAK,EAAC;YACR,WAAW,EAAE,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YACpC,OAAO,EAAE,OAAO;YAEhB,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,KAAK;YAEb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YAEb,oHAAoH;YAEpH,wBAAwB;YACxB,cAAc;YACd,UAAU;YACV,sCAAsC;YACtC,yCAAyC;YACzC,iCAAiC;YACjC,2BAA2B;YAC3B,6CAA6C;YAC7C,0DAA0D;YAC1D,kBAAkB;YAClB,+CAA+C;YAC/C,eAAe;YACf,WAAW;YAEX,MAAM,EAAE;gBACJ,cAAc,EAAE,IAAI,QAAQ,CAAC,IAAI,GAAG;gBACpC,mBAAmB,EAAE,IAAI,QAAQ,CAAC,SAAS,GAAG;gBAC9C,iBAAiB,EAAE,IAAI,QAAQ,CAAC,OAAO,GAAG;gBAE1C,qBAAqB,EAAE,IAAI,QAAQ,CAAC,WAAW,GAAG;gBAClD,oBAAoB,EAAE,IAAI,QAAQ,CAAC,UAAU,GAAG;gBAChD,qBAAqB,EAAE,IAAI,QAAQ,CAAC,WAAW,GAAG;aACrD;SACJ,CAAC,CAAA;KACL;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,KAAK,GAAI,GAAoB,CAAC,OAAO,CAAA;KACxC;IAED,uBAAuB;IACvB,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE;QACrB,IAAI,CAAC,KAAK,EAAE;YACR,IAAI,OAAO,GAAG,IAAA,iBAAY,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;YAC9C,IAAA,kBAAa,EAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,CAAA;SAC/C;aAAM;YACH,IAAA,eAAU,EAAC,OAAO,CAAC,CAAA;SACtB;KACJ;IAED,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC5B,CAAC;AApED,4BAoEC"}
|
||||
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":";;;;;AAAA,qCAA2D;AAC3D,2BAA0D;AAC1D,mCAA8C;AAE9C,0DAAiC;AAElB,KAAK,oBAChB,IAAY,EACZ,gBAEc,KAAK;IAEnB,gBAAgB;IAChB,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,IAAI,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,QAAQ,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAE7B,IAAI,MAAM,GAAG,MAAM,UAAU,CACzB;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,KAAK;QAEb,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,GAAkB,IAAI,CAAA;QAE/B,IAAI,MAAM,CAAC,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;YACpD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;SACvB;aAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YACvB,IAAA,kBAAa,EAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;SACvD;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;SACnC;QAED,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QAExC,IAAI,aAAa,KAAK,KAAK,EAAE;YACzB,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;SACjC;IACL,CAAC,EACD,aAAa,KAAK,KAAK,CAC1B,CAAA;IAED,IAAI,KAAK,GAAkB,IAAI,CAAA;IAE/B,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,IAAA,kBAAa,EAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;KACvD;SAAM;QACH,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;KACnC;IAED,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAExC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC5B,CAAC;AApED,4BAoEC;AAED,SAAS,WAAW,CAChB,SAAiB,EACjB,WAAmB,EACnB,KAAoB;IAEpB,IAAI,KAAK,KAAK,IAAI,EAAE;QAChB,IAAA,kBAAa,EAAC,SAAS,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,EAAE,CAAC,CAAA;QAEnE,IAAI,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE;YACzB,IAAA,eAAU,EAAC,WAAW,CAAC,CAAA;SAC1B;KACJ;SAAM,IAAI,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE;QAC9B,IAAA,eAAU,EAAC,SAAS,CAAC,CAAA;KACxB;AACL,CAAC;AAQD,KAAK,UAAU,UAAU,CACrB,IAAkB,EAClB,aAAiD,EACjD,UAAmB,KAAK;IAExB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAClB,IAAI,OAAO,EAAE;QACT,IAAI,CAAC,KAAK,GAAG;YACT,SAAS,CAAC,GAAG,EAAE,GAAG;gBACd,IAAI,GAAG,EAAE;oBACL,aAAa,CAAC;wBACV,OAAO,EAAE,IAAI;wBACb,KAAK,EAAG,GAAoB,CAAC,OAAO;wBACpC,QAAQ,EAAE,GAAG;qBAChB,CAAC,CAAA;iBACL;qBAAM,IAAI,GAAG,EAAE;oBACZ,IAAI,OAAO,GAAG,EAAE,CAAA;oBAChB,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC/C,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;qBACpC;oBACD,IAAI,OAAO,KAAK,EAAE,EAAE;wBAChB,aAAa,CAAC;4BACV,OAAO,EAAE,IAAI;4BACb,KAAK,EAAE,WAAW;yBACrB,CAAC,CAAA;qBACL;oBACD,aAAa,CAAC;wBACV,OAAO;wBACP,KAAK,EAAE,IAAI;qBACd,CAAC,CAAA;iBACL;qBAAM;oBACH,aAAa,CAAC;wBACV,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,WAAW;qBACrB,CAAC,CAAA;iBACL;YACL,CAAC;SACJ,CAAA;KACJ;IACD,IAAI;QACA,IAAI,GAAG,GAAG,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;SACpC;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;IAAC,OAAO,GAAG,EAAE;QACV,OAAO;YACH,OAAO,EAAE,IAAI;YACb,KAAK,EAAG,GAAoB,CAAC,OAAO;SACvC,CAAA;KACJ;AACL,CAAC"}
|
||||
18
lib/main.js
18
lib/main.js
@@ -30,32 +30,16 @@ if (!(0, fs_1.existsSync)('package.json') || !(0, fs_1.lstatSync)('package.json'
|
||||
(0, fs_1.lstatSync)(path.main).isFile()) {
|
||||
let id = scriptMeta.length;
|
||||
function postWatchUpdate(meta, error) {
|
||||
console.log('watch callback');
|
||||
scriptMeta[id] = { meta, error };
|
||||
doErrorFile(path.error, (0, paths_1.DistPath)(name), error);
|
||||
console.log('WATCH', name, meta.version);
|
||||
(0, readmefile_1.updateReadmeFile)(scriptMeta);
|
||||
}
|
||||
let [meta, error] = await (0, build_1.default)(name, CLIArgs.watch ? postWatchUpdate : false);
|
||||
scriptMeta[id] = { meta, error };
|
||||
console.log(name, meta.version);
|
||||
doErrorFile(path.error, (0, paths_1.DistPath)(name), error);
|
||||
}
|
||||
}
|
||||
(0, readmefile_1.updateReadmeFile)(scriptMeta);
|
||||
console.log('\nFinished Compiling\n');
|
||||
if (CLIArgs.watch)
|
||||
console.log('Listening for Changes\n');
|
||||
console.log(`\nFinished Compiling\n${CLIArgs.watch ? 'Listening for Changes\n' : ''}`);
|
||||
})();
|
||||
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);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=main.js.map
|
||||
@@ -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":";;;;;AAAA,2BAAmE;AACnE,0EAA+C;AAC/C,mCAA0D;AAC1D,6CAA2D;AAC3D,oDAA8B;AAG9B,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;CAC/C,CAEA,CAAA;AAED,oEAAoE;AACpE,IAAI,CAAC,IAAA,eAAU,EAAC,cAAc,CAAC,IAAI,CAAC,IAAA,cAAS,EAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;IACpE,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;IACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;CAClB;AAED,yBAAyB;AACzB,IAAA,gBAAW,EAAC,gBAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,eAAU,EAAC,GAAG,gBAAQ,IAAI,IAAI,EAAE,CAAC,CAAC,CAGvE;AAAA,CAAC,KAAK,IAAI,EAAE;IACT,IAAI,OAAO,GAAG,IAAA,gBAAW,EAAC,kBAAU,CAAC,CAAA;IACrC,IAAI,UAAU,GAAiB,EAAE,CAAA;IAEjC,KAAK,IAAI,IAAI,IAAI,OAAO,EAAE;QACtB,IAAI,IAAI,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAA;QAE3B,IACI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YACnB,IAAA,eAAU,EAAC,IAAI,CAAC,GAAG,CAAC;YACpB,IAAA,cAAS,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YACjC,IAAA,eAAU,EAAC,IAAI,CAAC,IAAI,CAAC;YACrB,IAAA,cAAS,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAC/B;YACE,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,CAAA;YAE1B,SAAS,eAAe,CACpB,IAAwB,EACxB,KAAoB;gBAEpB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;gBAChC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBACxC,IAAA,6BAAgB,EAAC,UAAU,CAAC,CAAA;YAChC,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,eAAQ,EAC9B,IAAI,EACJ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAC1C,CAAA;YACD,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;YAEhC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;SAClC;KACJ;IAED,IAAA,6BAAgB,EAAC,UAAU,CAAC,CAAA;IAE5B,OAAO,CAAC,GAAG,CACP,yBACI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAChD,EAAE,CACL,CAAA;AACL,CAAC,CAAC,EAAE,CAAA"}
|
||||
163
src/build.ts
163
src/build.ts
@@ -1,5 +1,5 @@
|
||||
import { build, BuildFailure } from 'esbuild'
|
||||
import { existsSync, readFileSync, writeFileSync, unlinkSync } from 'fs'
|
||||
import { build, BuildFailure, BuildOptions } from 'esbuild'
|
||||
import { existsSync, writeFileSync, unlinkSync } from 'fs'
|
||||
import { DistPath, ScriptPath } from './paths'
|
||||
import { UserScriptMetaFull } from './types'
|
||||
import readMeta from './readmeta'
|
||||
@@ -12,16 +12,13 @@ export default async function (
|
||||
): Promise<[UserScriptMetaFull, string | null]> {
|
||||
//read meta file
|
||||
let [metaJson, metaString] = readMeta(name)
|
||||
let outPath = DistPath(name)
|
||||
let path = ScriptPath(name)
|
||||
let pathDist = DistPath(name)
|
||||
|
||||
let error: string | null = null
|
||||
|
||||
console.log('build watch?', !watchCallback ? false : 'obj')
|
||||
|
||||
try {
|
||||
await build({
|
||||
let result = await runEsbuild(
|
||||
{
|
||||
entryPoints: [ScriptPath(name).main],
|
||||
outfile: outPath,
|
||||
outfile: pathDist,
|
||||
|
||||
target: 'esnext',
|
||||
platform: 'node',
|
||||
@@ -30,22 +27,6 @@ export default async function (
|
||||
bundle: true,
|
||||
minify: false,
|
||||
|
||||
// write: false, //TODO this will cause result.outputFiles to have the file contents so i can write the file instead
|
||||
|
||||
// watch: !watchCallback
|
||||
// ? false
|
||||
// : {
|
||||
// onRebuild(err, _result) {
|
||||
// console.log('onrebuild')
|
||||
// let error = null
|
||||
// if (err) {
|
||||
// console.error(name, err)
|
||||
// error = (err as BuildFailure).message
|
||||
// }
|
||||
// watchCallback(metaJson, error)
|
||||
// },
|
||||
// },
|
||||
|
||||
define: {
|
||||
UserScriptName: `'${metaJson.name}'`,
|
||||
UserScriptNamespace: `'${metaJson.namespace}'`,
|
||||
@@ -55,21 +36,125 @@ export default async function (
|
||||
UserScriptSupportURL: `'${metaJson.supportURL}'`,
|
||||
UserScriptHomepageURL: `'${metaJson.homepageURL}'`,
|
||||
},
|
||||
})
|
||||
} catch (err) {
|
||||
console.error(name, err)
|
||||
error = (err as BuildFailure).message
|
||||
},
|
||||
result => {
|
||||
let error: string | null = null
|
||||
|
||||
if (result.error) {
|
||||
console.error(name, result.errorRaw || result.error)
|
||||
error = result.error
|
||||
} else if (result.content) {
|
||||
writeFileSync(pathDist, metaString + result.content)
|
||||
} else {
|
||||
console.error(name, 'No output')
|
||||
}
|
||||
|
||||
doErrorFile(path.error, pathDist, error)
|
||||
|
||||
if (watchCallback !== false) {
|
||||
watchCallback(metaJson, error)
|
||||
}
|
||||
},
|
||||
watchCallback !== false
|
||||
)
|
||||
|
||||
let error: string | null = null
|
||||
|
||||
if (result.error) {
|
||||
console.error(name, result.errorRaw || result.error)
|
||||
error = result.error
|
||||
} else if (result.content) {
|
||||
writeFileSync(pathDist, metaString + result.content)
|
||||
} else {
|
||||
console.error(name, 'No output')
|
||||
}
|
||||
|
||||
//add UserScript header
|
||||
if (existsSync(outPath)) {
|
||||
if (!error) {
|
||||
let content = readFileSync(outPath).toString()
|
||||
writeFileSync(outPath, metaString + content)
|
||||
} else {
|
||||
unlinkSync(outPath)
|
||||
}
|
||||
}
|
||||
doErrorFile(path.error, pathDist, error)
|
||||
|
||||
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
|
||||
errorRaw?: BuildFailure
|
||||
}
|
||||
|
||||
async function runEsbuild(
|
||||
opts: BuildOptions,
|
||||
watchCallback: (result: RunEsbuildResult) => void,
|
||||
toWatch: boolean = false
|
||||
): Promise<RunEsbuildResult> {
|
||||
opts.write = false
|
||||
if (toWatch) {
|
||||
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',
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
try {
|
||||
let res = await build(opts)
|
||||
let content = ''
|
||||
if (res.outputFiles && res.outputFiles.length > 0) {
|
||||
content = res.outputFiles[0].text
|
||||
}
|
||||
if (content === '') {
|
||||
return {
|
||||
content: null,
|
||||
error: 'No output',
|
||||
}
|
||||
}
|
||||
return {
|
||||
content,
|
||||
error: null,
|
||||
}
|
||||
} catch (err) {
|
||||
return {
|
||||
content: null,
|
||||
error: (err as BuildFailure).message,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
39
src/main.ts
39
src/main.ts
@@ -1,12 +1,6 @@
|
||||
import {
|
||||
existsSync,
|
||||
lstatSync,
|
||||
readdirSync,
|
||||
unlinkSync,
|
||||
writeFileSync,
|
||||
} from 'fs'
|
||||
import { existsSync, lstatSync, readdirSync, unlinkSync } from 'fs'
|
||||
import commandLineArgs from 'command-line-args'
|
||||
import { DistBase, DistPath, ScriptBase, ScriptPath } from './paths'
|
||||
import { DistBase, ScriptBase, ScriptPath } from './paths'
|
||||
import { readmeData, updateReadmeFile } from './readmefile'
|
||||
import runBuild from './build'
|
||||
import { UserScriptMetaFull } from './types'
|
||||
@@ -47,12 +41,8 @@ readdirSync(DistBase).forEach(file => unlinkSync(`${DistBase}/${file}`))
|
||||
meta: UserScriptMetaFull,
|
||||
error: string | null
|
||||
) {
|
||||
console.log('watch callback')
|
||||
scriptMeta[id] = { meta, error }
|
||||
doErrorFile(path.error, DistPath(name), error)
|
||||
|
||||
console.log('WATCH', name, meta.version)
|
||||
|
||||
updateReadmeFile(scriptMeta)
|
||||
}
|
||||
|
||||
@@ -63,29 +53,14 @@ readdirSync(DistBase).forEach(file => unlinkSync(`${DistBase}/${file}`))
|
||||
scriptMeta[id] = { meta, error }
|
||||
|
||||
console.log(name, meta.version)
|
||||
|
||||
doErrorFile(path.error, DistPath(name), error)
|
||||
}
|
||||
}
|
||||
|
||||
updateReadmeFile(scriptMeta)
|
||||
|
||||
console.log('\nFinished Compiling\n')
|
||||
if (CLIArgs.watch) console.log('Listening for Changes\n')
|
||||
console.log(
|
||||
`\nFinished Compiling\n${
|
||||
CLIArgs.watch ? 'Listening for Changes\n' : ''
|
||||
}`
|
||||
)
|
||||
})()
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user