svb
Version:
📦 A zero-config CLI to bundle Svelte apps
42 lines (35 loc) • 936 B
JavaScript
// Core
const { mkdirp } = require('fs-extra');
const init = require('./initialize.js');
const build = require('./build.js');
const development = require('./development.js');
// Utils
const ensureArg = require('./utils/ensure-argument.js');
const pathCwdResolve = require('./utils/path-cwd-resolve.js');
const warn = require('./utils/warn.js');
const main = async () => {
const {
input,
output,
watch,
} = init();
const config = {
input: pathCwdResolve(input),
output: pathCwdResolve(output),
isDevelopmentMode: !!watch,
};
// Ensure the user has provided the arguments
ensureArg(input, 'input');
ensureArg(output, 'output');
// Create the output directory
await mkdirp(config.output);
try {
return config.isDevelopmentMode
? development(config)
: build(config);
} catch (error) {
warn(error.message, error);
process.exit(1);
}
};
module.exports = main;