UNPKG

@riddance/service

Version:

Too much code slows you down, creates risks, increases maintainability burdens, confuses AI. So let's commit less of it.

15 lines (14 loc) 999 B
import type { Json, JsonObject, JsonSafe, JsonSafeObject } from '@riddance/host/lib/context'; export * from '@riddance/host/lib/context'; export type Stringified<T> = T extends null | boolean | number | string ? T : T extends JsonSafeObject ? JsonObject : T extends JsonSafe ? Json : T extends undefined ? never : T extends () => unknown ? never : T extends { toJSON: (...args: unknown[]) => infer U; } ? Stringified<U> : T extends { toJSON: Function; } | Map<infer _, infer _> | Set<infer _> ? object : T extends readonly (infer U)[] ? Stringified<U extends undefined ? null : U>[] : T extends object ? { [K in keyof T as T[K] extends Function | symbol ? never : Stringified<T[K]> extends never ? never : K extends symbol ? never : K]: Stringified<T[K]>; } : never; export declare function objectSpreadable(json?: Json): { readonly [key: string]: Json; }; export declare function arraySpreadable(json?: Json): readonly Json[]; export declare function missing(what?: string): never;