Skip to content

Latest commit

 

History

History
 
 

types

Glaze types

Shared types for Glaze packages

Installation

npm install --dev @glazed/types

Types

EncodedDagJWS

Uses JWSSignature from the dids package

type EncodedDagJWS = {
  payload: string
  signatures: Array<JWSSignature>
  link?: string
}

EncodedDagJWS

type EncodedDagJWSResult = {
  jws: EncodedDagJWS
  linkedBlock: string // base64
}

Schema

Uses JSONSchemaType from the ajv package

type Schema<T = Record<string, any>> = JSONSchemaType<T> & {
  $comment?: string
  title?: string
}

ModelData

type ModelData<T> = {
  definitions: Record<string, T>
  schemas: Record<string, T>
  tiles: Record<string, T>
}

MapModelTypes

type MapModelTypes<Model extends ModelData<any>, ToType> = {
  schemas: Record<keyof Model['schemas'], ToType>
  definitions: Record<keyof Model['definitions'], ToType>
  tiles: Record<keyof Model['tiles'], ToType>
}

CastModelTo

type CastModelTo<Model extends ModelData<any> | void, ToType> = Model extends ModelData<any>
  ? MapModelTypes<Model, ToType>
  : ModelData<ToType>

PublishedModel

type PublishedModel<Model extends ModelData<any> | void = void> = CastModelTo<Model, string>

ModelTypeAliases

type ModelTypeAliases<
  // Schema alias to content type
  Schemas extends Record<string, any> = Record<string, any>,
  // Definition alias to schema alias
  Definitions extends Record<string, keyof Schemas> = Record<string, string>,
  // Tile alias to schema alias
  Tiles extends Record<string, keyof Schemas> = Record<string, string>
> = {
  schemas: Schemas
  definitions: Definitions
  tiles: Tiles
}

ModelTypesToAliases

type ModelTypesToAliases<TypeAliases extends ModelTypeAliases> = MapModelTypes<TypeAliases, string>

ManagedID

type ManagedID = string // StreamID

ManagedDoc

Uses DagJWSResult from the dids package

type ManagedDoc<CommitType = DagJWSResult> = {
  alias: string
  commits: Array<CommitType>
  version: string // CommitID
}

ManagedEntry

Uses DagJWSResult from the dids package

type ManagedEntry<CommitType = DagJWSResult> = ManagedDoc<CommitType> & {
  schema: ManagedID
}

ManagedSchema

Uses DagJWSResult from the dids package

type ManagedSchema<CommitType = DagJWSResult> = ManagedDoc<CommitType> & {
  dependencies: Record<string, Array<ManagedID>> // path to schemas ManagedID
}

ManagedModel

Uses DagJWSResult from the dids package

type ManagedModel<CommitType = DagJWSResult> = {
  schemas: Record<ManagedID, ManagedSchema<CommitType>>
  definitions: Record<ManagedID, ManagedEntry<CommitType>>
  tiles: Record<ManagedID, ManagedEntry<CommitType>>
}

EncodedManagedModel

Uses DagJWSResult from the dids package

type EncodedManagedModel = ManagedModel<EncodedDagJWSResult>

License

Dual licensed under MIT and Apache 2