@varlet/import-resolver
Version:
varlet import resolver for unplugin-vue-components and unplugin-auto-import
50 lines (49 loc) • 1.29 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
let _varlet_shared = require("@varlet/shared");
//#region src/index.ts
const varFunctions = [
"ImagePreview",
"Snackbar",
"Picker",
"ActionSheet",
"Dialog",
"Locale",
"StyleProvider",
"LoadingBar"
];
const varDirectives = [
"Ripple",
"Lazy",
"Hover"
];
function getResolved(name, options) {
const { importStyle = true, autoImport = false } = options;
const sideEffects = [];
if (importStyle) sideEffects.push(`@varlet/ui/es/${(0, _varlet_shared.kebabCase)(name)}/style/index.mjs`);
return {
from: "@varlet/ui",
name: autoImport ? name : `_${name}Component`,
sideEffects
};
}
function VarletImportResolver(options = {}) {
return [{
type: "component",
resolve: (name) => {
const { autoImport = false } = options;
if (autoImport && varFunctions.includes(name)) return getResolved(name, options);
if (name.startsWith("Var")) return getResolved(name.slice(3), options);
}
}, {
type: "directive",
resolve: (name) => {
const { directives = true } = options;
if (!directives) return;
if (!varDirectives.includes(name)) return;
return getResolved(name, options);
}
}];
}
//#endregion
exports.VarletImportResolver = VarletImportResolver;
exports.getResolved = getResolved;