UNPKG

@zeushq/nextjs-zapi

Version:

Next.js SDK for creating a Zeus API

25 lines (19 loc) 596 B
import Joi from 'joi'; import { Config } from './config'; const paramsSchema = Joi.object({ baseURL: Joi.string().uri().required() }); export type DeepPartial<T> = { [P in keyof T]?: T[P] extends Array<infer I> ? Array<DeepPartial<I>> : DeepPartial<T[P]>; }; export type ConfigParameters = DeepPartial<Config>; export const get = (params: ConfigParameters = {}): Config => { const { value, error, warning } = paramsSchema.validate(params); if (error) { throw new TypeError(error.details[0].message); } if (warning) { console.warn(warning.message); } return value; };