@typespec/protobuf 0.53.0-dev.0 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -55,6 +55,9 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
55
55
  "anonymous-model": {
56
56
  default: string;
57
57
  };
58
+ "unspeakable-template-argument": {
59
+ default: import("@typespec/compiler").CallableMessage<[string]>;
60
+ };
58
61
  package: {
59
62
  "disallowed-option-type": import("@typespec/compiler").CallableMessage<[string, string]>;
60
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,sBAAsB,CAAC;AAE7C,cAAc,YAAY,CAAC;AAE3B,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,sBAAsB,CAAC;AAE7C,cAAc,YAAY,CAAC;AAE3B,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAA0B,CAAC"}
package/dist/src/lib.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { DiagnosticTarget, Program } from "@typespec/compiler";
1
2
  /**
2
3
  * Options that the Protobuf emitter accepts.
3
4
  */
@@ -70,11 +71,15 @@ export declare const TypeSpecProtobufLibrary: import("@typespec/compiler").TypeS
70
71
  "anonymous-model": {
71
72
  default: string;
72
73
  };
74
+ "unspeakable-template-argument": {
75
+ default: import("@typespec/compiler").CallableMessage<[string]>;
76
+ };
73
77
  package: {
74
78
  "disallowed-option-type": import("@typespec/compiler").CallableMessage<[string, string]>;
75
79
  };
76
80
  }, ProtobufEmitterOptions, never>;
