Surface / foldkit-metadata

MetadataKey

interface · packages/metadata/src/index.ts:21

interface MetadataKey<A> {
  readonly name: string
  readonly merge: (values: ReadonlyArray<A>) => ReadonlyArray<A>
  readonly summarize: (value: A) => string
  readonly of: (...values: ReadonlyArray<A>) => Metadata
  readonly get: (metadata: Metadata) => ReadonlyArray<A>
}

An interpreter's typed slot in Metadata. Lookup is by the key object, never its name, so two packages cannot collide by choosing the same string.

Members

MetadataKey.name

property · packages/metadata/src/index.ts:23

readonly name: string

For tooling output only.

MetadataKey.merge

property · packages/metadata/src/index.ts:25

readonly merge: (values: ReadonlyArray<A>) => ReadonlyArray<A>

Normalizes the entries gathered from combined values, e.g. unioning duplicates.

MetadataKey.summarize

property · packages/metadata/src/index.ts:27

readonly summarize: (value: A) => string

One line per entry for tooling output.

MetadataKey.of

property · packages/metadata/src/index.ts:28

readonly of: (...values: ReadonlyArray<A>) => Metadata

MetadataKey.get

property · packages/metadata/src/index.ts:29

readonly get: (metadata: Metadata) => ReadonlyArray<A>