name: v3xlabs-eslint description: Apply v3xlabs JavaScript and TypeScript code structure, naming, and ESLint v9 style guidance. metadata: tags: javascript, typescript, eslint, style, architecture, linting
v3xlabs ESLint Skill
Use this skill when working on JavaScript or TypeScript repositories that should follow v3xlabs structure and linting conventions.
When to use
- Adding or updating ESLint config in JS/TS projects
- Standardizing on ESLint v9 flat config across repositories
- Refactoring code to match v3xlabs style and naming
- Reviewing pull requests for structural and lint-rule alignment
Core conventions
- Prefer function-oriented and factory-oriented design
- Avoid classes except narrow runtime integration points
- Prefer explicit composition (
createX, helper combinators) - Keep boundaries clear between signaling, transport, session, and provider layers
- Prefer
typeoverinterfacein TypeScript - Keep types close to usage
- Prefer
const fn = (...) => {}for function declarations - Use descriptive identifiers and avoid generic
id - Use
camelCasefor variables/functions andPascalCasefor types/components - Keep event names in snake_case when compatibility requires it (
state_change,settings_change)
ESLint setup (v9)
Install:
npm install --save-dev eslint eslint-plugin-v3xlabs
Create eslint.config.mjs:
import v3xlabs from 'eslint-plugin-v3xlabs';
export default [...v3xlabs.configs['flat/recommended']];
Use lint script:
{
"scripts": {
"lint": "eslint ."
}
}
How to apply this skill during coding
- Read existing lint config and identify flat vs legacy format.
- If legacy, migrate to flat config and keep project-specific overrides.
- Apply v3xlabs naming and composition patterns while editing code.
- Keep formatting strict; do not relax newline and spacing rules unless requested.
- Run lint and fix all violations before finalizing.