An experimental TypeSpec syntax for Lexicon
56
fork

Configure Feed

Select the types of activity you want to include in your feed.

more

+287 -1
+65
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/git/refUpdate.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.git.refUpdate { 4 + @doc("An update to a git repository, emitted by knots.") 5 + @rec("tid") 6 + model Main { 7 + @doc("Ref being updated") 8 + @maxGraphemes(256) 9 + @maxLength(2560) 10 + @required 11 + ref: string; 12 + 13 + @doc("did of the user that pushed this ref") 14 + @required 15 + committerDid: did; 16 + 17 + @doc("did of the owner of the repo") 18 + @required 19 + repoDid: did; 20 + 21 + @doc("name of the repo") 22 + @required 23 + repoName: string; 24 + 25 + @doc("old SHA of this ref") 26 + @minLength(40) 27 + @maxLength(40) 28 + @required 29 + oldSha: string; 30 + 31 + @doc("new SHA of this ref") 32 + @minLength(40) 33 + @maxLength(40) 34 + @required 35 + newSha: string; 36 + 37 + @required meta: Meta; 38 + } 39 + 40 + model Meta { 41 + @required isDefaultRef: boolean = false; 42 + 43 + langBreakdown?: LangBreakdown; 44 + 45 + @required commitCount: CommitCountBreakdown; 46 + } 47 + 48 + model LangBreakdown { 49 + inputs?: IndividualLanguageSize[]; 50 + } 51 + 52 + model IndividualLanguageSize { 53 + @required lang: string; 54 + @required size: integer; 55 + } 56 + 57 + model CommitCountBreakdown { 58 + byEmail?: IndividualEmailCommitCount[]; 59 + } 60 + 61 + model IndividualEmailCommitCount { 62 + @required email: string; 63 + @required count: integer; 64 + } 65 + }
+81
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/pipeline.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.pipeline { 4 + @rec("tid") 5 + model Main { 6 + @required triggerMetadata: TriggerMetadata; 7 + @required workflows: Workflow[]; 8 + } 9 + 10 + @closed 11 + @inline 12 + union TriggerKind { 13 + "push", 14 + "pull_request", 15 + "manual", 16 + } 17 + 18 + model TriggerMetadata { 19 + @required kind: TriggerKind; 20 + @required repo: TriggerRepo; 21 + 22 + push?: PushTriggerData; 23 + pullRequest?: PullRequestTriggerData; 24 + manual?: ManualTriggerData; 25 + } 26 + 27 + model TriggerRepo { 28 + @required knot: string; 29 + @required did: did; 30 + @required repo: string; 31 + @required defaultBranch: string; 32 + } 33 + 34 + model PushTriggerData { 35 + @required ref: string; 36 + 37 + @minLength(40) 38 + @maxLength(40) 39 + @required 40 + newSha: string; 41 + 42 + @minLength(40) 43 + @maxLength(40) 44 + @required 45 + oldSha: string; 46 + } 47 + 48 + model PullRequestTriggerData { 49 + @required sourceBranch: string; 50 + @required targetBranch: string; 51 + 52 + @minLength(40) 53 + @maxLength(40) 54 + @required 55 + sourceSha: string; 56 + 57 + @required action: string; 58 + } 59 + 60 + model ManualTriggerData { 61 + inputs?: Pair[]; 62 + } 63 + 64 + model Workflow { 65 + @required name: string; 66 + @required engine: string; 67 + @required clone: CloneOpts; 68 + @required raw: string; 69 + } 70 + 71 + model CloneOpts { 72 + @required skip: boolean; 73 + @required depth: integer; 74 + @required submodules: boolean; 75 + } 76 + 77 + model Pair { 78 + @required key: string; 79 + @required value: string; 80 + } 81 + }
+39
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/pipeline/status.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.pipeline.status { 4 + @closed 5 + @inline 6 + union WorkflowStatus { 7 + "pending", 8 + "running", 9 + "failed", 10 + "timeout", 11 + "cancelled", 12 + "success", 13 + } 14 + 15 + @rec("tid") 16 + model Main { 17 + @doc("ATURI of the pipeline") 18 + @required 19 + pipeline: atUri; 20 + 21 + @doc("name of the workflow within this pipeline") 22 + @required 23 + workflow: atUri; 24 + 25 + @doc("status of the workflow") 26 + @required 27 + status: WorkflowStatus; 28 + 29 + @doc("time of creation of this status update") 30 + @required 31 + createdAt: datetime; 32 + 33 + @doc("error message if failed") 34 + error?: string; 35 + 36 + @doc("exit code if failed") 37 + exitCode?: integer; 38 + } 39 + }
+12
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/issue/comment.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.repo.issue.comment { 4 + @rec("tid") 5 + model Main { 6 + @required issue: atUri; 7 + @required body: string; 8 + @required createdAt: datetime; 9 + 10 + replyTo?: atUri; 11 + } 12 + }
+7
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/issue/state/closed.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.repo.issue.state.closed { 4 + @doc("closed issue") 5 + @token 6 + model Main {} 7 + }
+7
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/issue/state/open.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.repo.issue.state.open { 4 + @doc("open issue") 5 + @token 6 + model Main {} 7 + }
+10
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/pull/comment.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.repo.pull.comment { 4 + @rec("tid") 5 + model Main { 6 + @required pull: atUri; 7 + @required body: string; 8 + @required createdAt: datetime; 9 + } 10 + }
+33
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/pull/pull.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.repo.pull { 4 + @rec("tid") 5 + model Main { 6 + @required target: Target; 7 + @required title: string; 8 + 9 + body?: string; 10 + 11 + @required patch: string; 12 + 13 + source?: Source; 14 + 15 + @required createdAt: datetime; 16 + } 17 + 18 + model Target { 19 + @required repo: atUri; 20 + @required branch: string; 21 + } 22 + 23 + model Source { 24 + @required branch: string; 25 + 26 + @minLength(40) 27 + @maxLength(40) 28 + @required 29 + sha: string; 30 + 31 + repo?: atUri; 32 + } 33 + }
+12
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/pull/status.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.repo.pull.status { 4 + @rec("tid") 5 + model Main { 6 + @required pull: atUri; 7 + 8 + @doc("status of the pull request") 9 + @required 10 + status: "sh.tangled.repo.pull.status.open" | "sh.tangled.repo.pull.status.closed" | "sh.tangled.repo.pull.status.merged" | string = "sh.tangled.repo.pull.status.open"; 11 + } 12 + }
+7
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/pull/status/closed.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.repo.pull.status.closed { 4 + @doc("closed pull request") 5 + @token 6 + model Main {} 7 + }
+7
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/pull/status/merged.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.repo.pull.status.merged { 4 + @doc("merged pull request") 5 + @token 6 + model Main {} 7 + }
+7
packages/emitter/test/integration/lexicon-examples/input/sh/tangled/repo/pull/status/open.tsp
··· 1 + import "@tylex/emitter"; 2 + 3 + namespace sh.tangled.repo.pull.status.open { 4 + @doc("open pull request") 5 + @token 6 + model Main {} 7 + }
-1
packages/emitter/test/integration/lexicon-examples/output/sh/tangled/git/refUpdate.json
··· 101 101 }, 102 102 "commitCountBreakdown": { 103 103 "type": "object", 104 - "required": [], 105 104 "properties": { 106 105 "byEmail": { 107 106 "type": "array",