Reusable Oxlint JavaScript plugin for Effect TypeScript projects.
The default milk plugin provides four generic rules: effect-schema-only,
no-raw-env, no-raw-vitest-imports, and unrun-effect. The fleet policy
composes those rules with the maintained oxlint-plugin-effect recommended
preset rather than owning a second Effect rule corpus.
Product repositories consume the central policy through createMilkLintConfig.
The factory registers the vite-plus, effect, and milk plugins, requires the
maintained Effect preset, the four Milk rules, and
vite-plus/prefer-vite-plus-imports at error, and keeps type-aware checking
enabled. A product may add its private plugin, rules, overrides, and ignore
paths, but cannot shadow the central plugin aliases or required rules.
import { createMilkLintConfig } from "@milk-toolchain/oxlint-plugin/lint-config";
export const lint = createMilkLintConfig({
jsPlugins: [{ name: "product", specifier: "oxlint-plugin" }],
rules: {
"product/no-local-hazard": "error",
},
});The product plugin remains a thin private adapter for repository-specific rules. Shared policy belongs here and reaches products through signed projection releases pinned by exact commit.
The package ships compiled JavaScript and declaration files. Use
@milk-toolchain/oxlint-plugin to register the four generic rules as milk.
import milk from "@milk-toolchain/oxlint-plugin";
export default {
jsPlugins: [{ name: "milk", plugin: milk }]
};