@varlet/import-resolver
Version:
varlet import resolver for unplugin-vue-components and unplugin-auto-import
59 lines (58 loc) • 1.32 kB
JavaScript
// src/index.ts
import { kebabCase } from "@varlet/shared";
var varFunctions = [
"ImagePreview",
"Snackbar",
"Picker",
"ActionSheet",
"Dialog",
"Locale",
"StyleProvider",
"LoadingBar"
];
var varDirectives = ["Ripple", "Lazy", "Hover"];
function getResolved(name, options) {
const { importStyle = true, autoImport = false } = options;
const sideEffects = [];
if (importStyle) {
sideEffects.push(`@varlet/ui/es/${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);
}
}
];
}
export {
VarletImportResolver,
getResolved
};