summaryrefslogtreecommitdiff
path: root/scripts/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cmd')
-rw-r--r--scripts/cmd/build.js106
-rw-r--r--scripts/cmd/copy.js124
2 files changed, 115 insertions, 115 deletions
diff --git a/scripts/cmd/build.js b/scripts/cmd/build.js
index 469f5d0c3..b5eb91195 100644
--- a/scripts/cmd/build.js
+++ b/scripts/cmd/build.js
@@ -7,70 +7,70 @@ import glob from 'tiny-glob';
/** @type {import('esbuild').BuildOptions} */
const defaultConfig = {
- minify: false,
- format: 'esm',
- platform: 'node',
- target: 'node14',
- sourcemap: 'inline',
- sourcesContent: false,
+ minify: false,
+ format: 'esm',
+ platform: 'node',
+ target: 'node14',
+ sourcemap: 'inline',
+ sourcesContent: false,
};
const dt = new Intl.DateTimeFormat('en-us', {
- hour: '2-digit',
- minute: '2-digit',
+ hour: '2-digit',
+ minute: '2-digit',
});
export default async function build(...args) {
- const config = Object.assign({}, defaultConfig);
- const isDev = args.slice(-1)[0] === 'IS_DEV';
- 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
- let entryPoints = [].concat(...(await Promise.all(patterns.map((pattern) => glob(pattern, { filesOnly: true, absolute: true })))));
+ const config = Object.assign({}, defaultConfig);
+ const isDev = args.slice(-1)[0] === 'IS_DEV';
+ 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
+ let entryPoints = [].concat(...(await Promise.all(patterns.map((pattern) => glob(pattern, { filesOnly: true, absolute: true })))));
- const { type = 'module', dependencies = {} } = await fs.readFile('./package.json').then((res) => JSON.parse(res.toString()));
- const format = type === 'module' ? 'esm' : 'cjs';
- const outdir = 'dist';
- await clean(outdir);
+ const { type = 'module', dependencies = {} } = await fs.readFile('./package.json').then((res) => JSON.parse(res.toString()));
+ const format = type === 'module' ? 'esm' : 'cjs';
+ const outdir = 'dist';
+ await clean(outdir);
- if (!isDev) {
- await esbuild.build({
- ...config,
- bundle: entryPoints.length === 1, // Note: only use `bundle` with a single entrypoint!
- entryPoints,
- outdir,
- format,
- plugins: [svelte({ isDev })],
- });
- return;
- }
+ if (!isDev) {
+ await esbuild.build({
+ ...config,
+ bundle: entryPoints.length === 1, // Note: only use `bundle` with a single entrypoint!
+ entryPoints,
+ outdir,
+ format,
+ plugins: [svelte({ isDev })],
+ });
+ return;
+ }
- const builder = await esbuild.build({
- ...config,
- watch: {
- onRebuild(error, result) {
- const date = dt.format(new Date());
- if (error || (result && result.errors.length)) {
- console.error(dim(`[${date}] `) + red(error || result.errors.join('\n')));
- } else {
- if (result.warnings.length) {
- console.log(dim(`[${date}] `) + yellow('⚠ updated with warnings:\n' + result.warnings.join('\n')));
- }
- console.log(dim(`[${date}] `) + green('✔ updated'));
- }
- },
- },
- entryPoints,
- outdir,
- format,
- plugins: [svelte({ isDev })],
- });
+ const builder = await esbuild.build({
+ ...config,
+ watch: {
+ onRebuild(error, result) {
+ const date = dt.format(new Date());
+ if (error || (result && result.errors.length)) {
+ console.error(dim(`[${date}] `) + red(error || result.errors.join('\n')));
+ } else {
+ if (result.warnings.length) {
+ console.log(dim(`[${date}] `) + yellow('⚠ updated with warnings:\n' + result.warnings.join('\n')));
+ }
+ console.log(dim(`[${date}] `) + green('✔ updated'));
+ }
+ },
+ },
+ entryPoints,
+ outdir,
+ format,
+ plugins: [svelte({ isDev })],
+ });
- process.on('beforeExit', () => {
- builder.stop && builder.stop();
- });
+ process.on('beforeExit', () => {
+ builder.stop && builder.stop();
+ });
}
async function clean(outdir) {
- return del([`${outdir}/**`, `!${outdir}/**/*.d.ts`]);
+ return del([`${outdir}/**`, `!${outdir}/**/*.d.ts`]);
}
diff --git a/scripts/cmd/copy.js b/scripts/cmd/copy.js
index f31fb3739..925990fe4 100644
--- a/scripts/cmd/copy.js
+++ b/scripts/cmd/copy.js
@@ -8,76 +8,76 @@ const { resolve, dirname, sep, join } = posix;
/** @type {import('arg').Spec} */
const spec = {
- '--tgz': Boolean,
+ '--tgz': Boolean,
};
export default async function copy() {
- let { _: patterns, ['--tgz']: isCompress } = arg(spec);
- patterns = patterns.slice(1);
+ let { _: patterns, ['--tgz']: isCompress } = arg(spec);
+ patterns = patterns.slice(1);
- if (isCompress) {
- const files = await glob(patterns, { gitignore: true });
- const rootDir = resolveRootDir(files);
- const destDir = rootDir.replace(/^[^/]+/, 'dist');
+ if (isCompress) {
+ const files = await glob(patterns, { gitignore: true });
+ const rootDir = resolveRootDir(files);
+ const destDir = rootDir.replace(/^[^/]+/, 'dist');
- const templates = files.reduce((acc, curr) => {
- const name = curr.replace(rootDir, '').slice(1).split(sep)[0];
- if (acc[name]) {
- acc[name].push(resolve(curr));
- } else {
- acc[name] = [resolve(curr)];
- }
- return acc;
- }, {});
+ const templates = files.reduce((acc, curr) => {
+ const name = curr.replace(rootDir, '').slice(1).split(sep)[0];
+ if (acc[name]) {
+ acc[name].push(resolve(curr));
+ } else {
+ acc[name] = [resolve(curr)];
+ }
+ return acc;
+ }, {});
- let meta = {};
- return Promise.all(
- Object.entries(templates).map(([template, files]) => {
- const cwd = resolve(join(rootDir, template));
- const dest = join(destDir, `${template}.tgz`);
- const metafile = files.find((f) => f.endsWith('meta.json'));
- if (metafile) {
- files = files.filter((f) => f !== metafile);
- meta[template] = JSON.parse(readFileSync(metafile).toString());
- }
- return fs.mkdir(dirname(dest), { recursive: true }).then(() =>
- tar.create(
- {
- gzip: true,
- portable: true,
- file: dest,
- cwd,
- },
- files.map((f) => f.replace(cwd, '').slice(1))
- )
- );
- })
- ).then(() => {
- if (Object.keys(meta).length > 0) {
- return fs.writeFile(resolve(destDir, 'meta.json'), JSON.stringify(meta, null, 2));
- }
- });
- }
+ let meta = {};
+ return Promise.all(
+ Object.entries(templates).map(([template, files]) => {
+ const cwd = resolve(join(rootDir, template));
+ const dest = join(destDir, `${template}.tgz`);
+ const metafile = files.find((f) => f.endsWith('meta.json'));
+ if (metafile) {
+ files = files.filter((f) => f !== metafile);
+ meta[template] = JSON.parse(readFileSync(metafile).toString());
+ }
+ return fs.mkdir(dirname(dest), { recursive: true }).then(() =>
+ tar.create(
+ {
+ gzip: true,
+ portable: true,
+ file: dest,
+ cwd,
+ },
+ files.map((f) => f.replace(cwd, '').slice(1))
+ )
+ );
+ })
+ ).then(() => {
+ if (Object.keys(meta).length > 0) {
+ return fs.writeFile(resolve(destDir, 'meta.json'), JSON.stringify(meta, null, 2));
+ }
+ });
+ }
- const files = await glob(patterns);
- await Promise.all(
- files.map((file) => {
- const dest = resolve(file.replace(/^[^/]+/, 'dist'));
- return fs.mkdir(dirname(dest), { recursive: true }).then(() => fs.copyFile(resolve(file), dest));
- })
- );
+ const files = await glob(patterns);
+ await Promise.all(
+ files.map((file) => {
+ const dest = resolve(file.replace(/^[^/]+/, 'dist'));
+ return fs.mkdir(dirname(dest), { recursive: true }).then(() => fs.copyFile(resolve(file), dest));
+ })
+ );
}
function resolveRootDir(files) {
- return files
- .reduce((acc, curr) => {
- const currParts = curr.split(sep);
- if (acc.length === 0) return currParts;
- const result = [];
- currParts.forEach((part, i) => {
- if (acc[i] === part) result.push(part);
- });
- return result;
- }, [])
- .join(sep);
+ return files
+ .reduce((acc, curr) => {
+ const currParts = curr.split(sep);
+ if (acc.length === 0) return currParts;
+ const result = [];
+ currParts.forEach((part, i) => {
+ if (acc[i] === part) result.push(part);
+ });
+ return result;
+ }, [])
+ .join(sep);
}