@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
56 lines (54 loc) • 1.91 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
let node_fs_promises = require("node:fs/promises");
let node_path = require("node:path");
let _intlayer_config_utils = require("@intlayer/config/utils");
let _intlayer_config_file = require("@intlayer/config/file");
let node_module = require("node:module");
//#region src/loadDictionaries/getIntlayerBundle.ts
/**
* Rewrites bare specifiers to absolute paths on the user's disk and externalizes them
* to preserve directory context (__dirname/import.meta.url).
*/
const localResolvePlugin = (aliases, rootRequire) => {
return {
name: "local-resolve",
setup(build) {
build.onResolve({ filter: /.*/ }, (args) => {
if (aliases[args.path]) return {
path: aliases[args.path],
external: true
};
if (args.path === "defu" || args.path.startsWith("@intlayer/")) try {
return {
path: rootRequire.resolve(args.path),
external: true
};
} catch {
return null;
}
return null;
});
}
};
};
const getIntlayerBundle = async (configuration) => {
const rootRequire = (0, _intlayer_config_utils.getProjectRequire)(configuration.system.baseDir);
const aliases = { "@intlayer/config/built": (0, node_path.join)(configuration.system.configDir, `configuration.cjs`) };
const filePath = rootRequire.resolve("intlayer");
return await (0, _intlayer_config_file.bundleFile)(await (0, node_fs_promises.readFile)(filePath, "utf-8"), filePath, {
bundle: true,
platform: "node",
external: [
...node_module.builtinModules,
...node_module.builtinModules.map((mod) => `node:${mod}`),
"vscode",
"esbuild"
],
minify: true,
plugins: [localResolvePlugin(aliases, rootRequire)]
}) ?? "";
};
//#endregion
exports.getIntlayerBundle = getIntlayerBundle;
//# sourceMappingURL=getIntlayerBundle.cjs.map