UNPKG

fhirbuilder

Version:
32 lines (31 loc) 1.5 kB
import { IAccount, IBundle, IEncounter, IEndpoint, IEpisodeOfCare, IOperationOutcome, IOrganization, IPatient, IPerson, IPractitionerRole, IRelatedPerson } from 'fhirtypes/dist/r4'; import { AttributeDefinition } from '../../../core/r4/validators/base/definitions'; export interface ResourceTypeMap { Account: IAccount; Bundle: IBundle; Encounter: IEncounter; Endpoint: IEndpoint; EpisodeOfCare: IEpisodeOfCare; OperationOutcome: IOperationOutcome; Organization: IOrganization; Patient: IPatient; Person: IPerson; PractitionerRole: IPractitionerRole; RelatedPerson: IRelatedPerson; } export type ResourceType = keyof ResourceTypeMap; export type ResourceValue<T extends keyof ResourceTypeMap> = ResourceTypeMap[T]; export type ResourceTypesValues = ResourceTypeMap[keyof ResourceTypeMap]; type IsArray<T> = T extends Array<any> ? T : never; type ExtractUnderscoreArrayKeys<T> = { [K in keyof T]: K extends `_${string}` ? (IsArray<T[K]> extends never ? never : K) : never; }[keyof T]; export type PickUnderscoreArrayProperties<T> = Pick<T, ExtractUnderscoreArrayKeys<T>>; export type NonUnderscoreKeys<T> = Extract<{ [K in keyof T]: K extends `_${string}` ? never : K; }[keyof T], keyof T>; export type UnderscoreKeys<T> = Extract<{ [K in keyof T]: K extends `_${string}` ? K : never; }[keyof T], keyof T>; export declare function validateFields<T extends object>(modelFields: readonly AttributeDefinition<T>[], instance: any): void; export {};