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/sort-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: deprecated, use thesortImportsoption of oxfmt to order the import statements andsort-importsto sort the named 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.sort-imports: the named imports inside{ … }of an import declaration are sorted by their local name, in the same order as thesortImportsoption of oxfmt, which only orders the import statements. It takes the sameorder(ascordesc, defaultasc) andignoreCase(defaulttrue) options, so both can be configured alike. Default and namespace imports and exports are not touched. Fixable, unless a comment sits inside the braces.test-root-describe: the rootdescribeof a spec file is named after its path, withoutsrc/,lib/ortest/and the.spec.tssuffix. Fixable.
Node.js, pnpm, jactionlint, shellcheck and zizmor are pinned in mise.toml, so mise installs them with mise install, then pnpm install --frozen-lockfile installs the dependencies.
Without mise, install Node.js and pnpm yourself and run only pnpm install --frozen-lockfile.
mise install
pnpm install --frozen-lockfile
pnpm lint
pnpm test
pnpm build
jactionlint
zizmor .github/pnpm lint-fixfixes the formatting and the fixable lint findings.pnpm buildcompiles the plugin todist/, which is what the package ships.jactionlintchecks the GitHub workflows andzizmor .github/audits them. CI runs both through mise in thelintjob.