skuba-dive
v4.0.1
Published
Minimal runtime for skuba
Readme
🤿🌊
Minimal runtime for skuba.
Table of contents
API reference
Assert
TypeScript assertion functions for narrowing down types in unit tests and the like.
These may be used for input validation in your application code at a pinch, but consider a proper validation library with richer error handling and reporting.
import { Assert } from 'skuba-dive';
it('should think of a good test case name', () => {
const result = numberOrNull();
// result is number | null
Assert.notNullish(result);
// result is number
});Env
Functions for reading values out of environment variables.
For example, in your /src/config.ts:
import { Env } from 'skuba-dive';
const ENVIRONMENTS = ['dev', 'prod'] as const;
export type Environment = (typeof ENVIRONMENTS)[number];
export const environment = Env.oneOf(ENVIRONMENTS)('ENVIRONMENT');
// 'dev' | 'prod'
export const port = Env.nonNegativeInteger('PORT', { default: undefined });
// number | undefined
export const version = Env.string('VERSION', { default: 'local' });
// string | 'local'
export const flag = Env.boolean('FLAG');
// booleanEach function will throw if its environment variable is not set and opts.default is not provided.
Register
skuba-dive/register has been replaced with native subpath imports supported by both TypeScript and Node.js as a part of our ESM migration. Please upgrade to skuba 13 to automatically migrate your codebase.
Design
skuba-dive packages up:
- General application boilerplate that doesn't justify a standalone module
- Runtime functionality that complements
skuba
