Lint β’ Format β’ TypeScript β’ Zero-Config DX
π¦ A curated index of all published @igorskyflyer configuration packages;
crafted for a seamless DX. π¦€
Each package is independently installable. Pick, extend and go.
| Package | Config | Type | Category |
|---|---|---|---|
@igorskyflyer/biome-config |
biome.json |
config | linter / formatter |
@igorskyflyer/editorconfig |
.editorconfig |
CLI | editor |
@igorskyflyer/oxfmt-config |
.oxfmtrc.json |
config | formatter |
@igorskyflyer/oxlint-config |
.oxlintrc.json |
config | linter |
@igorskyflyer/prettier-config |
prettier.config.mjs |
config | formatter |
@igorskyflyer/tsconfig |
tsconfig.json |
config | TypeScript |
Strict, opinionated Biome configuration for modern JavaScript and TypeScript projects.
- π½ Strict linting rules for correctness, performance and style
- π Catches unused variables, imports, parameters and private class members
- π¨ Custom formatting for
JSONandJS/TS- single quotes,LFendings, 2-space indentation - π§ Complexity warnings to reduce cognitive load and improve logic clarity
- β‘ Performance-focused rules - flags barrel files, re-export-all and top-level regex
- π Enforced filenaming conventions with strict casing and
ASCIIrequirements - π‘οΈ Suspicious behavior checks - console usage, overload signatures and error messaging
- βοΈ Keep trailing commas and remove unnecessary semicolons for cleaner diffs
- π§Ή Import organization powered by Biome's built-in
organizeImports - π Supports adjacent overloads and explicit length checks
Install it by executing any of the following, depending on the preferred package manager:
bun add -D @igorskyflyer/biome-configpnpm add -D @igorskyflyer/biome-configyarn add -D @igorskyflyer/biome-confignpm i -D @igorskyflyer/biome-configAfter installation reference it in the project's biome.json config file.
biome.json
{
"extends": ["@igorskyflyer/biome-config"]
}Override any rule locally as needed:
biome.json
{
"extends": ["@igorskyflyer/biome-config"],
"linter": {
"rules": {
"suspicious": {
"noConsole": "error"
}
}
}
}CLI tool that instantly provisions a
.editorconfiginto any project.
- π¨ Copies
.editorconfiginto the current project instantly β οΈ Detects existing.editorconfigand prompts before overwriting- βοΈ Skips safely on declined overwrite - no destructive changes
- β Clear success and error feedback for every outcome
- π‘οΈ Zero dependencies - pure
Node.jsbuilt-ins only
In a terminal, run:
npx @igorskyflyer/editorconfigbunx @igorskyflyer/editorconfigpnpm dlx @igorskyflyer/editorconfigyarn dlx @igorskyflyer/editorconfigand follow the instructions.
Or install globally:
bun add -g @igorskyflyer/editorconfigpnpm add -g @igorskyflyer/editorconfignpm i -g @igorskyflyer/editorconfigThen run:
editorconfigPixel-perfect formatting config powered by
oxfmt, covering every modern file type.
- β¨ Pixel-perfect, consistent formatting across all modern file types
- π¦ Handles
JS,TS,JSX,TSX,JSON,HTML,CSS,Vueand more - π Intelligent
import sorting- builtin first, then internal, then external - π―
Opinionateddefaults - extend and go, zero bikeshedding - β‘ Powered by
oxfmt-30xfaster thanPrettier - π‘οΈ
Zero dependencies-oxfmtis a peer dependency only
Install it by executing any of the following, depending on the preferred package manager:
bun add -D @igorskyflyer/oxfmt-configpnpm add -D @igorskyflyer/oxfmt-configyarn add -D @igorskyflyer/oxfmt-confignpm i -D @igorskyflyer/oxfmt-configAfter installation reference it in the project's .oxfmtrc.json config file.
.oxfmtrc.json
{ "extends": "@igorskyflyer/oxfmt-config" }Override any rule locally as needed:
.oxfmtrc.json
{
"extends": "@igorskyflyer/oxfmt-config",
"printWidth": 100,
"endOfLine": "crlf",
"arrowParens": "avoid"
}Strict oxlint ruleset covering TypeScript, imports, promises, unicorn and test plugins.
- β Strict, opinionated oxlint config for modern
JavaScriptandTypeScriptprojects - π Catches unused variables, imports, explicit
any, floating promises and unsafe assignments - π¦ Covers
typescript,import,node,promise,unicorn,jestandvitestplugins - π
node:protocol enforced, barrel files flagged, accumulating spreads detected - π Import cycle, duplicate and absolute path detection built-in
- π§ͺ Vitest-aware rules - no focused, disabled or conditionally skipped tests slip through
- π¦ Unicorn rules for modern idioms -
prefer-at,prefer-includes,numeric-separatorsand more - π‘οΈ Zero bikeshedding - one config, all projects, extend and go
Install it by executing any of the following, depending on the preferred package manager:
bun add -D @igorskyflyer/oxlint-configpnpm add -D @igorskyflyer/oxlint-configyarn add -D @igorskyflyer/oxlint-confignpm i -D @igorskyflyer/oxlint-configAfter installation, reference it in the project's .oxlintrc.json.
.oxlintrc.json
{
"extends": ["@igorskyflyer/oxlint-config"]
}Override any rule locally as needed:
.oxlintrc.json
{
"extends": ["@igorskyflyer/oxlint-config"],
"rules": {
"no-console": "error"
}
}Prettier config for JS/TS projects. Single quotes, no semis, LF, trailing commas.
- β‘ Zero-config setup - extend and go
- π€ Single quotes for JS/TS, double quotes for JSX
- π« No semicolons, with trailing commas - cleaner diffs
- π 2-space indentation, LF line endings, 80-char print width
- π¦ Covers JS, TS, JSX, TSX, JSON, HTML, CSS, Vue and more
- π― All valid Prettier options explicitly set - no surprises
- π² Object wrap preserved - inline objects stay inline, expanded stay expanded
- π Experimental options locked in - no unintended behavior on upgrades
Install it by executing any of the following, depending on the preferred package manager:
bun add -D @igorskyflyer/prettier-configpnpm add -D @igorskyflyer/prettier-configyarn add -D @igorskyflyer/prettier-confignpm i -D @igorskyflyer/prettier-configAfter installation, reference it in the project's package.json.
package.json
{
"prettier": "@igorskyflyer/prettier-config"
}If overrides are needed, use a prettier.config.mjs instead:
prettier.config.mjs
import config from '@igorskyflyer/prettier-config'
/** @type {import('prettier').Config} */
export default {
...config
// overrides
}Strict TypeScript configuration with separate Node and browser presets.
- π§ Strict
TypeScriptrules enabled by default - π¦ Separate configs for
Nodeandbrowserenvironments - π―
ES2024target -modernand future-ready - ποΈ Predefined
src/,dist/andtest/structure - π Catches
unusedlocals, parameters and implicitany - πΊοΈ
Source mapsanddeclarationmaps included - β‘
Zero-configsetup - extend and go
Install it by executing any of the following, depending on the preferred package manager:
bun add -D @igorskyflyer/tsconfigpnpm add -D @igorskyflyer/tsconfigyarn add -D @igorskyflyer/tsconfignpm i -D @igorskyflyer/tsconfigAfter installation, reference it in the project's tsconfig.json.
Node (default)
tsconfig.json
{
"extends": "@igorskyflyer/tsconfig",
"include": ["src/**/*"],
"exclude": ["node_modules/**/*", "test/**/*", "dist/**/*"],
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist"
}
}Node (explicit)
tsconfig.json
{
"extends": "@igorskyflyer/tsconfig/node",
"include": ["src/**/*"],
"exclude": ["node_modules/**/*", "test/**/*", "dist/**/*"],
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist"
}
}Browser
tsconfig.json
{
"extends": "@igorskyflyer/tsconfig/browser",
"include": ["src/**/*"],
"exclude": ["node_modules/**/*", "test/**/*", "dist/**/*"],
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist"
}
}Base only
tsconfig.json
{
"extends": "@igorskyflyer/tsconfig/base",
"include": ["src/**/*"],
"exclude": ["node_modules/**/*", "test/**/*", "dist/**/*"],
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist"
}
}Every project starts the same way - hours configuring linters, formatters, TypeScript and editor settings before writing a single line of actual code. These packages exist to eliminate that overhead entirely.
Each config reflects decisions made across real projects, iterated until they stopped surfacing false positives and started catching genuine issues. Nothing is included for completeness; everything earns its place.
The goal is a setup that enforces consistency without demanding attention - one extends, and the tooling gets out of the way.
Read about the latest changes in the CHANGELOG.
Licensed under the MIT license.
involves a significant investment of time.
If this project or its implementation has provided value,
support is greatly appreciated.
Thank you for supporting these efforts! ππ
Created by Igor DimitrijeviΔ (@igorskyflyer).
