@apick/utils
v0.3.0
Published
Error classes, env helpers, UID utilities, and object/string utils for APICK headless CMS
Readme
@apick/utils
Shared utility functions for APICK — a pure headless CMS built TypeScript-first.
Install
npm install @apick/utilsWhat's Inside
Error Classes
Typed error classes with HTTP status codes:
import { errors } from '@apick/utils';
throw new errors.NotFoundError('Article not found');
throw new errors.ValidationError('Invalid input', { errors: [...] });
throw new errors.UnauthorizedError('Missing token');
throw new errors.ForbiddenError('Insufficient permissions');| Error Class | HTTP Status |
|------------|-------------|
| ApplicationError | 400 |
| ValidationError | 400 |
| UnauthorizedError | 401 |
| ForbiddenError | 403 |
| NotFoundError | 404 |
| PayloadTooLargeError | 413 |
| RateLimitError | 429 |
Environment Helpers
import { env } from '@apick/utils';
env('HOST', '0.0.0.0'); // string
env.int('PORT', 1337); // number
env.bool('DATABASE_SSL', false); // boolean
env.array('APP_KEYS', []); // string[]
env.json('CORS_ORIGINS', '["*"]'); // parsed JSONUID Utilities
import { uid } from '@apick/utils';
uid.parseUid('api::article.article'); // { namespace: 'api', name: 'article.article' }
uid.hasNamespace('api::article.article', 'api'); // true
uid.isValidUid('api::article.article'); // trueObject & String Utilities
deepMerge,dotGet,dotSet,dotHas,deepFreeze,isPlainObjectpluralize,camelCase,pascalCase,kebabCase
Related Packages
@apick/core-- Framework kernel@apick/types-- Shared TypeScript type definitions@apick/cli-- CLI tool
