UNPKG

@storm-software/esbuild

Version:

A package containing `esbuild` utilities for building Storm Software libraries and applications

105 lines (95 loc) 3.46 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _chunk7DZ3NOLBcjs = require('./chunk-7DZ3NOLB.cjs'); var _chunkJG7MZJV2cjs = require('./chunk-JG7MZJV2.cjs'); // src/watch.ts _chunkJG7MZJV2cjs.init_cjs_shims.call(void 0, ); var _chokidar = require('chokidar'); var _estoolkit = require('es-toolkit'); // src/utilities/helpers.ts _chunkJG7MZJV2cjs.init_cjs_shims.call(void 0, ); function handleSync(fn) { try { return fn(); } catch (error_) { return error_; } } async function handleAsync(fn) { try { return await fn(); } catch (error_) { return error_; } } var handle = handleSync; handle.async = handleAsync; var skip = Symbol("skip"); function transduceSync(list, transformer) { const transduced = []; for (const [i, element_] of list.entries()) { const transformed = transformer(element_, i); if (transformed !== skip) { transduced[transduced.length] = transformed; } } return transduced; } async function transduceAsync(list, transformer) { const transduced = []; await Promise.all( list.entries().map(async ([i, element_]) => { const transformed = await transformer(element_, i); if (transformed !== skip) { transduced[transduced.length] = transformed; } }) ); return transduced; } var transduce = transduceSync; transduce.async = transduceAsync; function pipeSync(fn, ...fns) { return (...args) => { let result = fn(...args); for (let i = 0; result !== skip && i < fns.length; ++i) { result = _optionalChain([fns, 'access', _ => _[i], 'optionalCall', _2 => _2(result)]); } return result; }; } function pipeAsync(fn, ...fns) { return async (...args) => { let result = await fn(...args); for (let i = 0; result !== skip && i < fns.length; ++i) { result = await _optionalChain([fns, 'access', _3 => _3[i], 'optionalCall', _4 => _4(result)]); } return result; }; } var pipe = pipeSync; pipe.async = pipeAsync; // src/watch.ts var watch = (context, options) => { if (!options.watch) { return context; } const config = { ignoreInitial: true, useFsEvents: true, ignored: ["./src/__tests__/**/*", "./package.json"] }; const changeWatcher = _chokidar.watch.call(void 0, ["./src/**/*"], config); const fastRebuild = _estoolkit.debounce.call(void 0, async () => { const timeBefore = Date.now(); const rebuildResult = await handle.async(() => { return context.rebuild(); }); if (rebuildResult instanceof Error) { _chunk7DZ3NOLBcjs.writeError.call(void 0, rebuildResult.message); } _chunk7DZ3NOLBcjs.writeTrace.call(void 0, `${Date.now() - timeBefore}ms [${_nullishCoalesce(options.name, () => ( ""))}]`); }, 10); changeWatcher.on("change", fastRebuild); return void 0; }; exports.watch = watch;