@mrshmllw/campfire
v7.1.0
Published
Collection of toasty utils and configs used by Marshmallow Technology
Maintainers
Keywords
Readme
Campfire
Internal configs, utils, and tooling for Marshmallow projects.
Install
npm install -D @mrshmllw/campfireConfiguration
Import and use the pre-configured tools:
// eslint.config.js
import { eslintConfig } from '@mrshmllw/campfire'
export default eslintConfig
// prettier.config.js
import { prettierConfig } from '@mrshmllw/campfire'
export default prettierConfig
// commitlint.config.js
import { commitlintConfig } from '@mrshmllw/campfire'
export default commitlintConfig
// release.config.js
import { releaseConfig } from '@mrshmllw/campfire'
export default releaseConfig
// lint-staged.config.js
import { lintStagedConfig } from '@mrshmllw/campfire'
export default lintStagedConfigoxlint
Two configs are available — pick one:
| Config | Contents |
|---|---|
| configs/oxlint.config | Framework agnostic: TypeScript, promise and vitest rules |
| configs/oxlint.react.config | The above plus React, React Perf and JSX a11y plugins, campfire's component rules and react/react-compiler |
Spread it into your app's oxlint.config.ts:
// oxlint.config.ts
import campfireConfig from '@mrshmllw/campfire/configs/oxlint.react.config'
import { defineConfig } from 'oxlint'
export default defineConfig({
...campfireConfig,
// App specific config goes here, after the spread
options: {
typeAware: true,
},
})Notes:
- Adding your own
rules,pluginsoroverridesafter the spread is safe — those arrive viaextends, so oxlint merges them per rule with your app winning on conflict.env,settingsandignorePatternsare plain fields, so re-declaring one of those replaces the shared value: spread it if you mean to add, e.g.ignorePatterns: [...campfireConfig.ignorePatterns, 'src/gen/**']. - The base config leaves type aware linting to the app: set
options.typeAwareand installoxlint-tsgolintto switch on the type aware rules (typescript/no-misused-promises,typescript/prefer-nullish-coalescing). extendswith a package import only works inoxlint.config.ts/oxlint.config.mts, not in.oxlintrc.json.react/react-compileris a nursery rule, so it only runs because the React config names it explicitly — enabling categories won't pick it up.
Development
Use conventional commits for automatic changelog generation:
fix: description→ patch releasefeat: description→ minor releaseBREAKING CHANGE: description→ major release
Release
Releases are handled via GitHub Actions on these branches:
main- production releasesfeature/*,chore/*,fix/*- pre-releases
Use the "Bump and Publish" workflow in GitHub Actions to release.
