| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /**
- * ParcelJS Bundle Configuration.
- *
- * @see https://parceljs.org/api.html
- */
- const Bundler = require('parcel-bundler');
- // Bundler options common to all bundle jobs.
- const options = {
- logLevel: 2,
- cache: true,
- watch: false,
- minify: true,
- outDir: './dist',
- publicUrl: '/static',
- };
- // Get CLI arguments for optional overrides.
- const args = process.argv.slice(2);
- // Allow cache disabling.
- if (args.includes('--no-cache')) {
- options.cache = false;
- }
- // Style (SCSS) bundle jobs. Generally, everything should be bundled into netbox.css from main.scss
- // unless there is a specific reason to do otherwise.
- const styles = [
- ['styles/_external.scss', 'netbox-external.css'],
- ['styles/_light.scss', 'netbox-light.css'],
- ['styles/_dark.scss', 'netbox-dark.css'],
- ['styles/_elevations.scss', 'rack_elevation.css'],
- ];
- // Script (JavaScript) bundle jobs. Generally, everything should be bundled into netbox.js from
- // index.ts unless there is a specific reason to do otherwise.
- const scripts = [
- ['src/index.ts', 'netbox.js'],
- ['src/jobs.ts', 'jobs.js'],
- ['src/device/lldp.ts', 'lldp.js'],
- ['src/device/config.ts', 'config.js'],
- ['src/device/status.ts', 'status.js'],
- ];
- /**
- * Run style bundle jobs.
- */
- async function bundleStyles() {
- for (const [input, outFile] of styles) {
- const instance = new Bundler(input, { outFile, ...options });
- await instance.bundle();
- }
- }
- /**
- * Run script bundle jobs.
- */
- async function bundleScripts() {
- for (const [input, outFile] of scripts) {
- const instance = new Bundler(input, { outFile, ...options });
- await instance.bundle();
- }
- }
- /**
- * Run all bundle jobs.
- */
- async function bundleAll() {
- if (args.includes('--styles')) {
- // Only run style jobs.
- return await bundleStyles();
- } else if (args.includes('--scripts')) {
- // Only run script jobs.
- return await bundleScripts();
- }
- await bundleStyles();
- await bundleScripts();
- }
- bundleAll();
|