@glazed/types
v0.2.0
Published
Shared types for Glaze packages
Downloads
478
Readme
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