An experimental TypeSpec syntax for Lexicon

fix 1

+11 -4
+11 -4
packages/emitter/src/emitter.ts
··· 39 39 LexObjectProperty, 40 40 LexArrayItem, 41 41 LexXrpcParameterProperty, 42 - LexInteger, 43 - LexString, 44 42 LexRefUnion, 45 43 LexUserType, 46 44 LexRecord, ··· 48 46 LexXrpcParameters, 49 47 LexBytes, 50 48 LexCidLink, 51 - LexRef, 52 49 LexRefVariant, 50 + LexToken, 53 51 } from "./types.js"; 54 52 55 53 import { ··· 267 265 }; 268 266 } 269 267 270 - private createMainDef(mainModel: Model): LexRecord | LexObject { 268 + private createMainDef(mainModel: Model): LexRecord | LexObject | LexToken { 271 269 const modelDescription = getDoc(this.program, mainModel); 270 + 271 + // Check if this is a token type 272 + if (isToken(this.program, mainModel)) { 273 + return { 274 + type: "token", 275 + description: modelDescription, 276 + }; 277 + } 278 + 272 279 const recordKey = getRecordKey(this.program, mainModel); 273 280 const modelDef = this.modelToLexiconObject(mainModel, !!modelDescription); 274 281
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/issue/issue.tsp packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/issue.tsp
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/pull/pull.tsp packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/pull.tsp
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/issue/closed.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/issue/state/closed.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/issue/issue.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/issue.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/issue/open.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/issue/state/open.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/pull/closed.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/pull/status/closed.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/pull/merged.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/pull/status/merged.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/pull/open.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/pull/status/open.json
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/pull/pull.json packages/emitter/test/integration/lexicon-examples/output/sh/tangled/repo/pull.json