nuxt-safe-runtime-config
Version:
Validate Nuxt runtime config with Standard Schema at build time
40 lines (36 loc) • 1.23 kB
JavaScript
import { ESLintUtils } from '@typescript-eslint/utils';
const createRule = ESLintUtils.RuleCreator((name) => `https://github.com/onmax/nuxt-safe-runtime-config#${name}`);
const preferSafeRuntimeConfig = createRule({
name: "prefer-safe-runtime-config",
meta: {
type: "suggestion",
docs: { description: "Prefer useSafeRuntimeConfig() over useRuntimeConfig()" },
schema: [],
messages: { preferSafe: "Use useSafeRuntimeConfig() for type-safe runtime config" },
fixable: "code"
},
defaultOptions: [],
create: (context) => ({
CallExpression(node) {
if (node.callee.type === "Identifier" && node.callee.name === "useRuntimeConfig") {
context.report({
node,
messageId: "preferSafe",
fix: (fixer) => fixer.replaceText(node.callee, "useSafeRuntimeConfig")
});
}
}
})
});
const plugin = {
meta: { name: "nuxt-safe-runtime-config" },
rules: { "prefer-safe-runtime-config": preferSafeRuntimeConfig }
};
const configs = {
recommended: {
plugins: { "safe-runtime-config": plugin },
rules: { "safe-runtime-config/prefer-safe-runtime-config": "warn" }
}
};
const index = { ...plugin, configs };
export { configs, index as default };