@storm-software/esbuild
Version:
A package containing `esbuild` utilities for building Storm Software libraries and applications
105 lines (95 loc) • 3.46 kB
JavaScript
;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;