diff options
| author | Adam Mathes <adam@adammathes.com> | 2026-02-13 21:34:48 -0800 |
|---|---|---|
| committer | Adam Mathes <adam@adammathes.com> | 2026-02-13 21:34:48 -0800 |
| commit | 76cb9c2a39d477a64824a985ade40507e3bbade1 (patch) | |
| tree | 41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/rollup/dist/rollup.js | |
| parent | 819a39a21ac992b1393244a4c283bbb125208c69 (diff) | |
| download | neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2 neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip | |
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/rollup/dist/rollup.js')
| -rw-r--r-- | vanilla/node_modules/rollup/dist/rollup.js | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/vanilla/node_modules/rollup/dist/rollup.js b/vanilla/node_modules/rollup/dist/rollup.js new file mode 100644 index 0000000..b9045f1 --- /dev/null +++ b/vanilla/node_modules/rollup/dist/rollup.js @@ -0,0 +1,127 @@ +/* + @license + Rollup.js v4.57.1 + Fri, 30 Jan 2026 08:13:08 GMT - commit d37675f25150d6a94dcf4138853bdc2ecb3ce57b + + https://github.com/rollup/rollup + + Released under the MIT License. +*/ +'use strict'; + +Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); + +const rollup = require('./shared/rollup.js'); +const parseAst_js = require('./shared/parseAst.js'); +const fseventsImporter = require('./shared/fsevents-importer.js'); +require('node:process'); +require('node:path'); +require('path'); +require('./native.js'); +require('node:perf_hooks'); +require('node:fs/promises'); + +class WatchEmitter { + constructor() { + this.currentHandlers = Object.create(null); + this.persistentHandlers = Object.create(null); + } + // Will be overwritten by Rollup + async close() { } + emit(event, ...parameters) { + return Promise.all([...this.getCurrentHandlers(event), ...this.getPersistentHandlers(event)].map(handler => handler(...parameters))); + } + off(event, listener) { + const listeners = this.persistentHandlers[event]; + if (listeners) { + // A hack stolen from "mitt": ">>> 0" does not change numbers >= 0, but -1 + // (which would remove the last array element if used unchanged) is turned + // into max_int, which is outside the array and does not change anything. + listeners.splice(listeners.indexOf(listener) >>> 0, 1); + } + return this; + } + on(event, listener) { + this.getPersistentHandlers(event).push(listener); + return this; + } + onCurrentRun(event, listener) { + this.getCurrentHandlers(event).push(listener); + return this; + } + once(event, listener) { + const selfRemovingListener = (...parameters) => { + this.off(event, selfRemovingListener); + return listener(...parameters); + }; + this.on(event, selfRemovingListener); + return this; + } + removeAllListeners() { + this.removeListenersForCurrentRun(); + this.persistentHandlers = Object.create(null); + return this; + } + removeListenersForCurrentRun() { + this.currentHandlers = Object.create(null); + return this; + } + getCurrentHandlers(event) { + return this.currentHandlers[event] || (this.currentHandlers[event] = []); + } + getPersistentHandlers(event) { + return this.persistentHandlers[event] || (this.persistentHandlers[event] = []); + } +} + +function watch(configs) { + const emitter = new WatchEmitter(); + watchInternal(configs, emitter).catch(error => { + rollup.handleError(error); + }); + return emitter; +} +function ensureTrailingSlash(path) { + if (path[path.length - 1] !== '/') { + return `${path}/`; + } + return path; +} +function checkWatchConfig(config) { + for (const item of config) { + if (typeof item.watch !== 'boolean' && item.watch?.allowInputInsideOutputPath) { + break; + } + if (item.input && item.output) { + const input = typeof item.input === 'string' ? rollup.ensureArray(item.input) : item.input; + const outputs = rollup.ensureArray(item.output); + for (const index in input) { + const inputPath = input[index]; + if (typeof inputPath !== 'string') { + continue; + } + const outputWithInputAsSubPath = outputs.find(({ dir }) => dir && ensureTrailingSlash(inputPath).startsWith(ensureTrailingSlash(dir))); + if (outputWithInputAsSubPath) { + parseAst_js.error(parseAst_js.logInvalidOption('watch', parseAst_js.URL_WATCH, `the input "${inputPath}" is a subpath of the output "${outputWithInputAsSubPath.dir}"`)); + } + } + } + } +} +async function watchInternal(configs, emitter) { + const optionsList = await Promise.all(rollup.ensureArray(configs).map(config => rollup.mergeOptions(config, true))); + const watchOptionsList = optionsList.filter(config => config.watch !== false); + if (watchOptionsList.length === 0) { + return parseAst_js.error(parseAst_js.logInvalidOption('watch', parseAst_js.URL_WATCH, 'there must be at least one config where "watch" is not set to "false"')); + } + checkWatchConfig(watchOptionsList); + await fseventsImporter.loadFsEvents(); + const { Watcher } = await Promise.resolve().then(() => require('./shared/watch.js')); + new Watcher(watchOptionsList, emitter); +} + +exports.VERSION = rollup.version; +exports.defineConfig = rollup.defineConfig; +exports.rollup = rollup.rollup; +exports.watch = watch; +//# sourceMappingURL=rollup.js.map |
