47 lines
2.8 KiB
JavaScript
47 lines
2.8 KiB
JavaScript
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
// ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
|
|
// ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
|
|
// ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
|
|
// ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
|
|
// ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
|
// ┃ Copyright (c) 2017, the Perspective Authors. ┃
|
|
// ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
|
|
// ┃ This file is part of the Perspective library, distributed under the terms ┃
|
|
// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
|
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
|
|
const { WasmPlugin } = require("./wasm.js");
|
|
const { WorkerPlugin } = require("./worker.js");
|
|
|
|
exports.PerspectiveEsbuildPlugin = function PerspectiveEsbuildPlugin(
|
|
options = {},
|
|
) {
|
|
// const wasm_plugin = WasmPlugin(
|
|
// !!options.wasm?.inline,
|
|
// !options.wasm?.webpack_hack
|
|
// );
|
|
|
|
// `inline` (default true) keeps the legacy single-bundle behavior
|
|
// — worker source embedded as a string and wrapped in a Blob URL
|
|
// at runtime. Pass `worker: { inline: false }` to emit the worker
|
|
// as a sibling file (preserves source maps in DevTools).
|
|
const worker_plugin = WorkerPlugin({
|
|
inline: options.worker?.inline !== false,
|
|
});
|
|
|
|
function setup(build) {
|
|
// if (options.wasm !== false) {
|
|
// wasm_plugin.setup(build);
|
|
// }
|
|
|
|
if (options.worker !== false) {
|
|
worker_plugin.setup(build);
|
|
}
|
|
}
|
|
|
|
return {
|
|
name: "@perspective-dev/esbuild-plugin",
|
|
setup,
|
|
};
|
|
};
|