@typespec/rest 0.44.0-dev.2 → 0.44.0-dev.5

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.
package/dist/src/lib.d.ts CHANGED
@@ -17,8 +17,11 @@ declare const restLib: import("@typespec/compiler").TypeSpecLibrary<{
17
17
  "invalid-action-name": {
18
18
  readonly default: "Action name cannot be empty string.";
19
19
  };
20
+ "shared-route-unspecified-action-name": {
21
+ readonly default: import("@typespec/compiler").CallableMessage<["decoratorName"]>;
22
+ };
20
23
  }, Record<string, any>>;
21
- declare const reportDiagnostic: <C extends "not-key-type" | "resource-missing-key" | "resource-missing-error" | "duplicate-key" | "duplicate-parent-key" | "invalid-action-name", M extends keyof {
24
+ declare const reportDiagnostic: <C extends "not-key-type" | "resource-missing-key" | "resource-missing-error" | "duplicate-key" | "duplicate-parent-key" | "invalid-action-name" | "shared-route-unspecified-action-name", M extends keyof {
22
25
  "not-key-type": {
23
26
  readonly default: "Cannot copy keys from a non-key type (KeysOf<T> or ParentKeysOf<T>)";
24
27
  };
@@ -37,6 +40,9 @@ declare const reportDiagnostic: <C extends "not-key-type" | "resource-missing-ke
37
40
  "invalid-action-name": {
38
41
  readonly default: "Action name cannot be empty string.";
39
42
  };
43
+ "shared-route-unspecified-action-name": {
44
+ readonly default: import("@typespec/compiler").CallableMessage<["decoratorName"]>;
45
+ };
40
46
  }[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
41
47
  "not-key-type": {
42
48
  readonly default: "Cannot copy keys from a non-key type (KeysOf<T> or ParentKeysOf<T>)";
@@ -56,7 +62,10 @@ declare const reportDiagnostic: <C extends "not-key-type" | "resource-missing-ke
56
62
  "invalid-action-name": {
57
63
  readonly default: "Action name cannot be empty string.";
58
64
  };
59
- }, C, M>) => void, createDiagnostic: <C extends "not-key-type" | "resource-missing-key" | "resource-missing-error" | "duplicate-key" | "duplicate-parent-key" | "invalid-action-name", M extends keyof {
65
+ "shared-route-unspecified-action-name": {
66
+ readonly default: import("@typespec/compiler").CallableMessage<["decoratorName"]>;
67
+ };
68
+ }, C, M>) => void, createDiagnostic: <C extends "not-key-type" | "resource-missing-key" | "resource-missing-error" | "duplicate-key" | "duplicate-parent-key" | "invalid-action-name" | "shared-route-unspecified-action-name", M extends keyof {
60
69
  "not-key-type": {
61
70
  readonly default: "Cannot copy keys from a non-key type (KeysOf<T> or ParentKeysOf<T>)";
62
71
  };
@@ -75,6 +84,9 @@ declare const reportDiagnostic: <C extends "not-key-type" | "resource-missing-ke
75
84
  "invalid-action-name": {
76
85
  readonly default: "Action name cannot be empty string.";
77
86
  };
87
+ "shared-route-unspecified-action-name": {
88
+ readonly default: import("@typespec/compiler").CallableMessage<["decoratorName"]>;
89
+ };
78
90
  }[C]>(diag: import("@typespec/compiler").DiagnosticReport<{
79
91
  "not-key-type": {
80
92
  readonly default: "Cannot copy keys from a non-key type (KeysOf<T> or ParentKeysOf<T>)";
@@ -94,6 +106,9 @@ declare const reportDiagnostic: <C extends "not-key-type" | "resource-missing-ke
94
106
  "invalid-action-name": {
95
107
  readonly default: "Action name cannot be empty string.";
96
108
  };
109
+ "shared-route-unspecified-action-name": {
110
+ readonly default: import("@typespec/compiler").CallableMessage<["decoratorName"]>;
111
+ };
97
112
  }, C, M>) => import("@typespec/compiler").Diagnostic, createStateSymbol: (name: string) => symbol;
98
113
  export { restLib, reportDiagnostic, createDiagnostic, createStateSymbol };
99
114
  //# sourceMappingURL=lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AA4CA,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;uBAAuC,CAAC;AACrD,QAAA,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAE,iBAAiB,0BAAY,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAkDA,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;uBAAuC,CAAC;AACrD,QAAA,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAE,iBAAiB,0BAAY,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
package/dist/src/lib.js CHANGED
@@ -38,6 +38,12 @@ const libDefinition = {
38
38
  default: "Action name cannot be empty string.",
39
39
  },
40
40
  },
