Initial Commit

This commit is contained in:
2026-05-27 23:47:53 +01:00
parent fbc70f96e6
commit 9b28db724f
18103 changed files with 1600554 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
# Error codes — `REACT_AUTH_WL`
## Purpose
`error-codes.ts` registers the canonical, stable error-code registry used by
every error thrown from `@suaveplan/react-auth-whitelabel`. The codes are
namespaced under `REACT_AUTH_WL` and registered at module load via
`defineCodes`, which means the `@suaveplan/error` registry is wired before any
consumer imports a hook, context, or component. The codes survive minification,
remain stable across releases, and let consumers branch on `.code` instead of
inspecting the constructor name or message text — both of which are unstable
across bundles.
## Features
- Single source of truth for error-code identity in this package.
- `as const` literal-string codes for type-narrowing.
- Module-load-time registration so the wire-format adapter, redaction layer,
OTel span-event bridge, and i18n resolver all see the codes without an
explicit init call.
- Each code is thrown by ≥1 production code path — the
`error-codes.test.ts` grep-test enforces the contract.
## Usage: Basic
```ts
import { REACT_AUTH_WL_CODES } from "@suaveplan/react-auth-whitelabel/errors";
if (err.code === REACT_AUTH_WL_CODES.BRANDING_FETCH_FAILED) {
showFallbackBrand();
}
```
## Usage: Advanced
```ts
import {
REACT_AUTH_WL_CODES,
type ReactAuthWhitelabelCode,
} from "@suaveplan/react-auth-whitelabel/errors";
function isRecoverable(code: ReactAuthWhitelabelCode): boolean {
switch (code) {
case REACT_AUTH_WL_CODES.BRANDING_FETCH_FAILED:
case REACT_AUTH_WL_CODES.AUTH_NETWORK_FAILED:
return true;
default:
return false;
}
}
```
## API Reference
- `REACT_AUTH_WL_CODES` — frozen record of literal string codes; each value is
prefixed with `"REACT_AUTH_WL."`.
- `ReactAuthWhitelabelCode` — union of every `REACT_AUTH_WL_CODES[K]` value.
## Implementation Notes
`defineCodes("REACT_AUTH_WL", [...])` enforces uniqueness inside the namespace
and stamps the registry with the call site for diagnostics. We intentionally
do NOT eagerly import the registry from package code other than the error
class — the registry side-effect runs once at module evaluation and that is
the only required wiring.