UNPKG

fhirbuilder

Version:
52 lines (51 loc) 1.9 kB
import { IAddress, IAttachment, ICodeableConcept, ICoding, IContactPoint, IElement, IHumanName, IIdentifier, IMeta, IPeriod, IQuantity, IReference } from 'fhirtypes/dist/r4'; import { Extension } from '../../models'; import { IBuildable } from '../base/IBuildable'; import { ElementBuilder } from '../base/ElementBuilder'; import { UnderscoreKeys } from '../base/resource-type-map.interface'; interface TypeMap { valueId: string; valueAddress: IAddress; valueAttachment: IAttachment; valueBoolean: boolean; valueCanonical: string; valueCode: string; valueCodeableConcept: ICodeableConcept; valueCoding: ICoding; valueContactPoint: IContactPoint; valueDate: string; valueDateTime: string; valueDecimal: number; valueIdentifier: IIdentifier; valueInstant: string; valueInteger: number; valueMarkdown: string; valueString: string; valueTime: string; valueUnsignedInt: number; valueUri: string; valueUrl: string; valueUuid: string; valueOid: string; valuePeriod: IPeriod; valuePositiveInt: number; valueQuantity: IQuantity; valueReference: IReference; valueMeta: IMeta; valueHumanName: IHumanName; } type ExtensionValue<T extends keyof TypeMap> = TypeMap[T]; type PrimitiveExtensionFields = keyof Pick<Extension, UnderscoreKeys<Extension>>; interface IExtensionBuilder extends IBuildable<Extension> { setUrl(url: string): this; setValue<T extends keyof TypeMap>(type: T, value: ExtensionValue<T>): this; } export declare class ExtensionBuilder extends ElementBuilder implements IExtensionBuilder { private readonly extension; constructor(); addPrimitiveExtension(param: PrimitiveExtensionFields, extension: IElement): this; setUrl(url: string): this; build(): Extension; setValue<T extends keyof TypeMap>(type: T, value: ExtensionValue<T>): this; } export {};