@applomb/eslint-config
v0.4.0
Published
Applomb's ESLint rules — the quality contract for Applomb-generated apps (base + react-native presets).
Readme
@applomb/eslint-config
Applomb's ESLint rules — the quality contract every Applomb-generated app is born with. Published so exported apps keep linting (and upgrading) outside Applomb: no lock-in.
Usage (flat config, ESLint ≥9)
// eslint.config.mjs — web apps
import applomb from "@applomb/eslint-config";
export default applomb;// eslint.config.mjs — React Native / Expo apps
import applombReactNative from "@applomb/eslint-config/react-native";
export default applombReactNative;What it enforces
@applomb/no-hardcoded-strings— user-facing text goes through i18n keys (RN preset addsaccessibilityLabel,accessibilityHint, …)@applomb/no-hardcoded-colors— semantic design tokens only- RN preset: FlashList/expo-image import bans (no RN
FlatList/Image), react-hooks rules as errors - RN preset: supabase is import-banned under
app/— screens never fetch, data and auth actions go throughuse<Entity>Query/Mutationhooks - RN preset:
@applomb/no-font-weight— nofontWeightin styles, no Tailwind weight utilities (font-bold,font-[600]) in className; weight travels via the font family classes (Android renders no synthetic weights with custom fonts) @applomb/no-unchecked-ts-escape— no@ts-ignore/@ts-nocheck, a description required on@ts-expect-error, and noanywithout a justifying comment on the same or previous line
Versioning: generated apps pin an exact version at birth; upgrades are
explicit (npm i @applomb/eslint-config@latest works like any package).
