nuxt-radashi
Version:
31 lines (28 loc) • 951 B
JavaScript
import { defineNuxtModule, addImports } from '@nuxt/kit';
import * as radashi from 'radashi';
const module = defineNuxtModule({
meta: {
name: "nuxt-radashi",
configKey: "radashi",
compatibility: {
nuxt: "^4.0.0"
}
},
defaults: {
prefix: "use",
prefixSkip: "is",
alias: [],
upperAfterPrefix: true
},
setup(options, nuxt) {
const aliasMap = new Map(options.alias);
const prefixSkip = options.prefixSkip ? Array.isArray(options.prefixSkip) ? options.prefixSkip : [options.prefixSkip] : [];
for (const name of Object.keys(radashi)) {
const alias = aliasMap.has(name) ? aliasMap.get(name) : name;
const prefix = !prefixSkip.some((key) => alias.startsWith(key)) && options.prefix || "";
const as = prefix ? prefix + (options.upperAfterPrefix ? radashi.pascal(alias) : alias) : alias;
addImports({ name, as, from: "radashi" });
}
}
});
export { module as default };