41
+ "shared-route-unspecified-action-name": {
42
+ severity: "error",
43
+ messages: {
44
+ default: paramMessage `An operation marked as '@sharedRoute' must have an explicit collection action name passed to '${"decoratorName"}'.`,
45
+ },
46
+ },
41
47
  },
42
48
  };
43
49
  const restLib = createTypeSpecLibrary(libDefinition);
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,aAAa,GAAG;IACpB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE;QACX,cAAc,EAAE;YACd,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,qEAAqE;aAC/E;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,SAAS,WAAW,qGAAqG;aAC/I;SACF;QACD,wBAAwB,EAAE;YACxB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,SAAS,WAAW,6EAA6E;aACvH;SACF;QACD,eAAe,EAAE;YACf,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,yCAAyC,cAAc,EAAE;aAC/E;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,kBAAkB,cAAc,+BAA+B,SAAS,oEAAoE;aAClK;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,qCAAqC;aAC/C;SACF;KACF;CACO,CAAC;AAEX,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;AACrD,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,aAAa,GAAG;IACpB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE;QACX,cAAc,EAAE;YACd,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,qEAAqE;aAC/E;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,SAAS,WAAW,qGAAqG;aAC/I;SACF;QACD,wBAAwB,EAAE;YACxB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,SAAS,WAAW,6EAA6E;aACvH;SACF;QACD,eAAe,EAAE;YACf,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,yCAAyC,cAAc,EAAE;aAC/E;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,kBAAkB,cAAc,+BAA+B,SAAS,oEAAoE;aAClK;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,qCAAqC;aAC/C;SACF;QACD,sCAAsC,EAAE;YACtC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,iGAAiG,eAAe,IAAI;aAC1I;SACF;KACF;CACO,CAAC;AAEX,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;AACrD,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -65,9 +65,37 @@ export declare function $deletesResource(context: DecoratorContext, entity: Oper
65
65
  export declare function $listsResource(context: DecoratorContext, entity: Operation, resourceType: Model): void;
66
66
  export declare function $actionSegment(context: DecoratorContext, entity: Operation, name: string): void;
67
67
  export declare function getActionSegment(program: Program, entity: Type): string | undefined;
68
+ /**
69
+ * Provides details about an action or collection action.
70
+ */
71
+ export interface ActionDetails {
72
+ /**
73
+ * The name of the action
74
+ */
75
+ name: string;
76
+ /**
77
+ * Identifies whether the action's name was generated from the original
78
+ * operation name or if it was explicitly specified.
79
+ */
80
+ kind: "automatic" | "specified";
81
+ }
68
82
  export declare function $action(context: DecoratorContext, entity: Operation, name?: string): void;
83
+ /**
84
+ * Gets the ActionDetails for the specified operation if it has previously been marked with @action.
85
+ */
86
+ export declare function getActionDetails(program: Program, operation: Operation): ActionDetails | undefined;
87
+ /**
88
+ * @deprecated Use getActionDetails instead.
89
+ */
69
90
  export declare function getAction(program: Program, operation: Operation): string | null | undefined;
70
91
  export declare function $collectionAction(context: DecoratorContext, entity: Operation, resourceType: Model, name?: string): void;
92
+ /**
93
+ * Gets the ActionDetails for the specified operation if it has previously been marked with @collectionAction.
94
+ */
95
+ export declare function getCollectionActionDetails(program: Program, operation: Operation): ActionDetails | undefined;
96
+ /**
97
+ * @deprecated Use getCollectionActionDetails instead.
98
+ */
71
99
  export declare function getCollectionAction(program: Program, operation: Operation): string | null | undefined;
72
100
  export declare function $resourceLocation(context: DecoratorContext, entity: Model, resourceType: Model): void;
73
101
  export declare function getResourceLocationType(program: Program, entity: Scalar): Model | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/rest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/rest.ts"],"names":[],"mappings":"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"}
package/dist/src/rest.js CHANGED
@@ -34,7 +34,9 @@ const resourceOperationToVerb = {
34
34
  function getResourceOperationHttpVerb(program, operation) {
35
35
  var _a, _b;
36
36
  const resourceOperation = getResourceOperation(program, operation);
37
- return ((_b = (_a = getOperationVerb(program, operation)) !== null && _a !== void 0 ? _a : (resourceOperation && resourceOperationToVerb[resourceOperation.operation])) !== null && _b !== void 0 ? _b : (getAction(program, operation) || getCollectionAction(program, operation) ? "post" : undefined));
37
+ return ((_b = (_a = getOperationVerb(program, operation)) !== null && _a !== void 0 ? _a : (resourceOperation && resourceOperationToVerb[resourceOperation.operation])) !== null && _b !== void 0 ? _b : (getActionDetails(program, operation) || getCollectionActionDetails(program, operation)
38
+ ? "post"
39
+ : undefined));
38
40
  }
39
41
  function autoRouteProducer(program, operation, parentSegments, overloadBase, options) {
40
42
  var _a, _b, _c, _d;
@@ -267,7 +269,10 @@ function lowerCaseFirstChar(str) {
267
269
  return str[0].toLocaleLowerCase() + str.substring(1);
268
270
  }
269
271
  function makeActionName(op, name) {
270
- return lowerCaseFirstChar(name || op.name);
272
+ return {
273
+ name: lowerCaseFirstChar(name || op.name),
274
+ kind: name ? "specified" : "automatic",
275
+ };
271
276
  }
272
277
  const actionsSegmentKey = createStateSymbol("actionSegment");
273
278
  export function $actionSegment(context, entity, name) {
@@ -286,12 +291,22 @@ export function $action(context, entity, name) {
286
291
  return;
287
292
  }
288
293
  const action = makeActionName(entity, name);
289
- context.call($actionSegment, entity, action);
294
+ context.call($actionSegment, entity, action.name);
290
295
  context.program.stateMap(actionsKey).set(entity, action);
291
296
  }
292
- export function getAction(program, operation) {
297
+ /**
298
+ * Gets the ActionDetails for the specified operation if it has previously been marked with @action.
299
+ */
300
+ export function getActionDetails(program, operation) {
293
301
  return program.stateMap(actionsKey).get(operation);
294
302
  }
303
+ /**
304
+ * @deprecated Use getActionDetails instead.
305
+ */
306
+ export function getAction(program, operation) {
307
+ var _a;
308
+ return (_a = getActionDetails(program, operation)) === null || _a === void 0 ? void 0 : _a.name;
309
+ }
295
310
  const collectionActionsKey = createStateSymbol("collectionActions");
296
311
  export function $collectionAction(context, entity, resourceType, name) {
297
312
  if (resourceType.kind === "TemplateParameter") {
@@ -304,12 +319,24 @@ export function $collectionAction(context, entity, resourceType, name) {
304
319
  context.call($segment, entity, segment);
305
320
  }
306
321
  const action = makeActionName(entity, name);
307
- context.call($actionSegment, entity, action);
308
- context.program.stateMap(collectionActionsKey).set(entity, `${segment}/${action}`);
322
+ context.call($actionSegment, entity, action.name);
323
+ // Update the final name and store it
324
+ action.name = `${segment}/${action.name}`;
325
+ context.program.stateMap(collectionActionsKey).set(entity, action);
309
326
  }
310
- export function getCollectionAction(program, operation) {
327
+ /**
328
+ * Gets the ActionDetails for the specified operation if it has previously been marked with @collectionAction.
329
+ */
330
+ export function getCollectionActionDetails(program, operation) {
311
331
  return program.stateMap(collectionActionsKey).get(operation);
312
332
  }
333
+ /**
334
+ * @deprecated Use getCollectionActionDetails instead.
335
+ */
336
+ export function getCollectionAction(program, operation) {
337
+ var _a;
338
+ return (_a = getCollectionActionDetails(program, operation)) === null || _a === void 0 ? void 0 : _a.name;
339
+ }
313
340
  const resourceLocationsKey = createStateSymbol("resourceLocations");
314
341
  export function $resourceLocation(context, entity, resourceType) {
315
342
  if (resourceType.kind === "TemplateParameter") {
@@ -1 +1 @@
1
- {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/rest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/rest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,OAAO,EACR,MAAM,oBAAoB,CAAC;AAsD5B,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAI3C"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,OAAO,EACR,MAAM,oBAAoB,CAAC;AAkF5B,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAQ3C"}
@@ -1,6 +1,8 @@
1
1
  import { DuplicateTracker, getKeyName, getTypeName, listServices, navigateTypesInNamespace, } from "@typespec/compiler";
2
+ import { isSharedRoute } from "@typespec/http";
2
3
  import { reportDiagnostic } from "./lib.js";
3
4
  import { getParentResource, getResourceTypeKey } from "./resource.js";
5
+ import { getActionDetails, getCollectionActionDetails } from "./rest.js";
4
6
  function checkForDuplicateResourceKeyNames(program) {
5
7
  const seenTypes = new Set();
6
8
  function checkResourceModelKeys(model) {
@@ -46,9 +48,36 @@ function checkForDuplicateResourceKeyNames(program) {
46
48
  });
47
49
  }
48
50
  }
51
+ function checkForSharedRouteUnnamedActions(program) {
52
+ for (const service of listServices(program)) {
53
+ // If the model type is defined under the service namespace, check that the
54
+ // parent resource type(s) don't have the same key name as the
55
+ // current resource type.
56
+ navigateTypesInNamespace(service.type, {
57
+ operation: (op) => {
58
+ var _a;
59
+ const actionDetails = getActionDetails(program, op);
60
+ if (isSharedRoute(program, op) &&
61
+ ((actionDetails === null || actionDetails === void 0 ? void 0 : actionDetails.kind) === "automatic" ||
62
+ ((_a = getCollectionActionDetails(program, op)) === null || _a === void 0 ? void 0 : _a.kind) === "automatic")) {
63
+ reportDiagnostic(program, {
64
+ code: "shared-route-unspecified-action-name",
65
+ target: op,
66
+ format: {
67
+ decoratorName: actionDetails ? "@action" : "@collectionAction",
68
+ },
69
+ });
70
+ }
71
+ },
72
+ });
73
+ }
74
+ }
49
75
  export function $onValidate(program) {
50
76
  // Make sure any defined resource types don't have any conflicts with parent
51
77
  // resource type key names
52
78
  checkForDuplicateResourceKeyNames(program);
79
+ // Ensure that all shared routes with an `@action` decorator have an
80
+ // explicitly named action
81
+ checkForSharedRouteUnnamedActions(program);
53
82
  }
54
83
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,YAAY,EAEZ,wBAAwB,GAEzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAe,MAAM,eAAe,CAAC;AAEnF,SAAS,iCAAiC,CAAC,OAAgB;IACzD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,SAAS,sBAAsB,CAAC,KAAY;QAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE;YACrB,OAAO;SACR;QACD,IAAI,WAAW,GAAsB,KAAK,CAAC;QAC3C,MAAM,aAAa,GAAG,IAAI,gBAAgB,EAAuB,CAAC;QAClE,OAAO,WAAW,EAAE;YAClB,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACf,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;gBAC7D,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;aAC3C;YAED,WAAW,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;SACvD;QAED,6CAA6C;QAC7C,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE;YACtD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;gBACvB,yDAAyD;gBACzD,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBAC5B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACxB,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,sBAAsB;wBAC5B,MAAM,EAAE;4BACN,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI;4BACnC,OAAO;yBACR;wBACD,MAAM,EAAE,GAAG,CAAC,WAAW;qBACxB,CAAC,CAAC;iBACJ;aACF;SACF;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;QAC3C,2EAA2E;QAC3E,8DAA8D;QAC9D,yBAAyB;QACzB,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC;SAChD,CAAC,CAAC;KACJ;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,4EAA4E;IAC5E,0BAA0B;IAC1B,iCAAiC,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
package/lib/resource.tsp CHANGED
@@ -15,21 +15,37 @@ model ResourceError {
15
15
  message: string;
16
16
  }
17
17
 
18
+ /**
19
+ * Dynamically gathers keys of the model type T.
20
+ * @template T The target model.
21
+ */
18
22
  @doc("Dynamically gathers keys of the model type T.")
19
23
  @copyResourceKeyParameters
20
24
  @friendlyName("{name}Key", T)
21
25
  model KeysOf<T> {}
22
26
 
27
+ /**
28
+ * Dynamically gathers parent keys of the model type T.
29
+ * @template T The target model.
30
+ */
23
31
  @doc("Dynamically gathers parent keys of the model type T.")
24
32
  @copyResourceKeyParameters("parent")
25
33
  @friendlyName("{name}ParentKey", T)
26
34
  model ParentKeysOf<T> {}
27
35
 
36
+ /**
37
+ * Represents operation parameters for resource TResource.
38
+ * @template TResource The resource model.
39
+ */
28
40
  @doc("Represents operation parameters for resource TResource.")
29
41
  model ResourceParameters<TResource extends object> {
30
42
  ...KeysOf<TResource>;
31
43
  }
32
44
 
45
+ /**
46
+ * Represents collection operation parameters for resource TResource.
47
+ * @template TResource The resource model.
48
+ */
33
49
  @doc("Represents collection operation parameters for resource TResource.")
34
50
  model ResourceCollectionParameters<TResource extends object> {
35
51
  ...ParentKeysOf<TResource>;
@@ -49,12 +65,21 @@ interface ResourceRead<TResource extends object, TError> {
49
65
  get(...ResourceParameters<TResource>): TResource | TError;
50
66
  }
51
67
 
68
+ /**
69
+ * Resource create operation completed successfully.
70
+ * @template T The resource model that was created.
71
+ */
52
72
  @doc("Resource create operation completed successfully.")
53
73
  model ResourceCreatedResponse<T> {
54
74
  ...CreatedResponse;
55
75
  @body body: T;
56
76
  }
57
77
 
78
+ /**
79
+ * Resource create or replace operation template.
80
+ * @template TResource The resource model to create or replace.
81
+ * @template TError The error response.
82
+ */
58
83
  interface ResourceCreateOrReplace<TResource extends object, TError> {
59
84
  @autoRoute
60
85
  @doc("Creates or replaces a instance of the resource.")
@@ -65,10 +90,19 @@ interface ResourceCreateOrReplace<TResource extends object, TError> {
65
90
  ): TResource | ResourceCreatedResponse<TResource> | TError;
66
91
  }
67
92
 
93
+ /**
94
+ * Resource create or update operation model.
95
+ * @template TResource The resource model to create or update.
96
+ */
68
97
  @friendlyName("{name}Update", TResource)
69
98
  model ResourceCreateOrUpdateModel<TResource extends object>
70
99
  is OptionalProperties<UpdateableProperties<DefaultKeyVisibility<TResource, "read">>>;
71
100
 
101
+ /**
102
+ * Resource create or update operation template.
103
+ * @template TResource The resource model to create or update.
104
+ * @template TError The error response.
105
+ */
72
106
  interface ResourceCreateOrUpdate<TResource extends object, TError> {
73
107
  @autoRoute
74
108
  @doc("Creates or update a instance of the resource.")
@@ -79,10 +113,19 @@ interface ResourceCreateOrUpdate<TResource extends object, TError> {
79
113
  ): TResource | ResourceCreatedResponse<TResource> | TError;
80
114
  }
81
115
 
116
+ /**
117
+ * Resource create operation model.
118
+ * @template TResource The resource model to create.
119
+ */
82
120
  @friendlyName("{name}Create", TResource)
83
121
  model ResourceCreateModel<TResource extends object>
84
122
  is UpdateableProperties<DefaultKeyVisibility<TResource, "read">>;
85
123
 
124
+ /**
125
+ * Resource create operation template.
126
+ * @template TResource The resource model to create.
127
+ * @template TError The error response.
128
+ */
86
129
  interface ResourceCreate<TResource extends object, TError> {
87
130
  @autoRoute
88
131
  @doc("Creates a new instance of the resource.")
@@ -93,6 +136,11 @@ interface ResourceCreate<TResource extends object, TError> {
93
136
  ): TResource | ResourceCreatedResponse<TResource> | TError;
94
137
  }
95
138
 
139
+ /**
140
+ * Resource update operation template.
141
+ * @template TResource The resource model to update.
142
+ * @template TError The error response.
143
+ */
96
144
  @Private.validateHasKey(TResource)
97
145
  @Private.validateIsError(TError)
98
146
  interface ResourceUpdate<TResource extends object, TError> {
@@ -112,6 +160,11 @@ model ResourceDeletedResponse {
112
160
  _: 200;
113
161
  }
114
162
 
163
+ /**
164
+ * Resource delete operation template.
165
+ * @template TResource The resource model to delete.
166
+ * @template TError The error response.
167
+ */
115
168
  @Private.validateHasKey(TResource)
116
169
  @Private.validateIsError(TError)
117
170
  interface ResourceDelete<TResource extends object, TError> {
@@ -125,6 +178,7 @@ interface ResourceDelete<TResource extends object, TError> {
125
178
  * Structure for a paging response using `value` and `nextLink` to represent pagination.
126
179
  * This only provides the model structure and not actual pagination support.
127
180
  * See https://github.com/microsoft/typespec/issues/705 for general paging support.
181
+ * @template T The resource type of the collection.
128
182
  */
129
183
  @doc("Paged response of {name} items", T)
130
184
  @friendlyName("{name}CollectionWithNextLink", T)
@@ -136,6 +190,11 @@ model CollectionWithNextLink<T extends object> {
136
190
  nextLink?: ResourceLocation<T>;
137
191
  }
138
192
 
193
+ /**
194
+ * Resource list operation template.
195
+ * @template TResource The resource model to list.
196
+ * @template TError The error response.
197
+ */
139
198
  interface ResourceList<TResource extends object, TError> {
140
199
  @autoRoute
141
200
  @doc("Lists all instances of the resource.")
@@ -143,6 +202,11 @@ interface ResourceList<TResource extends object, TError> {
143
202
  list(...ResourceCollectionParameters<TResource>): CollectionWithNextLink<TResource> | TError;
144
203
  }
145
204
 
205
+ /**
206
+ * Resource operation templates for resource instances.
207
+ * @template TResource The resource model.
208
+ * @template TError The error response.
209
+ */
146
210
  @Private.validateHasKey(TResource)
147
211
  @Private.validateIsError(TError)
148
212
  interface ResourceInstanceOperations<TResource extends object, TError>
@@ -150,18 +214,34 @@ interface ResourceInstanceOperations<TResource extends object, TError>
150
214
  ResourceUpdate<TResource, TError>,
151
215
  ResourceDelete<TResource, TError> {}
152
216
 
217
+ /**
218
+ * Resource operation templates for resource collections.
219
+ * @template TResource The resource model.
220
+ * @template TError The error response.
221
+ */
153
222
  @Private.validateHasKey(TResource)
154
223
  @Private.validateIsError(TError)
155
224
  interface ResourceCollectionOperations<TResource extends object, TError>
156
225
  extends ResourceCreate<TResource, TError>,
157
226
  ResourceList<TResource, TError> {}
158
227
 
228
+ /**
229
+ * Resource operation templates for resources.
230
+ * @template TResource The resource model.
231
+ * @template TError The error response.
232
+ */
159
233
  @Private.validateHasKey(TResource)
160
234
  @Private.validateIsError(TError)
161
235
  interface ResourceOperations<TResource extends object, TError>
162
236
  extends ResourceInstanceOperations<TResource, TError>,
163
237
  ResourceCollectionOperations<TResource, TError> {}
164
238
 
239
+ /**
240
+ * Singleton resource read operation template.
241
+ * @template TSingleton The singleton resource model.
242
+ * @template TResource The resource model.
243
+ * @template TError The error response.
244
+ */
165
245
  @Private.validateHasKey(TResource)
166
246
  @Private.validateIsError(TError)
167
247
  interface SingletonResourceRead<TSingleton extends object, TResource extends object, TError> {
@@ -172,6 +252,12 @@ interface SingletonResourceRead<TSingleton extends object, TResource extends obj
172
252
  Get(...ResourceParameters<TResource>): TSingleton | TError;
173
253
  }
174
254
 
255
+ /**
256
+ * Singleton resource update operation template.
257
+ * @template TSingleton The singleton resource model.
258
+ * @template TResource The resource model.
259
+ * @template TError The error response.
260
+ */
175
261
  @Private.validateHasKey(TResource)
176
262
  @Private.validateIsError(TError)
177
263
  interface SingletonResourceUpdate<TSingleton extends object, TResource extends object, TError> {
@@ -187,10 +273,22 @@ interface SingletonResourceUpdate<TSingleton extends object, TResource extends o
187
273
  ): TSingleton | TError;
188
274
  }
189
275
 
276
+ /**
277
+ * Singleton resource operation templates for singleton resource instances.
278
+ * @template TSingleton The singleton resource model.
279
+ * @template TResource The resource model.
280
+ * @template TError The error response.
281
+ */
190
282
  interface SingletonResourceOperations<TSingleton extends object, TResource extends object, TError>
191
283
  extends SingletonResourceRead<TSingleton, TResource, TError>,
192
284
  SingletonResourceUpdate<TSingleton, TResource, TError> {}
193
285
 
286
+ /**
287
+ * Extension resource read operation template.
288
+ * @template TExtension The extension resource model.
289
+ * @template TResource The resource model.
290
+ * @template TError The error response.
291
+ */
194
292
  @Private.validateHasKey(TResource)
195
293
  @Private.validateIsError(TError)
196
294
  interface ExtensionResourceRead<TExtension extends object, TResource extends object, TError> {
@@ -200,6 +298,12 @@ interface ExtensionResourceRead<TExtension extends object, TResource extends obj
200
298
  Get(...ResourceParameters<TResource>, ...ResourceParameters<TExtension>): TExtension | TError;
201
299
  }
202
300
 
301
+ /**
302
+ * Extension resource create or update operation template.
303
+ * @template TExtension The extension resource model.
304
+ * @template TResource The resource model.
305
+ * @template TError The error response.
306
+ */
203
307
  interface ExtensionResourceCreateOrUpdate<
204
308
  TExtension extends object,
205
309
  TResource extends object,
@@ -215,6 +319,12 @@ interface ExtensionResourceCreateOrUpdate<
215
319
  ): TExtension | ResourceCreatedResponse<TExtension> | TError;
216
320
  }
217
321
 
322
+ /**
323
+ * Extension resource create operation template.
324
+ * @template TExtension The extension resource model.
325
+ * @template TResource The resource model.
326
+ * @template TError The error response.
327
+ */
218
328
  interface ExtensionResourceCreate<TExtension extends object, TResource extends object, TError> {
219
329
  @autoRoute
220
330
  @doc("Creates a new instance of the extension resource.")
@@ -225,6 +335,12 @@ interface ExtensionResourceCreate<TExtension extends object, TResource extends o
225
335
  ): TExtension | ResourceCreatedResponse<TExtension> | TError;
226
336
  }
227
337
 
338
+ /**
339
+ * Extension resource update operation template.
340
+ * @template TExtension The extension resource model.
341
+ * @template TResource The resource model.
342
+ * @template TError The error response.
343
+ */
228
344
  interface ExtensionResourceUpdate<TExtension extends object, TResource extends object, TError> {
229
345
  @autoRoute
230
346
  @doc("Updates an existing instance of the extension resource.")
@@ -238,6 +354,12 @@ interface ExtensionResourceUpdate<TExtension extends object, TResource extends o
238
354
  ): TExtension | TError;
239
355
  }
240
356
 
357
+ /**
358
+ * Extension resource delete operation template.
359
+ * @template TExtension The extension resource model.
360
+ * @template TResource The resource model.
361
+ * @template TError The error response.
362
+ */
241
363
  interface ExtensionResourceDelete<TExtension extends object, TResource extends object, TError> {
242
364
  @autoRoute
243
365
  @doc("Deletes an existing instance of the extension resource.")
@@ -248,6 +370,12 @@ interface ExtensionResourceDelete<TExtension extends object, TResource extends o
248
370
  ): ResourceDeletedResponse | TError;
249
371
  }
250
372
 
373
+ /**
374
+ * Extension resource list operation template.
375
+ * @template TExtension The extension resource model.
376
+ * @template TResource The resource model.
377
+ * @template TError The error response.
378
+ */
251
379
  interface ExtensionResourceList<TExtension extends object, TResource extends object, TError> {
252
380
  @autoRoute
253
381
  @doc("Lists all instances of the extension resource.")
@@ -258,6 +386,12 @@ interface ExtensionResourceList<TExtension extends object, TResource extends obj
258
386
  ): CollectionWithNextLink<TExtension> | TError;
259
387
  }
260
388
 
389
+ /**
390
+ * Extension resource operation templates for extension resource instances.
391
+ * @template TExtension The extension resource model.
392
+ * @template TResource The resource model.
393
+ * @template TError The error response.
394
+ */
261
395
  interface ExtensionResourceInstanceOperations<
262
396
  TExtension extends object,
263
397
  TResource extends object,
@@ -267,6 +401,12 @@ interface ExtensionResourceInstanceOperations<
267
401
  ExtensionResourceUpdate<TExtension, TResource, TError>,
268
402
  ExtensionResourceDelete<TExtension, TResource, TError> {}
269
403
 
404
+ /**
405
+ * Extension resource operation templates for extension resource collections.
406
+ * @template TExtension The extension resource model.
407
+ * @template TResource The resource model.
408
+ * @template TError The error response.
409
+ */
270
410
  interface ExtensionResourceCollectionOperations<
271
411
  TExtension extends object,
272
412
  TResource extends object,
@@ -275,6 +415,12 @@ interface ExtensionResourceCollectionOperations<
275
415
  extends ExtensionResourceCreate<TExtension, TResource, TError>,
276
416
  ExtensionResourceList<TExtension, TResource, TError> {}
277
417
 
418
+ /**
419
+ * Extension resource operation templates for extension resource instances and collections.
420
+ * @template TExtension The extension resource model.
421
+ * @template TResource The resource model.
422
+ * @template TError The error response.
423
+ */
278
424
  interface ExtensionResourceOperations<TExtension extends object, TResource extends object, TError>
279
425
  extends ExtensionResourceInstanceOperations<TExtension, TResource, TError>,
280
426
  ExtensionResourceCollectionOperations<TExtension, TResource, TError> {}
@@ -31,6 +31,7 @@ extern dec segment(target: Model | ModelProperty | Operation, name: string);
31
31
 
32
32
  /**
33
33
  * Returns the URL segment of a given model if it has `@segment` and `@key` decorator.
34
+ * @param type Target model
34
35
  */
35
36
  extern dec segmentOf(target: Operation, type: Model);
36
37
 
@@ -51,59 +52,62 @@ extern dec resource(target: Model, collectionName: string);
51
52
  /**
52
53
  * Specify that this is a Read operation for a given resource.
53
54
  *
54
- * @param resource Resource marked with @resource
55
+ * @param resourceType Resource marked with @resource
55
56
  */
56
57
  extern dec readsResource(target: Operation, resourceType: Model);
57
58
 
58
59
  /**
59
60
  * Specify that this is a Create operation for a given resource.
60
61
  *
61
- * @param resource Resource marked with @resource
62
+ * @param resourceType Resource marked with @resource
62
63
  */
63
64
  extern dec createsResource(target: Operation, resourceType: Model);
64
65
 
65
66
  /**
66
67
  * Specify that this is a CreateOrReplace operation for a given resource.
67
68
  *
68
- * @param resource Resource marked with @resource
69
+ * @param resourceType Resource marked with @resource
69
70
  */
70
71
  extern dec createsOrReplacesResource(target: Operation, resourceType: Model);
71
72
 
72
73
  /**
73
74
  * Specify that this is a CreatesOrUpdate operation for a given resource.
74
75
  *
75
- * @param resource Resource marked with @resource
76
+ * @param resourceType Resource marked with @resource
76
77
  */
77
78
  extern dec createsOrUpdatesResource(target: Operation, resourceType: Model);
78
79
 
79
80
  /**
80
81
  * Specify that this is a Update operation for a given resource.
81
82
  *
82
- * @param resource Resource marked with @resource
83
+ * @param resourceType Resource marked with @resource
83
84
  */
84
85
  extern dec updatesResource(target: Operation, resourceType: Model);
85
86
 
86
87
  /**
87
88
  * Specify that this is a Delete operation for a given resource.
88
89
  *
89
- * @param resource Resource marked with @resource
90
+ * @param resourceType Resource marked with @resource
90
91
  */
91
92
  extern dec deletesResource(target: Operation, resourceType: Model);
92
93
 
93
94
  /**
94
95
  * Specify that this is a List operation for a given resource.
95
96
  *
96
- * @param resource Resource marked with @resource
97
+ * @param resourceType Resource marked with @resource
97
98
  */
98
99
  extern dec listsResource(target: Operation, resourceType: Model);
99
100
 
100
101
  /**
101
- * Specify this operation is an action. (Scopped to a resource item /pets/{petId}/my-action)
102
+ * Specify this operation is an action. (Scoped to a resource item /pets/{petId}/my-action)
103
+ * @param name Name of the action. If not specified, the name of the operation will be used.
102
104
  */
103
105
  extern dec action(target: Operation, name?: string);
104
106
 
105
107
  /**
106
108
  * Specify this operation is a collection action. (Scopped to a resource, /pets/my-action)
109
+ * @param resourceType Resource marked with @resource
110
+ * @param name Name of the action. If not specified, the name of the operation will be used.
107
111
  */
108
112
  extern dec collectionAction(target: Operation, resourceType: Model, name?: string);
109
113
 
package/lib/rest.tsp CHANGED
@@ -4,6 +4,10 @@ import "./resource.tsp";
4
4
 
5
5
  namespace TypeSpec.Rest;
6
6
 
7
+ /**
8
+ * A URL that points to a resource.
9
+ * @template TResource The type of resource that the URL points to.
10
+ */
7
11
  @doc("The location of an instance of {name}", TResource)
8
12
  @Private.resourceLocation(TResource)
9
13
  scalar ResourceLocation<TResource extends object> extends url;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/rest",
3
- "version": "0.44.0-dev.2",
3
+ "version": "0.44.0-dev.5",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec REST protocol binding",
6
6
  "homepage": "https://microsoft.github.io/typespec",