| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import fs from "node:fs";
- import { basename, dirname, resolve } from "node:path";
- //#region src/rspack/utils.ts
- function encodeVirtualModuleId(id, plugin) {
- return resolve(plugin.__virtualModulePrefix, encodeURIComponent(id));
- }
- function decodeVirtualModuleId(encoded, _plugin) {
- return decodeURIComponent(basename(encoded));
- }
- function isVirtualModuleId(encoded, plugin) {
- return dirname(encoded) === plugin.__virtualModulePrefix;
- }
- var FakeVirtualModulesPlugin = class FakeVirtualModulesPlugin {
- name = "FakeVirtualModulesPlugin";
- static counter = 0;
- constructor(plugin) {
- this.plugin = plugin;
- }
- apply(compiler) {
- FakeVirtualModulesPlugin.counter++;
- const dir = this.plugin.__virtualModulePrefix;
- if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
- compiler.hooks.shutdown.tap(this.name, () => {
- if (--FakeVirtualModulesPlugin.counter === 0) fs.rmSync(dir, {
- recursive: true,
- force: true
- });
- });
- }
- async writeModule(file) {
- const path$1 = encodeVirtualModuleId(file, this.plugin);
- await fs.promises.writeFile(path$1, "");
- return path$1;
- }
- };
- //#endregion
- export { FakeVirtualModulesPlugin, decodeVirtualModuleId, encodeVirtualModuleId, isVirtualModuleId };
|