feat: init
This commit is contained in:
41
node_modules/impound/dist/index.js
generated
vendored
Normal file
41
node_modules/impound/dist/index.js
generated
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
import { resolveModulePath } from 'exsolve';
|
||||
import { join, isAbsolute, relative } from 'pathe';
|
||||
import { createUnplugin } from 'unplugin';
|
||||
import { createFilter } from 'unplugin-utils';
|
||||
|
||||
const RELATIVE_IMPORT_RE = /^\.\.?\//;
|
||||
const ImpoundPlugin = createUnplugin((globalOptions) => {
|
||||
const matchers = "matchers" in globalOptions ? globalOptions.matchers : [globalOptions];
|
||||
return matchers.map((options) => {
|
||||
const filter = createFilter(options.include, options.exclude, { resolve: globalOptions.cwd });
|
||||
const proxy = resolveModulePath("mocked-exports/proxy", { from: import.meta.url });
|
||||
return {
|
||||
name: "impound",
|
||||
enforce: "pre",
|
||||
resolveId(id, importer) {
|
||||
if (!importer || !filter(importer)) {
|
||||
return;
|
||||
}
|
||||
if (RELATIVE_IMPORT_RE.test(id)) {
|
||||
id = join(importer, "..", id);
|
||||
}
|
||||
if (isAbsolute(id) && globalOptions.cwd) {
|
||||
id = relative(globalOptions.cwd, id);
|
||||
}
|
||||
let matched = false;
|
||||
const logError = options.error === false ? console.error : this.error.bind(this);
|
||||
for (const [pattern, warning] of options.patterns) {
|
||||
const usesImport = pattern instanceof RegExp ? pattern.test(id) : typeof pattern === "string" ? pattern === id : pattern(id);
|
||||
if (usesImport) {
|
||||
const relativeImporter = isAbsolute(importer) && globalOptions.cwd ? relative(globalOptions.cwd, importer) : importer;
|
||||
logError(`${typeof usesImport === "string" ? usesImport : warning || "Invalid import"} [importing \`${id}\` from \`${relativeImporter}\`]`);
|
||||
matched = true;
|
||||
}
|
||||
}
|
||||
return matched ? proxy : null;
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
||||
|
||||
export { ImpoundPlugin };
|
||||
Reference in New Issue
Block a user