oxlint JS plugin with the containerbase lint rules.
{
"jsPlugins": ["@containerbase/oxlint-plugin"],
"rules": {
"containerbase/enforce-ts-extension": "error",
"containerbase/enum-member-pascal-case": "error",
"containerbase/no-undeclared-dependencies": "error",
"containerbase/organize-imports": "error",
"containerbase/test-root-describe": "error"
}
}enforce-ts-extension: in TypeScript files, local imports and exports (relative or~aliased) use.tsinstead of.js, and local paths invi.mockand friends have a file extension. Fixable.enum-member-pascal-case: enum members are written in PascalCase, like thePascalCaseformat of@typescript-eslint/naming-convention.no-undeclared-dependencies: imported packages are declared in the nearestpackage.json.devDependenciesare only allowed with theallowDevDependenciesoption, for example in tests. Type-only imports are skipped.organize-imports: imports are grouped by builtin, external, parent, sibling and index modules, then other paths like tsconfig aliases, and sorted alphabetically within each group. Side-effect imports stay in place. Fixable.test-root-describe: the rootdescribeof a spec file is named after its path, withoutsrc/,lib/ortest/and the.spec.tssuffix. Fixable.
Node.js, pnpm and jactionlint are pinned in mise.toml, so mise installs them and the dependencies with mise install.
Without mise, install the dependencies with pnpm install.
mise install
pnpm lint
pnpm test
pnpm build
jactionlintpnpm lint-fixfixes the formatting and the fixable lint findings.pnpm buildcompiles the plugin todist/, which is what the package ships.jactionlintchecks the GitHub workflows.