Skip to content

Allow referencing object/tuple/etc properties i.e. Json.kind #13

@kossnocorp

Description

@kossnocorp

Allow referencing type (object, tuple, something else?) properties via Type.property, i.e.:

Json: JsonNull | JsonBoolean | JsonNumber | JsonString | JsonArray | JsonObject | JsonUnion | JsonLiteral | JsonTuple

JsonKind: Json.kind
// "null" | "boolean" | "number" | "string" | ...

JsonBase: {
  doc?: string
}

JsonNull: {
  ...JsonBase,
  kind: "null"
}

JsonBoolean: {
  ...JsonBase,
  kind: "boolean"
}

JsonNumber: {
  ...JsonBase,
  kind: "number"
}

JsonString: {
  ...JsonBase,
  kind: "string"
}

JsonArray: {
  ...JsonBase,
  kind: "array",
  descriptor: Json
}

JsonObject: {
  ...JsonBase,
  kind: "object",
  properties: [JsonProperty]
}

JsonProperty: {
  ...JsonBase,
  kind: "property",
  name: string,
  descriptor: Json,
  required: boolean
}

JsonUnion: {
  ...JsonBase,
  kind: "union",
  descriptors: [Json]
}

JsonTuple: {
  ...JsonBase,
  kind: "tuple",
  descriptors: [Json]
}

JsonLiteral: {
  ...JsonBase,
  kind: "literal",
  value: string | int | float | boolean
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    Could

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions