summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/cmd/build.js18
-rw-r--r--scripts/cmd/prebuild.js8
2 files changed, 25 insertions, 1 deletions
diff --git a/scripts/cmd/build.js b/scripts/cmd/build.js
index b2d402890..a95a5b8e3 100644
--- a/scripts/cmd/build.js
+++ b/scripts/cmd/build.js
@@ -4,6 +4,7 @@ import del from 'del';
import { promises as fs } from 'fs';
import { dim, green, red, yellow } from 'kleur/colors';
import glob from 'tiny-glob';
+import prebuild from './prebuild.js';
/** @type {import('esbuild').BuildOptions} */
const defaultConfig = {
@@ -20,9 +21,23 @@ const dt = new Intl.DateTimeFormat('en-us', {
minute: '2-digit',
});
+function getPrebuilds(isDev, args) {
+ let prebuilds = [];
+ while(args.includes('--prebuild')) {
+ let idx = args.indexOf('--prebuild');
+ prebuilds.push(args[idx + 1]);
+ args.splice(idx, 2);
+ }
+ if(prebuilds.length && isDev) {
+ prebuilds.unshift('--no-minify');
+ }
+ return prebuilds;
+}
+
export default async function build(...args) {
const config = Object.assign({}, defaultConfig);
const isDev = args.slice(-1)[0] === 'IS_DEV';
+ const prebuilds = getPrebuilds(isDev, args);
const patterns = args
.filter((f) => !!f) // remove empty args
.map((f) => f.replace(/^'/, '').replace(/'$/, '')); // Needed for Windows: glob strings contain surrounding string chars??? remove these
@@ -59,6 +74,9 @@ export default async function build(...args) {
...config,
watch: {
onRebuild(error, result) {
+ if(prebuilds.length) {
+ prebuild(...prebuilds);
+ }
const date = dt.format(new Date());
if (error || (result && result.errors.length)) {
console.error(dim(`[${date}] `) + red(error || result.errors.join('\n')));
diff --git a/scripts/cmd/prebuild.js b/scripts/cmd/prebuild.js
index 4a67babe2..0d14e63f1 100644
--- a/scripts/cmd/prebuild.js
+++ b/scripts/cmd/prebuild.js
@@ -11,6 +11,12 @@ export default async function prebuild(...args) {
args.splice(buildToString, 1);
buildToString = true;
}
+ let minify = true;
+ let minifyIdx = args.indexOf('--no-minify');
+ if(minifyIdx !== -1) {
+ minify = false;
+ args.splice(minifyIdx, 1);
+ }
let patterns = args;
let entryPoints = [].concat(
@@ -33,7 +39,7 @@ export default async function prebuild(...args) {
const tscode = await fs.promises.readFile(filepath, 'utf-8');
const esbuildresult = await esbuild.transform(tscode, {
loader: 'ts',
- minify: true,
+ minify,
});
const rootURL = new URL('../../', import.meta.url);
const rel = path.relative(fileURLToPath(rootURL), filepath);