INNER CODE UNIT · TypeScript

createType

lstkz/ts-mongoose · src/Type.ts:17

const createType = <T>(type: any) => <O extends TypeOptions<T>>(options?: O) =>
  (({ ...(options ? options : {}), type } as unknown) as GetType<
    O,
    T extends string ? EnumOrString<O> : T
  >);

export const Type = {
  number: createType<number>(Number),
  boolean: createType<boolean>(Boolean),
  date: createType<Date>(Date),
  mixed: createType<any>(Schema.Types.Mixed),
  objectId: createType<Types.ObjectId>(Schema.Types.ObjectId),
  string: createType<string>(String),
  decimal128: createType<Types.Decimal128>(Schema.Types.Decimal128),
  buffer: createType<Types.Buffer>(Schema.Types.Buffer),
  object: <O extends TypeOptions<object>>(options?: O) => ({
    of<T extends object>(schema: T) {
      return ({

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…