77
- export declare const reportDiagnostic: <C extends "field-index" | "field-name" | "root-operation" | "unsupported-intrinsic" | "unsupported-return-type" | "unsupported-input-type" | "unsupported-field-type" | "namespace-collision" | "unconvertible-enum" | "nested-array" | "invalid-package-name" | "illegal-reservation" | "model-not-in-package" | "anonymous-model" | "package", M extends keyof {
81
+ export type Diagnostic = Parameters<typeof TypeSpecProtobufLibrary.reportDiagnostic>[1];
82
+ export declare const reportDiagnostic: (<C extends "field-index" | "field-name" | "root-operation" | "unsupported-intrinsic" | "unsupported-return-type" | "unsupported-input-type" | "unsupported-field-type" | "namespace-collision" | "unconvertible-enum" | "nested-array" | "invalid-package-name" | "illegal-reservation" | "model-not-in-package" | "anonymous-model" | "unspeakable-template-argument" | "package", M extends keyof {
78
83
  "field-index": {
79
84
  missing: import("@typespec/compiler").CallableMessage<[string]>;
80
85
  invalid: import("@typespec/compiler").CallableMessage<[string]>;
@@ -129,10 +134,13 @@ export declare const reportDiagnostic: <C extends "field-index" | "field-name" |
129
134
  "anonymous-model": {
130
135
  default: string;
131
136
  };
137
+ "unspeakable-template-argument": {
138
+ default: import("@typespec/compiler").CallableMessage<[string]>;
139
+ };
132
140
  package: {
133
141
  "disallowed-option-type": import("@typespec/compiler").CallableMessage<[string, string]>;
134
142
  };
135
- }[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
143
+ }[C]>(program: Program, diag: import("@typespec/compiler").DiagnosticReport<{
136
144
  "field-index": {
137
145
  missing: import("@typespec/compiler").CallableMessage<[string]>;
138
146
  invalid: import("@typespec/compiler").CallableMessage<[string]>;
@@ -187,10 +195,22 @@ export declare const reportDiagnostic: <C extends "field-index" | "field-name" |
187
195
  "anonymous-model": {
188
196
  default: string;
189
197
  };
198
+ "unspeakable-template-argument": {
199
+ default: import("@typespec/compiler").CallableMessage<[string]>;
200
+ };
190
201
  package: {
191
202
  "disallowed-option-type": import("@typespec/compiler").CallableMessage<[string, string]>;
192
203
  };
193
- }, C, M>) => void;
204
+ }, C, M>) => void) & {
205
+ /**
206
+ * Report a TypeSpec protobuf diagnostic, but only once per target per diagnostic code.
207
+ *
208
+ * This is useful in situations where a function that reports a recoverable diagnostic may be called multiple times.
209
+ */
210
+ once: (program: Program, diagnostic: Diagnostic & {
211
+ target: DiagnosticTarget;
212
+ }) => void;
213
+ };
194
214
  export type TypeSpecProtobufLibrary = typeof TypeSpecProtobufLibrary;
195
215
  export declare const state: {
196
216
  service: symbol;
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAwBD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAiHlC,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA4B,CAAC;AAE5D,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC;AAarE,eAAO,MAAM,KAAK;;;;;;;;;CAIjB,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,gBAAgB,EAGhB,OAAO,EACR,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAwBD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAuHlC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAuBxF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAC3B;;;;OAIG;oBACsB,OAAO,cAAc,UAAU,GAAG;QAAE,MAAM,EAAE,gBAAgB,CAAA;KAAE;CAUvF,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC;AAarE,eAAO,MAAM,KAAK;;;;;;;;;CAIjB,CAAC"}
package/dist/src/lib.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { createTypeSpecLibrary, paramMessage } from "@typespec/compiler";
3
+ import { createTypeSpecLibrary, paramMessage, } from "@typespec/compiler";
4
4
  const EmitterOptionsSchema = {
5
5
  type: "object",
6
6
  additionalProperties: false,
@@ -119,6 +119,12 @@ export const TypeSpecProtobufLibrary = createTypeSpecLibrary({
119
119
  default: "anonymous models cannot be used in Protobuf messages",
120
120
  },
121
121
  },
122
+ "unspeakable-template-argument": {
123
+ severity: "error",
124
+ messages: {
125
+ default: paramMessage `template ${"name"} cannot be converted to a Protobuf message because it has an unspeakable argument (try using the '@friendlyName' decorator on the template)`,
126
+ },
127
+ },
122
128
  package: {
123
129
  severity: "error",
124
130
  messages: {
@@ -128,7 +134,39 @@ export const TypeSpecProtobufLibrary = createTypeSpecLibrary({
128
134
  },
129
135
  emitter: { options: EmitterOptionsSchema },
130
136
  });
131
- export const { reportDiagnostic } = TypeSpecProtobufLibrary;
137
+ const __DIAGNOSTIC_CACHE = new WeakMap();
138
+ function getDiagnosticCache(program) {
139
+ let cache = __DIAGNOSTIC_CACHE.get(program);
140
+ if (!cache) {
141
+ cache = new Map();
142
+ __DIAGNOSTIC_CACHE.set(program, cache);
143
+ }
144
+ return cache;
145
+ }
146
+ function getAppliedCodesForTarget(program, target) {
147
+ const cache = getDiagnosticCache(program);
148
+ let codes = cache.get(target);
149
+ if (!codes) {
150
+ codes = new Set();
151
+ cache.set(target, codes);
152
+ }
153
+ return codes;
154
+ }
155
+ export const reportDiagnostic = Object.assign(TypeSpecProtobufLibrary.reportDiagnostic, {
156
+ /**
157
+ * Report a TypeSpec protobuf diagnostic, but only once per target per diagnostic code.
158
+ *
159
+ * This is useful in situations where a function that reports a recoverable diagnostic may be called multiple times.
160
+ */
161
+ once: function (program, diagnostic) {
162
+ const codes = getAppliedCodesForTarget(program, diagnostic.target);
163
+ if (codes.has(diagnostic.code)) {
164
+ return;
165
+ }
166
+ codes.add(diagnostic.code);
167
+ TypeSpecProtobufLibrary.reportDiagnostic(program, diagnostic);
168
+ },
169
+ });
132
170
  const keys = [
133
171
  "fieldIndex",
134
172
  "package",
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,qBAAqB,EAAkB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAqBzF,MAAM,oBAAoB,GAA2C;IACnE,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,qNAAqN;SACxN;QACD,wBAAwB,EAAE;YACxB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,sWAAsW;SACzW;KACF;IACD,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;IAC3D,IAAI,EAAE,YAAY;IAClB,cAAc,EAAE,CAAC,YAAY,CAAC;IAC9B,WAAW,EAAE;QACX,aAAa,EAAE;YACb,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,SAAS,MAAM,sFAAsF;gBAC1H,OAAO,EAAE,YAAY,CAAA,eAAe,OAAO,oDAAoD;gBAC/F,eAAe,EAAE,YAAY,CAAA,eAAe,OAAO,wCAAwC,KAAK,GAAG;gBACnG,QAAQ,EAAE,YAAY,CAAA,eAAe,OAAO,0EAA0E;gBACtH,eAAe,EAAE,YAAY,CAAA,eAAe,OAAO,mDAAmD;gBACtG,qBAAqB,EAAE,YAAY,CAAA,eAAe,OAAO,oEAAoE;aAC9H;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,eAAe,EAAE,YAAY,CAAA,eAAe,MAAM,oDAAoD;aACvG;SACF;QACD,gBAAgB,EAAE;YAChB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EACL,qFAAqF;aACxF;SACF;QACD,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,kBAAkB,MAAM,+BAA+B;aAC7E;SACF;QACD,yBAAyB,EAAE;YACzB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,4CAA4C;aACtD;SACF;QACD,wBAAwB,EAAE;YACxB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,cAAc,EACZ,+EAA+E;gBACjF,YAAY,EAAE,4DAA4D;gBAC1E,aAAa,EAAE,4DAA4D;aAC5E;SACF;QACD,wBAAwB,EAAE;YACxB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,aAAa,EAAE,YAAY,CAAA,oBAAoB,MAAM,qEAAqE;gBAC1H,mBAAmB,EAAE,YAAY,CAAA,+CAA+C,MAAM,EAAE;gBACxF,gBAAgB,EAAE,YAAY,CAAA,qDAAqD,MAAM,EAAE;gBAC3F,eAAe,EAAE,4DAA4D;gBAC7E,KAAK,EAAE,2CAA2C;aACnD;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,oBAAoB,MAAM,wBAAwB;aACxE;SACF;QACD,oBAAoB,EAAE;YACpB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EACL,kGAAkG;gBACpG,eAAe,EACb,mFAAmF;aACtF;SACF;QACD,cAAc,EAAE;YACd,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,yDAAyD;aACnE;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,GAAG,MAAM,qFAAqF;aACpH;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EACL,gHAAgH;aACnH;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,SAAS,MAAM,oEAAoE;aACzG;SACF;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,sDAAsD;aAChE;SACF;QACD,OAAO,EAAE;YACP,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,wBAAwB,EAAE,YAAY,CAAA,WAAW,MAAM,gBAAgB,MAAM,iGAAiG;aAC/K;SACF;KACF;IACD,OAAO,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,uBAAuB,CAAC;AAI5D,MAAM,IAAI,GAAG;IACX,YAAY;IACZ,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,SAAS;IACT,SAAS;IACT,MAAM;CACE,CAAC;AAEX,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CACrC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAGnE,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAcL,OAAO,EAOR,MAAM,oBAAoB,CAAC;AAsB5B,OAAO,EAAE,sBAAsB,EAA2B,MAAM,WAAW,CAAC;AAQ5E;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,GACf,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAuBpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAgBL,OAAO,EAOR,MAAM,oBAAoB,CAAC;AAsB5B,OAAO,EAAE,sBAAsB,EAA2B,MAAM,WAAW,CAAC;AAQ5E;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,GACf,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAuBpE"}
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { formatDiagnostic, getDoc, getEffectiveModelType, getTypeName, isDeclaredInNamespace, resolvePath, SyntaxKind, } from "@typespec/compiler";
3
+ import { formatDiagnostic, getDoc, getEffectiveModelType, getFriendlyName, getTypeName, isDeclaredInNamespace, isTemplateInstance, resolvePath, SyntaxKind, } from "@typespec/compiler";
4
4
  import { map, matchType, ref, scalar, unreachable, } from "../ast.js";
5
5
  import { reportDiagnostic, state } from "../lib.js";
6
6
  import { $field, isMap } from "../proto.js";
@@ -220,7 +220,7 @@ function tspToProto(program, emitterOptions) {
220
220
  typeWantsImport(program, relativeSource, extern[0]);
221
221
  return ref(extern[1]);
222
222
  }
223
- return ref(model.name);
223
+ return ref(getModelName(model));
224
224
  }
225
225
  /**
226
226
  * Gets a cached intrinsic type. This will also attach desired imports to the relative reference source.
@@ -310,7 +310,7 @@ function tspToProto(program, emitterOptions) {
310
310
  }
311
311
  const effectiveModel = computeEffectiveModel(m, capitalize(operation.name) + "Response");
312
312
  if (effectiveModel) {
313
- return ref(effectiveModel.name);
313
+ return ref(getModelName(effectiveModel));
314
314
  }
315
315
  reportDiagnostic(program, {
316
316
  code: "unsupported-return-type",
@@ -352,7 +352,7 @@ function tspToProto(program, emitterOptions) {
352
352
  return unreachable("anonymous model");
353
353
  }
354
354
  visitModel(t, relativeSource);
355
- return ref(t.name);
355
+ return ref(getModelName(t));
356
356
  case "Enum":
357
357
  visitEnum(t);
358
358
  return ref(t.name);
@@ -503,12 +503,37 @@ function tspToProto(program, emitterOptions) {
503
503
  function toMessage(model) {
504
504
  return {
505
505
  kind: "message",
506
- name: model.name,
506
+ name: getModelName(model),
507
507
  reservations: program.stateMap(state.reserve).get(model),
508
508
  declarations: [...model.properties.values()].map((f) => toMessageBodyDeclaration(f, model)),
509
509
  doc: getDoc(program, model),
510
510
  };
511
511
  }
512
+ function getModelName(model) {
513
+ const friendlyName = getFriendlyName(program, model);
514
+ if (friendlyName)
515
+ return capitalize(friendlyName);
516
+ const templateArguments = isTemplateInstance(model) ? model.templateMapper.args : [];
517
+ const prefix = templateArguments
518
+ .map(function getTypePrefixName(arg, idx) {
519
+ if ("name" in arg && typeof arg.name === "string" && arg.name !== "")
520
+ return capitalize(arg.name);
521
+ else {
522
+ reportDiagnostic.once(program, {
523
+ code: "unspeakable-template-argument",
524
+ // TODO-WILL - I'd rather attach the diagnostic to the template argument, but it's the best I can do for
525
+ // now to attach it to the model itself.
526
+ target: model,
527
+ format: {
528
+ name: model.name,
529
+ },
530
+ });
531
+ return `T${idx}`;
532
+ }
533
+ })
534
+ .join("");
535
+ return prefix + capitalize(model.name);
536
+ }
512
537
  /**
513
538
  * @param property - the ModelProperty to convert
514
539
  * @returns a corresponding declaration
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/protobuf",
3
- "version": "0.53.0-dev.0",
3
+ "version": "0.53.0",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec library and emitter for Protobuf (gRPC)",
6
6
  "homepage": "https://github.com/microsoft/typespec",
@@ -22,14 +22,14 @@
22
22
  "type": "module",
23
23
  "tspMain": "lib/proto.tsp",
24
24
  "peerDependencies": {
25
- "@typespec/compiler": "~0.52.0 || >=0.53.0-dev <0.53.0"
25
+ "@typespec/compiler": "~0.53.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@typespec/compiler": "~0.52.0 || >=0.53.0-dev <0.53.0",
29
- "@typespec/eslint-config-typespec": "~0.52.0 || >=0.53.0-dev <0.53.0",
30
- "@typespec/eslint-plugin": "~0.52.0 || >=0.53.0-dev <0.53.0",
28
+ "@typespec/compiler": "~0.53.0",
29
+ "@typespec/eslint-config-typespec": "~0.53.0",
30
+ "@typespec/eslint-plugin": "~0.53.0",
31
31
  "@types/node": "~18.11.9",
32
- "@typespec/tspd": "~0.46.0 || >=0.47.0-dev <0.47.0",
32
+ "@typespec/tspd": "~0.46.0",
33
33
  "c8": "~8.0.1",
34
34
  "eslint": "^8.55.0",
35
35
  "vitest": "^1.2.0",
@@ -40,7 +40,6 @@
40
40
  "micromatch": "^4.0.5",
41
41
  "@types/micromatch": "^4.0.2"
42
42
  },
43
- "dependencies": {},
44
43
  "scripts": {
45
44
  "clean": "rimraf ./dist ./temp",
46
45
  "build": "tsc -p .",
package/src/lib.ts CHANGED
@@ -1,7 +1,13 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
 
4
- import { createTypeSpecLibrary, JSONSchemaType, paramMessage } from "@typespec/compiler";
4
+ import {
5
+ createTypeSpecLibrary,
6
+ DiagnosticTarget,
7
+ JSONSchemaType,
8
+ paramMessage,
9
+ Program,
10
+ } from "@typespec/compiler";
5
11
 
6
12
  /**
7
13
  * Options that the Protobuf emitter accepts.
@@ -149,6 +155,12 @@ export const TypeSpecProtobufLibrary = createTypeSpecLibrary({
149
155
  default: "anonymous models cannot be used in Protobuf messages",
150
156
  },
151
157
  },
158
+ "unspeakable-template-argument": {
159
+ severity: "error",
160
+ messages: {
161
+ default: paramMessage`template ${"name"} cannot be converted to a Protobuf message because it has an unspeakable argument (try using the '@friendlyName' decorator on the template)`,
162
+ },
163
+ },
152
164
  package: {
153
165
  severity: "error",
154
166
  messages: {
@@ -159,7 +171,46 @@ export const TypeSpecProtobufLibrary = createTypeSpecLibrary({
159
171
  emitter: { options: EmitterOptionsSchema },
160
172
  });
161
173
 
162
- export const { reportDiagnostic } = TypeSpecProtobufLibrary;
174
+ export type Diagnostic = Parameters<typeof TypeSpecProtobufLibrary.reportDiagnostic>[1];
175
+
176
+ const __DIAGNOSTIC_CACHE = new WeakMap<Program, Map<DiagnosticTarget, Set<Diagnostic["code"]>>>();
177
+
178
+ function getDiagnosticCache(program: Program) {
179
+ let cache = __DIAGNOSTIC_CACHE.get(program);
180
+ if (!cache) {
181
+ cache = new Map();
182
+ __DIAGNOSTIC_CACHE.set(program, cache);
183
+ }
184
+ return cache;
185
+ }
186
+
187
+ function getAppliedCodesForTarget(program: Program, target: DiagnosticTarget) {
188
+ const cache = getDiagnosticCache(program);
189
+ let codes = cache.get(target);
190
+ if (!codes) {
191
+ codes = new Set();
192
+ cache.set(target, codes);
193
+ }
194
+ return codes;
195
+ }
196
+
197
+ export const reportDiagnostic = Object.assign(TypeSpecProtobufLibrary.reportDiagnostic, {
198
+ /**
199
+ * Report a TypeSpec protobuf diagnostic, but only once per target per diagnostic code.
200
+ *
201
+ * This is useful in situations where a function that reports a recoverable diagnostic may be called multiple times.
202
+ */
203
+ once: function (program: Program, diagnostic: Diagnostic & { target: DiagnosticTarget }) {
204
+ const codes = getAppliedCodesForTarget(program, diagnostic.target);
205
+
206
+ if (codes.has(diagnostic.code)) {
207
+ return;
208
+ }
209
+
210
+ codes.add(diagnostic.code);
211
+ TypeSpecProtobufLibrary.reportDiagnostic(program, diagnostic);
212
+ },
213
+ });
163
214
 
164
215
  export type TypeSpecProtobufLibrary = typeof TypeSpecProtobufLibrary;
165
216
 
@@ -7,10 +7,12 @@ import {
7
7
  formatDiagnostic,
8
8
  getDoc,
9
9
  getEffectiveModelType,
10
+ getFriendlyName,
10
11
  getTypeName,
11
12
  Interface,
12
13
  IntrinsicType,
13
14
  isDeclaredInNamespace,
15
+ isTemplateInstance,
14
16
  Model,
15
17
  ModelProperty,
16
18
  Namespace,
@@ -346,7 +348,7 @@ function tspToProto(program: Program, emitterOptions: ProtobufEmitterOptions): P
346
348
  return ref(extern[1]);
347
349
  }
348
350
 
349
- return ref(model.name);
351
+ return ref(getModelName(model));
350
352
  }
351
353
 
352
354
  /**
@@ -460,7 +462,7 @@ function tspToProto(program: Program, emitterOptions: ProtobufEmitterOptions): P
460
462
 
461
463
  const effectiveModel = computeEffectiveModel(m, capitalize(operation.name) + "Response");
462
464
  if (effectiveModel) {
463
- return ref(effectiveModel.name);
465
+ return ref(getModelName(effectiveModel));
464
466
  }
465
467
 
466
468
  reportDiagnostic(program, {
@@ -507,8 +509,10 @@ function tspToProto(program: Program, emitterOptions: ProtobufEmitterOptions): P
507
509
  });
508
510
  return unreachable("anonymous model");
509
511
  }
512
+
510
513
  visitModel(t, relativeSource);
511
- return ref(t.name);
514
+
515
+ return ref(getModelName(t));
512
516
  case "Enum":
513
517
  visitEnum(t);
514
518
  return ref(t.name);
@@ -683,13 +687,43 @@ function tspToProto(program: Program, emitterOptions: ProtobufEmitterOptions): P
683
687
  function toMessage(model: Model): ProtoMessageDeclaration {
684
688
  return {
685
689
  kind: "message",
686
- name: model.name,
690
+ name: getModelName(model),
687
691
  reservations: program.stateMap(state.reserve).get(model),
688
692
  declarations: [...model.properties.values()].map((f) => toMessageBodyDeclaration(f, model)),
689
693
  doc: getDoc(program, model),
690
694
  };
691
695
  }
692
696
 
697
+ function getModelName(model: Model): string {
698
+ const friendlyName = getFriendlyName(program, model);
699
+
700
+ if (friendlyName) return capitalize(friendlyName);
701
+
702
+ const templateArguments = isTemplateInstance(model) ? model.templateMapper!.args : [];
703
+
704
+ const prefix = templateArguments
705
+ .map(function getTypePrefixName(arg, idx) {
706
+ if ("name" in arg && typeof arg.name === "string" && arg.name !== "")
707
+ return capitalize(arg.name!);
708
+ else {
709
+ reportDiagnostic.once(program, {
710
+ code: "unspeakable-template-argument",
711
+ // TODO-WILL - I'd rather attach the diagnostic to the template argument, but it's the best I can do for
712
+ // now to attach it to the model itself.
713
+ target: model,
714
+ format: {
715
+ name: model.name,
716
+ },
717
+ });
718
+
719
+ return `T${idx}`;
720
+ }
721
+ })
722
+ .join("");
723
+
724
+ return prefix + capitalize(model.name);
725
+ }
726
+
693
727
  /**
694
728
  * @param property - the ModelProperty to convert
695
729
  * @returns a corresponding declaration