@azure-tools/typespec-azure-core 0.28.0-dev.1 → 0.28.0-dev.2
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/decorators.d.ts +5 -0
- package/dist/src/decorators.d.ts.map +1 -1
- package/dist/src/decorators.js +20 -3
- package/dist/src/decorators.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib.d.ts +31 -1
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +12 -0
- package/dist/src/lib.js.map +1 -1
- package/dist/src/lro-helpers.d.ts +143 -0
- package/dist/src/lro-helpers.d.ts.map +1 -0
- package/dist/src/lro-helpers.js +467 -0
- package/dist/src/lro-helpers.js.map +1 -0
- package/dist/src/utils.d.ts +48 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +131 -0
- package/dist/src/utils.js.map +1 -0
- package/lib/foundations.tsp +3 -3
- package/lib/operations.tsp +4 -4
- package/package.json +1 -1
package/dist/src/decorators.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import "./index.js";
|
|
2
2
|
import { DecoratorContext, Enum, EnumMember, Model, ModelProperty, Operation, Program, Scalar, Type } from "@typespec/compiler";
|
|
3
3
|
export declare const namespace = "Azure.Core";
|
|
4
|
+
export declare const PollingOperationKey: string;
|
|
5
|
+
export declare const FinalOperationKey = "final";
|
|
4
6
|
export declare function $fixed(context: DecoratorContext, target: Enum): void;
|
|
5
7
|
export declare function isFixed(program: Program, target: Enum): boolean;
|
|
6
8
|
export declare function $pagedResult(context: DecoratorContext, entity: Type): void;
|
|
@@ -39,6 +41,7 @@ export interface LongRunningStates {
|
|
|
39
41
|
states: string[];
|
|
40
42
|
}
|
|
41
43
|
export declare function $lroStatus(context: DecoratorContext, entity: Enum | ModelProperty): void;
|
|
44
|
+
export declare function extractLroStates(program: Program, entity: Type): LongRunningStates | undefined;
|
|
42
45
|
/**
|
|
43
46
|
* Returns the `LongRunningStates` associated with `entity`.
|
|
44
47
|
*/
|
|
@@ -87,7 +90,9 @@ export declare function $pollingOperation(context: DecoratorContext, entity: Ope
|
|
|
87
90
|
export declare function $finalOperation(context: DecoratorContext, entity: Operation, linkedOperation: Operation, parameters?: Model): void;
|
|
88
91
|
export declare function $nextPageOperation(context: DecoratorContext, entity: Operation, linkedOperation: Operation, parameters?: Model): void;
|
|
89
92
|
export declare function $requestParameter(context: DecoratorContext, entity: Model, name: string): void;
|
|
93
|
+
export declare function getRequestParameter(program: Program, entity: ModelProperty): string | undefined;
|
|
90
94
|
export declare function $responseProperty(context: DecoratorContext, entity: Model, name: string): void;
|
|
95
|
+
export declare function getResponseProperty(program: Program, entity: ModelProperty): string | undefined;
|
|
91
96
|
export declare function $spreadCustomParameters(context: DecoratorContext, entity: Model, customizations: Model): void;
|
|
92
97
|
export declare function $spreadCustomResponseProperties(context: DecoratorContext, entity: Model, customizations: Model): void;
|
|
93
98
|
export declare function $ensureResourceType(context: DecoratorContext, entity: Operation, resourceType: Type): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,IAAI,EACJ,UAAU,EAOV,KAAK,EACL,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EAEN,IAAI,EAEL,MAAM,oBAAoB,CAAC;AAI5B,eAAO,MAAM,SAAS,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/src/decorators.js
CHANGED
|
@@ -4,6 +4,11 @@ import { getKnownValues, getNamespaceFullName, getTypeName, isErrorModel, isKey,
|
|
|
4
4
|
import { getOperationParameters, getResponsesForOperation, getRoutePath } from "@typespec/http";
|
|
5
5
|
import { getResourceTypeKey, getSegment, isAutoRoute } from "@typespec/rest";
|
|
6
6
|
export const namespace = "Azure.Core";
|
|
7
|
+
/*
|
|
8
|
+
* Constants for polling and final operation links
|
|
9
|
+
*/
|
|
10
|
+
export const PollingOperationKey = "polling";
|
|
11
|
+
export const FinalOperationKey = "final";
|
|
7
12
|
// @fixed
|
|
8
13
|
const fixedKey = createStateSymbol("fixed");
|
|
9
14
|
export function $fixed(context, target) {
|
|
@@ -199,7 +204,7 @@ function storeLroState(program, states, name, enumMember) {
|
|
|
199
204
|
}
|
|
200
205
|
}
|
|
201
206
|
}
|
|
202
|
-
function extractLroStates(program, entity) {
|
|
207
|
+
export function extractLroStates(program, entity) {
|
|
203
208
|
const result = { states: [] };
|
|
204
209
|
if (entity.kind === "ModelProperty") {
|
|
205
210
|
// Call the function recursively on the property type
|
|
@@ -436,13 +441,13 @@ export function $pollingOperation(context, entity, linkedOperation, parameters)
|
|
|
436
441
|
if (!validateDecoratorTarget(context, entity, "@pollingOperation", "Operation")) {
|
|
437
442
|
return;
|
|
438
443
|
}
|
|
439
|
-
context.call($operationLink, entity, linkedOperation,
|
|
444
|
+
context.call($operationLink, entity, linkedOperation, PollingOperationKey, parameters);
|
|
440
445
|
}
|
|
441
446
|
export function $finalOperation(context, entity, linkedOperation, parameters) {
|
|
442
447
|
if (!validateDecoratorTarget(context, entity, "@finalOperation", "Operation")) {
|
|
443
448
|
return;
|
|
444
449
|
}
|
|
445
|
-
context.call($operationLink, entity, linkedOperation,
|
|
450
|
+
context.call($operationLink, entity, linkedOperation, FinalOperationKey, parameters);
|
|
446
451
|
}
|
|
447
452
|
export function $nextPageOperation(context, entity, linkedOperation, parameters) {
|
|
448
453
|
if (!validateDecoratorTarget(context, entity, "@nextPageOperation", "Operation")) {
|
|
@@ -454,10 +459,22 @@ const requestParameterKey = createStateSymbol("requestParameter");
|
|
|
454
459
|
export function $requestParameter(context, entity, name) {
|
|
455
460
|
context.program.stateMap(requestParameterKey).set(entity, name);
|
|
456
461
|
}
|
|
462
|
+
export function getRequestParameter(program, entity) {
|
|
463
|
+
if (entity.type.kind !== "Model")
|
|
464
|
+
return undefined;
|
|
465
|
+
const parameterName = program.stateMap(requestParameterKey).get(entity.type);
|
|
466
|
+
return parameterName;
|
|
467
|
+
}
|
|
457
468
|
const responsePropertyKey = createStateSymbol("responseParameter");
|
|
458
469
|
export function $responseProperty(context, entity, name) {
|
|
459
470
|
context.program.stateMap(responsePropertyKey).set(entity, name);
|
|
460
471
|
}
|
|
472
|
+
export function getResponseProperty(program, entity) {
|
|
473
|
+
if (entity.type.kind !== "Model")
|
|
474
|
+
return undefined;
|
|
475
|
+
const parameterName = program.stateMap(responsePropertyKey).get(entity.type);
|
|
476
|
+
return parameterName;
|
|
477
|
+
}
|
|
461
478
|
export function $spreadCustomParameters(context, entity, customizations) {
|
|
462
479
|
var _a;
|
|
463
480
|
const customParameters = (_a = customizations.properties.get("parameters")) === null || _a === void 0 ? void 0 : _a.type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export * from "./decorators.js";
|
|
2
2
|
export { libDef } from "./lib.js";
|
|
3
3
|
export * from "./linter.js";
|
|
4
|
+
export * from "./lro-helpers.js";
|
|
4
5
|
export * from "./rules/prevent-rest-library.js";
|
|
5
6
|
export * from "./rules/use-standard-ops.js";
|
|
6
7
|
export * from "./traits.js";
|
|
8
|
+
export * from "./utils.js";
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export * from "./decorators.js";
|
|
2
2
|
export { libDef } from "./lib.js";
|
|
3
3
|
export * from "./linter.js";
|
|
4
|
+
export * from "./lro-helpers.js";
|
|
4
5
|
export * from "./rules/prevent-rest-library.js";
|
|
5
6
|
export * from "./rules/use-standard-ops.js";
|
|
6
7
|
export * from "./traits.js";
|
|
8
|
+
export * from "./utils.js";
|
|
7
9
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/dist/src/lib.d.ts
CHANGED
|
@@ -160,6 +160,18 @@ export declare const libDef: {
|
|
|
160
160
|
readonly default: import("@typespec/compiler").CallableMessage<["propertyName", "kind"]>;
|
|
161
161
|
};
|
|
162
162
|
};
|
|
163
|
+
readonly "expected-success-response": {
|
|
164
|
+
readonly severity: "error";
|
|
165
|
+
readonly messages: {
|
|
166
|
+
readonly default: "The operation must have a success response";
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
readonly "lro-polling-data-missing-from-operation-response": {
|
|
170
|
+
readonly severity: "error";
|
|
171
|
+
readonly messages: {
|
|
172
|
+
readonly default: "At least one operation response must contain a field marked with `@lroStatus`";
|
|
173
|
+
};
|
|
174
|
+
};
|
|
163
175
|
};
|
|
164
176
|
};
|
|
165
177
|
export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
|
|
@@ -243,8 +255,14 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
|
|
|
243
255
|
"invalid-parameter": {
|
|
244
256
|
readonly default: import("@typespec/compiler").CallableMessage<["propertyName", "kind"]>;
|
|
245
257
|
};
|
|
258
|
+
"expected-success-response": {
|
|
259
|
+
readonly default: "The operation must have a success response";
|
|
260
|
+
};
|
|
261
|
+
"lro-polling-data-missing-from-operation-response": {
|
|
262
|
+
readonly default: "At least one operation response must contain a field marked with `@lroStatus`";
|
|
263
|
+
};
|
|
246
264
|
}, Record<string, any>>;
|
|
247
|
-
export declare const reportDiagnostic: <C extends "casing-style" | "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "bad-record-type" | "request-parameter-invalid" | "response-property-invalid" | "no-multiple-discriminator" | "operation-link-parameter-invalid" | "client-definition-parameters-not-model" | "invalid-resource-type" | "use-extensible-enum" | "use-standard-operations" | "no-format" | "no-rest-library-interfaces" | "no-unknown" | "documentation-required" | "key-visibility-required" | "long-running-polling-operation-required" | "rpc-operation-needs-route" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "invalid-parameter", M extends keyof {
|
|
265
|
+
export declare const reportDiagnostic: <C extends "casing-style" | "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "bad-record-type" | "request-parameter-invalid" | "response-property-invalid" | "no-multiple-discriminator" | "operation-link-parameter-invalid" | "client-definition-parameters-not-model" | "invalid-resource-type" | "use-extensible-enum" | "use-standard-operations" | "no-format" | "no-rest-library-interfaces" | "no-unknown" | "documentation-required" | "key-visibility-required" | "long-running-polling-operation-required" | "rpc-operation-needs-route" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response", M extends keyof {
|
|
248
266
|
"casing-style": {
|
|
249
267
|
readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
|
|
250
268
|
};
|
|
@@ -325,6 +343,12 @@ export declare const reportDiagnostic: <C extends "casing-style" | "lro-status-u
|
|
|
325
343
|
"invalid-parameter": {
|
|
326
344
|
readonly default: import("@typespec/compiler").CallableMessage<["propertyName", "kind"]>;
|
|
327
345
|
};
|
|
346
|
+
"expected-success-response": {
|
|
347
|
+
readonly default: "The operation must have a success response";
|
|
348
|
+
};
|
|
349
|
+
"lro-polling-data-missing-from-operation-response": {
|
|
350
|
+
readonly default: "At least one operation response must contain a field marked with `@lroStatus`";
|
|
351
|
+
};
|
|
328
352
|
}[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
|
|
329
353
|
"casing-style": {
|
|
330
354
|
readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
|
|
@@ -406,5 +430,11 @@ export declare const reportDiagnostic: <C extends "casing-style" | "lro-status-u
|
|
|
406
430
|
"invalid-parameter": {
|
|
407
431
|
readonly default: import("@typespec/compiler").CallableMessage<["propertyName", "kind"]>;
|
|
408
432
|
};
|
|
433
|
+
"expected-success-response": {
|
|
434
|
+
readonly default: "The operation must have a success response";
|
|
435
|
+
};
|
|
436
|
+
"lro-polling-data-missing-from-operation-response": {
|
|
437
|
+
readonly default: "At least one operation response must contain a field marked with `@lroStatus`";
|
|
438
|
+
};
|
|
409
439
|
}, C, M>) => void, createStateSymbol: (name: string) => symbol;
|
|
410
440
|
//# sourceMappingURL=lib.d.ts.map
|
package/dist/src/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiLT,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,iBAAiB,0BAAS,CAAC"}
|
package/dist/src/lib.js
CHANGED
|
@@ -161,6 +161,18 @@ export const libDef = {
|
|
|
161
161
|
default: paramMessage `Expected property '${"propertyName"}' to be a ${"kind"} parameter.`,
|
|
162
162
|
},
|
|
163
163
|
},
|
|
164
|
+
"expected-success-response": {
|
|
165
|
+
severity: "error",
|
|
166
|
+
messages: {
|
|
167
|
+
default: "The operation must have a success response",
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
"lro-polling-data-missing-from-operation-response": {
|
|
171
|
+
severity: "error",
|
|
172
|
+
messages: {
|
|
173
|
+
default: "At least one operation response must contain a field marked with `@lroStatus`",
|
|
174
|
+
},
|
|
175
|
+
},
|
|
164
176
|
},
|
|
165
177
|
};
|
|
166
178
|
export const $lib = createTypeSpecLibrary(libDef);
|
package/dist/src/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import "./index.js";
|
|
2
|
+
import { Model, ModelProperty, Operation, Program } from "@typespec/compiler";
|
|
3
|
+
/**
|
|
4
|
+
* Custom polling
|
|
5
|
+
* Represents a property or header that provides a Uri linking to another operation
|
|
6
|
+
*/
|
|
7
|
+
export interface OperationLink {
|
|
8
|
+
kind: "link";
|
|
9
|
+
location: "ResponseHeader" | "ResponseBody";
|
|
10
|
+
property: ModelProperty;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Custom polling
|
|
14
|
+
* Represents the property that contains the state and the terminal state values
|
|
15
|
+
*/
|
|
16
|
+
export type TerminationStatus = HttpTerminationStatus | ModelPropertyTerminationStatus;
|
|
17
|
+
/**
|
|
18
|
+
* Definition of a StatusMonitor that uses http status rather then status code
|
|
19
|
+
*/
|
|
20
|
+
export interface HttpTerminationStatus {
|
|
21
|
+
kind: "status-code";
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Definition of a status monitor that uses a status field
|
|
25
|
+
*/
|
|
26
|
+
export interface ModelPropertyTerminationStatus {
|
|
27
|
+
kind: "model-property";
|
|
28
|
+
property: ModelProperty;
|
|
29
|
+
succeededState: string[];
|
|
30
|
+
failedState: string[];
|
|
31
|
+
canceledState: string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Custom polling
|
|
35
|
+
* Represents the source of a parameter value when the client resolves an operation reference
|
|
36
|
+
*/
|
|
37
|
+
export interface ParameterSource {
|
|
38
|
+
location: "OperationParameters" | "RequestBody" | "Response";
|
|
39
|
+
parameter: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Custom polling
|
|
43
|
+
* Represents a reference to an operation, including a map from the
|
|
44
|
+
* original operation to the parameters of the linked operation
|
|
45
|
+
*/
|
|
46
|
+
export interface OperationReference {
|
|
47
|
+
kind: "reference";
|
|
48
|
+
operation: Operation;
|
|
49
|
+
parameterMap?: Map<string, ParameterSource>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Custom polling
|
|
53
|
+
* A step in a logical operation that involves multiple calls
|
|
54
|
+
*/
|
|
55
|
+
export interface LogicalOperationStep {
|
|
56
|
+
responseModel: Model;
|
|
57
|
+
}
|
|
58
|
+
export type OperationStep = NextOperationLink | NextOperationReference | PollingOperationStep | FinalOperationLink | FinalOperationReference | PollingSuccessProperty;
|
|
59
|
+
/**
|
|
60
|
+
* Indicates that an operation step involves polling, and includes details on
|
|
61
|
+
* how to end polling
|
|
62
|
+
*/
|
|
63
|
+
export interface PollingOperationStep extends LogicalOperationStep {
|
|
64
|
+
kind: "pollingOperationStep";
|
|
65
|
+
terminationStatus: TerminationStatus;
|
|
66
|
+
}
|
|
67
|
+
export type nextOperationStep = NextOperationLink | NextOperationReference;
|
|
68
|
+
/**
|
|
69
|
+
* A resource link to the next operation
|
|
70
|
+
*/
|
|
71
|
+
export interface NextOperationLink extends LogicalOperationStep {
|
|
72
|
+
kind: "nextOperationLink";
|
|
73
|
+
target: OperationLink;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* An operation link to the next operation
|
|
77
|
+
*/
|
|
78
|
+
export interface NextOperationReference extends LogicalOperationStep {
|
|
79
|
+
kind: "nextOperationReference";
|
|
80
|
+
target: OperationReference;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* For long-running operations, a description of the final step for
|
|
84
|
+
* getting to a success result
|
|
85
|
+
*/
|
|
86
|
+
export type FinalOperationStep = FinalOperationLink | FinalOperationReference | PollingSuccessProperty;
|
|
87
|
+
/**
|
|
88
|
+
* For long-running operations, the resource link to the final result
|
|
89
|
+
*/
|
|
90
|
+
export interface FinalOperationLink extends LogicalOperationStep {
|
|
91
|
+
kind: "finalOperationLink";
|
|
92
|
+
target: OperationLink;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* For long-running operations, the operation link to the final result
|
|
96
|
+
*/
|
|
97
|
+
export interface FinalOperationReference extends LogicalOperationStep {
|
|
98
|
+
kind: "finalOperationReference";
|
|
99
|
+
target: OperationReference;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* For long-running operations using a status monitor, describes the
|
|
103
|
+
* property of the StatusMonitor that contains the success response
|
|
104
|
+
*/
|
|
105
|
+
export interface PollingSuccessProperty extends LogicalOperationStep {
|
|
106
|
+
kind: "pollingSuccessProperty";
|
|
107
|
+
target: ModelProperty;
|
|
108
|
+
sourceProperty: ModelProperty;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Azure SDK polling information: provides data contained in the
|
|
112
|
+
* long-running-operation-options.final-state-via field
|
|
113
|
+
*/
|
|
114
|
+
export declare enum FinalStateValue {
|
|
115
|
+
azureAsyncOperation = "azure-async-operation",
|
|
116
|
+
location = "location",
|
|
117
|
+
operationLocation = "operation-location",
|
|
118
|
+
originalUri = "original-uri",
|
|
119
|
+
customLink = "custom-link",
|
|
120
|
+
customOperationReference = "custom-operation-reference"
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Information about long-running operations
|
|
124
|
+
* For standard Lro Patterns, only the 'logicalResult' and 'finalStateVia' will be used.
|
|
125
|
+
*/
|
|
126
|
+
export interface LroMetadata {
|
|
127
|
+
operation: Operation;
|
|
128
|
+
logicalResult: Model;
|
|
129
|
+
finalStateVia: FinalStateValue;
|
|
130
|
+
statusMonitorStep?: NextOperationLink | NextOperationReference;
|
|
131
|
+
pollingInfo: PollingOperationStep;
|
|
132
|
+
finalStep?: FinalOperationStep;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
*
|
|
136
|
+
* @param program The program being processed
|
|
137
|
+
* @param operation The operation to get Lwo Metadata for
|
|
138
|
+
* @returns LroMetadata for the operation is it is long-running,
|
|
139
|
+
* or nothing if the operation is synchronous, or lro information
|
|
140
|
+
* cannot be processed.
|
|
141
|
+
*/
|
|
142
|
+
export declare function getLroMetadata(program: Program, operation: Operation): LroMetadata | undefined;
|
|
143
|
+
//# sourceMappingURL=lro-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lro-helpers.d.ts","sourceRoot":"","sources":["../../src/lro-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAUpB,OAAO,EAEL,KAAK,EACL,aAAa,EACb,SAAS,EACT,OAAO,EAGR,MAAM,oBAAoB,CAAC;AAiB5B;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,gBAAgB,GAAG,cAAc,CAAC;IAC5C,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,GAAG,8BAA8B,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAE9B,QAAQ,EAAE,qBAAqB,GAAG,aAAa,GAAG,UAAU,CAAC;IAC7D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,sBAAsB,GACtB,oBAAoB,GACpB,kBAAkB,GAClB,uBAAuB,GACvB,sBAAsB,CAAC;AAE3B;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,sBAAsB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,uBAAuB,GACvB,sBAAsB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACnE,IAAI,EAAE,yBAAyB,CAAC;IAChC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,EAAE,aAAa,CAAC;CAC/B;AAED;;;GAGG;AACH,oBAAY,eAAe;IACzB,mBAAmB,0BAA0B;IAC7C,QAAQ,aAAa;IACrB,iBAAiB,uBAAuB;IACxC,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,wBAAwB,+BAA+B;CACxD;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,KAAK,CAAC;IACrB,aAAa,EAAE,eAAe,CAAC;IAG/B,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,sBAAsB,CAAC;IAC/D,WAAW,EAAE,oBAAoB,CAAC;IAClC,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CA6B9F"}
|
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
import "./index.js";
|
|
2
|
+
import { filterModelProperties, filterResponseModels, getHttpMetadata, getOperationResponse, getResultModelWithProperty, getSuccessResponse, } from "./utils.js";
|
|
3
|
+
import { isNeverType, } from "@typespec/compiler";
|
|
4
|
+
import { getHeaderFieldName, getHttpOperation, isHeader } from "@typespec/http";
|
|
5
|
+
import { getAction, getResourceLocationType, getResourceOperation } from "@typespec/rest";
|
|
6
|
+
import { extractLroStates, FinalOperationKey, getOperationLink, getOperationLinks, getRequestParameter, getResponseProperty, isFinalLocation, isPollingLocation, PollingOperationKey, } from "./decorators.js";
|
|
7
|
+
/**
|
|
8
|
+
* Azure SDK polling information: provides data contained in the
|
|
9
|
+
* long-running-operation-options.final-state-via field
|
|
10
|
+
*/
|
|
11
|
+
export var FinalStateValue;
|
|
12
|
+
(function (FinalStateValue) {
|
|
13
|
+
FinalStateValue["azureAsyncOperation"] = "azure-async-operation";
|
|
14
|
+
FinalStateValue["location"] = "location";
|
|
15
|
+
FinalStateValue["operationLocation"] = "operation-location";
|
|
16
|
+
FinalStateValue["originalUri"] = "original-uri";
|
|
17
|
+
FinalStateValue["customLink"] = "custom-link";
|
|
18
|
+
FinalStateValue["customOperationReference"] = "custom-operation-reference";
|
|
19
|
+
})(FinalStateValue = FinalStateValue || (FinalStateValue = {}));
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param program The program being processed
|
|
23
|
+
* @param operation The operation to get Lwo Metadata for
|
|
24
|
+
* @returns LroMetadata for the operation is it is long-running,
|
|
25
|
+
* or nothing if the operation is synchronous, or lro information
|
|
26
|
+
* cannot be processed.
|
|
27
|
+
*/
|
|
28
|
+
export function getLroMetadata(program, operation) {
|
|
29
|
+
const context = ensureContext(program, operation, undefined);
|
|
30
|
+
if (context === undefined)
|
|
31
|
+
return undefined;
|
|
32
|
+
processFinalReference(program, operation, context);
|
|
33
|
+
processFinalLink(program, operation, context);
|
|
34
|
+
const nextReference = processStatusMonitorReference(program, operation, context);
|
|
35
|
+
if (nextReference !== undefined) {
|
|
36
|
+
context.statusMonitorStep = nextReference;
|
|
37
|
+
processFinalReference(program, nextReference.target.operation, context);
|
|
38
|
+
processFinalLink(program, nextReference.target.operation, context);
|
|
39
|
+
context.pollingStep = getPollingStep(program, nextReference.responseModel);
|
|
40
|
+
return createLroMetadata(program, operation, context);
|
|
41
|
+
}
|
|
42
|
+
if (processStatusMonitorLink(program, operation, context)) {
|
|
43
|
+
return createLroMetadata(program, operation, context);
|
|
44
|
+
}
|
|
45
|
+
const originalStep = getPollingStep(program, operation);
|
|
46
|
+
if (originalStep !== undefined) {
|
|
47
|
+
context.pollingStep = originalStep;
|
|
48
|
+
return createLroMetadata(program, operation, context);
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
function createFinalOperationLink(program, model, property) {
|
|
53
|
+
return {
|
|
54
|
+
kind: "finalOperationLink",
|
|
55
|
+
responseModel: model,
|
|
56
|
+
target: {
|
|
57
|
+
kind: "link",
|
|
58
|
+
location: isHeader(program, property) ? "ResponseHeader" : "ResponseBody",
|
|
59
|
+
property: property,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function createLroMetadata(program, operation, context) {
|
|
64
|
+
const [finalState, model] = getFinalStateVia(program, operation, context);
|
|
65
|
+
return {
|
|
66
|
+
operation: operation,
|
|
67
|
+
logicalResult: model,
|
|
68
|
+
finalStateVia: finalState,
|
|
69
|
+
statusMonitorStep: context.statusMonitorStep,
|
|
70
|
+
pollingInfo: context.pollingStep,
|
|
71
|
+
finalStep: context.finalStep,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function createOperationLink(program, modelProperty) {
|
|
75
|
+
return {
|
|
76
|
+
kind: "link",
|
|
77
|
+
location: isHeader(program, modelProperty) ? "ResponseHeader" : "ResponseBody",
|
|
78
|
+
property: modelProperty,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function createOperationReference(program, metadata) {
|
|
82
|
+
const map = new Map();
|
|
83
|
+
if (metadata.parameters !== undefined && metadata.parameters.kind === "Model") {
|
|
84
|
+
for (const [name, property] of metadata.parameters.properties.entries()) {
|
|
85
|
+
const requestParam = getRequestParameter(program, property);
|
|
86
|
+
if (requestParam !== undefined) {
|
|
87
|
+
map.set(name, { location: "OperationParameters", parameter: requestParam });
|
|
88
|
+
}
|
|
89
|
+
const responseProperty = getResponseProperty(program, property);
|
|
90
|
+
if (responseProperty !== undefined) {
|
|
91
|
+
map.set(name, { location: "Response", parameter: responseProperty });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const opParams = metadata.linkedOperation.parameters.properties;
|
|
96
|
+
if (map.size !== opParams.size)
|
|
97
|
+
return undefined;
|
|
98
|
+
for (const [name, _] of opParams.entries()) {
|
|
99
|
+
if (!map.has(name))
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
kind: "reference",
|
|
104
|
+
operation: metadata.linkedOperation,
|
|
105
|
+
parameterMap: map,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function createPollingStep(pollingData) {
|
|
109
|
+
return {
|
|
110
|
+
kind: "pollingOperationStep",
|
|
111
|
+
responseModel: pollingData.monitorType,
|
|
112
|
+
terminationStatus: {
|
|
113
|
+
kind: "model-property",
|
|
114
|
+
canceledState: [pollingData.lroStates.canceledState],
|
|
115
|
+
failedState: [pollingData.lroStates.failedState],
|
|
116
|
+
succeededState: [pollingData.lroStates.succeededState],
|
|
117
|
+
property: pollingData.statusProperty,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function ensureContext(program, operation, context) {
|
|
122
|
+
if (context)
|
|
123
|
+
return context;
|
|
124
|
+
const [httpOperation, diagnostics] = getHttpOperation(program, operation);
|
|
125
|
+
if (diagnostics !== undefined && diagnostics.length > 0) {
|
|
126
|
+
program.reportDiagnostics(diagnostics);
|
|
127
|
+
}
|
|
128
|
+
const candidate = getSuccessResponse(program, httpOperation);
|
|
129
|
+
if (candidate === undefined)
|
|
130
|
+
return undefined;
|
|
131
|
+
return {
|
|
132
|
+
visitedModels: new Set(),
|
|
133
|
+
visitedOperations: new Set(),
|
|
134
|
+
httpOperation: httpOperation,
|
|
135
|
+
originalModel: candidate,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function getFinalStateVia(program, operation, context) {
|
|
139
|
+
var _a, _b, _c, _d;
|
|
140
|
+
const operationAction = getAction(program, operation);
|
|
141
|
+
const resOp = getResourceOperation(program, operation);
|
|
142
|
+
let model = context.originalModel;
|
|
143
|
+
let finalState = FinalStateValue.originalUri;
|
|
144
|
+
if (operationAction !== undefined || (resOp !== undefined && resOp.operation === "delete")) {
|
|
145
|
+
finalState = FinalStateValue.operationLocation;
|
|
146
|
+
model = (_b = (_a = context.pollingStep) === null || _a === void 0 ? void 0 : _a.responseModel) !== null && _b !== void 0 ? _b : context.originalModel;
|
|
147
|
+
}
|
|
148
|
+
if (context.finalStep) {
|
|
149
|
+
model = context.finalStep.responseModel;
|
|
150
|
+
if (context.finalStep.kind === "pollingSuccessProperty" &&
|
|
151
|
+
context.statusMonitorStep !== undefined &&
|
|
152
|
+
context.statusMonitorStep.kind === "nextOperationLink") {
|
|
153
|
+
finalState = getLroStatusFromHeaderProperty(program, context.statusMonitorStep.target.property);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
finalState = getStatusFromLinkOrReference(program, operation, context.finalStep.target);
|
|
157
|
+
}
|
|
158
|
+
return [finalState, model];
|
|
159
|
+
}
|
|
160
|
+
// handle actions and delete operations
|
|
161
|
+
if ((operationAction !== undefined &&
|
|
162
|
+
operationAction !== null &&
|
|
163
|
+
context.statusMonitorStep !== undefined) ||
|
|
164
|
+
((resOp === null || resOp === void 0 ? void 0 : resOp.operation) !== undefined &&
|
|
165
|
+
resOp.operation === "delete" &&
|
|
166
|
+
context.pollingStep !== undefined &&
|
|
167
|
+
context.statusMonitorStep !== undefined)) {
|
|
168
|
+
const info = getStatusMonitorInfo(program, context.statusMonitorStep.responseModel);
|
|
169
|
+
if (info !== undefined) {
|
|
170
|
+
model = (_c = info.successType) !== null && _c !== void 0 ? _c : info.monitorType;
|
|
171
|
+
finalState = getStatusFromLinkOrReference(program, operation, (_d = context.statusMonitorStep) === null || _d === void 0 ? void 0 : _d.target);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return [finalState, model];
|
|
175
|
+
}
|
|
176
|
+
function getLroStatusFromHeaderProperty(program, property) {
|
|
177
|
+
let finalState;
|
|
178
|
+
if (!isHeader(program, property))
|
|
179
|
+
return FinalStateValue.customLink;
|
|
180
|
+
const name = getHeaderFieldName(program, property);
|
|
181
|
+
if (name === undefined)
|
|
182
|
+
return FinalStateValue.customLink;
|
|
183
|
+
switch (name) {
|
|
184
|
+
case "Operation-Location":
|
|
185
|
+
finalState = FinalStateValue.operationLocation;
|
|
186
|
+
break;
|
|
187
|
+
case "azureAsyncOperation":
|
|
188
|
+
finalState = FinalStateValue.azureAsyncOperation;
|
|
189
|
+
break;
|
|
190
|
+
case "location":
|
|
191
|
+
finalState = FinalStateValue.location;
|
|
192
|
+
break;
|
|
193
|
+
default:
|
|
194
|
+
finalState = FinalStateValue.customLink;
|
|
195
|
+
}
|
|
196
|
+
return finalState;
|
|
197
|
+
}
|
|
198
|
+
function getLroStatusProperty(program, model) {
|
|
199
|
+
const properties = filterModelProperties(model, (prop) => extractLroStates(program, prop) !== undefined);
|
|
200
|
+
return properties.length > 0 ? properties[0] : undefined;
|
|
201
|
+
}
|
|
202
|
+
function getPollingStep(program, modelOrOperation) {
|
|
203
|
+
let info;
|
|
204
|
+
switch (modelOrOperation.kind) {
|
|
205
|
+
case "Operation":
|
|
206
|
+
const httpOperation = getHttpMetadata(program, modelOrOperation);
|
|
207
|
+
info = GetStatusMonitorInfoFromOperation(program, httpOperation);
|
|
208
|
+
break;
|
|
209
|
+
case "Model":
|
|
210
|
+
info = getStatusMonitorInfo(program, modelOrOperation);
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
if (info === undefined)
|
|
214
|
+
return undefined;
|
|
215
|
+
return createPollingStep(info);
|
|
216
|
+
}
|
|
217
|
+
function getStatusFromLinkOrReference(program, sourceOperation, target) {
|
|
218
|
+
let finalState = FinalStateValue.originalUri;
|
|
219
|
+
switch (target.kind) {
|
|
220
|
+
case "link":
|
|
221
|
+
{
|
|
222
|
+
switch (target.location) {
|
|
223
|
+
case "ResponseBody":
|
|
224
|
+
finalState = FinalStateValue.customLink;
|
|
225
|
+
break;
|
|
226
|
+
case "ResponseHeader":
|
|
227
|
+
finalState = getLroStatusFromHeaderProperty(program, target.property);
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
break;
|
|
232
|
+
case "reference":
|
|
233
|
+
{
|
|
234
|
+
finalState = FinalStateValue.customOperationReference;
|
|
235
|
+
if (isMatchingGetOperation(program, sourceOperation, target.operation)) {
|
|
236
|
+
finalState = FinalStateValue.originalUri;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
return finalState;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Extracts status monitor information from a pollingLink
|
|
245
|
+
* @param program The program being processed
|
|
246
|
+
* @param link The link to the status monitor
|
|
247
|
+
*/
|
|
248
|
+
function getStatusMonitorInfo(program, modelOrLink) {
|
|
249
|
+
if (modelOrLink.kind === "link") {
|
|
250
|
+
const statusMonitorType = resolveOperationLocation(program, modelOrLink.property);
|
|
251
|
+
if (statusMonitorType === undefined)
|
|
252
|
+
return undefined;
|
|
253
|
+
modelOrLink = statusMonitorType;
|
|
254
|
+
}
|
|
255
|
+
const statusProperty = getLroStatusProperty(program, modelOrLink);
|
|
256
|
+
if (statusProperty === undefined)
|
|
257
|
+
return undefined;
|
|
258
|
+
const successInfo = getTargetModelInformation(program, modelOrLink);
|
|
259
|
+
const lroStates = extractLroStates(program, statusProperty);
|
|
260
|
+
if (lroStates === undefined)
|
|
261
|
+
return undefined;
|
|
262
|
+
return {
|
|
263
|
+
monitorType: modelOrLink,
|
|
264
|
+
successType: successInfo !== undefined ? successInfo[0] : undefined,
|
|
265
|
+
successProperty: successInfo !== undefined ? successInfo[1] : undefined,
|
|
266
|
+
statusProperty: statusProperty,
|
|
267
|
+
lroStates: lroStates,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
function GetStatusMonitorInfoFromOperation(program, operation) {
|
|
271
|
+
const models = filterResponseModels(operation, (model) => filterModelProperties(model, (prop) => extractLroStates(program, prop) !== undefined).length >
|
|
272
|
+
0);
|
|
273
|
+
if (models === undefined || models.length < 1)
|
|
274
|
+
return undefined;
|
|
275
|
+
return getStatusMonitorInfo(program, models[0]);
|
|
276
|
+
}
|
|
277
|
+
function getStatusMonitorLinks(program, operation) {
|
|
278
|
+
const models = filterResponseModels(operation, (model) => filterModelProperties(model, (prop) => isPollingLocation(program, prop) || isFinalLocation(program, prop)).length > 0);
|
|
279
|
+
if (models === undefined || models.length < 1)
|
|
280
|
+
return undefined;
|
|
281
|
+
return getStatusMonitorLinksFromModel(program, models[0]);
|
|
282
|
+
}
|
|
283
|
+
function getStatusMonitorLinksFromModel(program, model) {
|
|
284
|
+
const pollingLinks = filterModelProperties(model, (prop) => isPollingLocation(program, prop));
|
|
285
|
+
if (pollingLinks === undefined || pollingLinks.length !== 1)
|
|
286
|
+
return undefined;
|
|
287
|
+
const pollingLink = createOperationLink(program, pollingLinks[0]);
|
|
288
|
+
const monitorInfo = getStatusMonitorInfo(program, pollingLink);
|
|
289
|
+
if (monitorInfo === undefined)
|
|
290
|
+
return undefined;
|
|
291
|
+
const finalLinks = filterModelProperties(model, (prop) => isFinalLocation(program, prop));
|
|
292
|
+
const finalLink = finalLinks === undefined || finalLinks.length !== 1
|
|
293
|
+
? undefined
|
|
294
|
+
: createOperationLink(program, finalLinks[0]);
|
|
295
|
+
let finalTarget;
|
|
296
|
+
if (finalLink !== undefined) {
|
|
297
|
+
finalTarget = getTargetModelInformation(program, finalLink);
|
|
298
|
+
}
|
|
299
|
+
return {
|
|
300
|
+
model: monitorInfo.monitorType,
|
|
301
|
+
statusMonitor: pollingLink,
|
|
302
|
+
pollingData: monitorInfo,
|
|
303
|
+
final: finalLink,
|
|
304
|
+
finalModel: finalTarget === undefined ? undefined : finalTarget[0],
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Gets the target model, as defined in the status monitor, either through result property
|
|
309
|
+
* or `@finalLocation` links
|
|
310
|
+
* @param program The program being processed
|
|
311
|
+
* @param link The link pointing to the monitor
|
|
312
|
+
*/
|
|
313
|
+
function getTargetModelInformation(program, modelOrLink) {
|
|
314
|
+
if (modelOrLink.kind === "link") {
|
|
315
|
+
const linkModel = resolveOperationLocation(program, modelOrLink.property);
|
|
316
|
+
if (linkModel === undefined)
|
|
317
|
+
return undefined;
|
|
318
|
+
modelOrLink = linkModel;
|
|
319
|
+
}
|
|
320
|
+
const finalLinkProps = filterModelProperties(modelOrLink, (prop) => isFinalLocation(program, prop));
|
|
321
|
+
const resultProps = filterModelProperties(modelOrLink, (prop) => isResultProperty(program, prop));
|
|
322
|
+
if (finalLinkProps.length === 1) {
|
|
323
|
+
const result = resolveOperationLocation(program, finalLinkProps[0]);
|
|
324
|
+
if (result !== undefined)
|
|
325
|
+
return [result, finalLinkProps[0]];
|
|
326
|
+
}
|
|
327
|
+
if (resultProps.length === 1 &&
|
|
328
|
+
!isNeverType(resultProps[0].type) &&
|
|
329
|
+
resultProps[0].type.kind === "Model") {
|
|
330
|
+
return [resultProps[0].type, resultProps[0]];
|
|
331
|
+
}
|
|
332
|
+
return undefined;
|
|
333
|
+
}
|
|
334
|
+
function isMatchingGetOperation(program, sourceOperation, targetOperation) {
|
|
335
|
+
const sourceHttp = getHttpMetadata(program, sourceOperation);
|
|
336
|
+
const targetHttp = getHttpMetadata(program, targetOperation);
|
|
337
|
+
return sourceHttp.path === targetHttp.path && targetHttp.verb === "get";
|
|
338
|
+
}
|
|
339
|
+
function isResultProperty(program, property) {
|
|
340
|
+
return property.name === "result";
|
|
341
|
+
}
|
|
342
|
+
function processFinalLink(program, modelOrOperation, context) {
|
|
343
|
+
if (context.finalStep !== undefined)
|
|
344
|
+
return;
|
|
345
|
+
switch (modelOrOperation.kind) {
|
|
346
|
+
case "Operation":
|
|
347
|
+
{
|
|
348
|
+
const result = getResultModelWithProperty(program, modelOrOperation, (prop) => isFinalLocation(program, prop));
|
|
349
|
+
if (result === undefined)
|
|
350
|
+
return;
|
|
351
|
+
const [model, property] = result;
|
|
352
|
+
context.finalStep = createFinalOperationLink(program, model, property);
|
|
353
|
+
}
|
|
354
|
+
break;
|
|
355
|
+
case "Model":
|
|
356
|
+
{
|
|
357
|
+
const outProperties = filterModelProperties(modelOrOperation, (prop) => isFinalLocation(program, prop));
|
|
358
|
+
if (outProperties === undefined || outProperties.length !== 1)
|
|
359
|
+
return;
|
|
360
|
+
context.finalStep = createFinalOperationLink(program, modelOrOperation, outProperties[0]);
|
|
361
|
+
}
|
|
362
|
+
break;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
function processFinalReference(program, operation, context) {
|
|
366
|
+
if (context.finalStep !== undefined)
|
|
367
|
+
return;
|
|
368
|
+
const link = getOperationLink(program, operation, "final");
|
|
369
|
+
if (link === undefined)
|
|
370
|
+
return;
|
|
371
|
+
const reference = createOperationReference(program, link);
|
|
372
|
+
if (reference === undefined)
|
|
373
|
+
return;
|
|
374
|
+
const model = getOperationResponse(program, link.linkedOperation);
|
|
375
|
+
if (model === undefined)
|
|
376
|
+
return;
|
|
377
|
+
context.finalStep = {
|
|
378
|
+
kind: "finalOperationReference",
|
|
379
|
+
responseModel: model,
|
|
380
|
+
target: reference,
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
function processStatusMonitorLink(program, modelOrOperation, context) {
|
|
384
|
+
let lroData;
|
|
385
|
+
switch (modelOrOperation.kind) {
|
|
386
|
+
case "Operation":
|
|
387
|
+
lroData = getStatusMonitorLinks(program, context.httpOperation);
|
|
388
|
+
break;
|
|
389
|
+
case "Model":
|
|
390
|
+
lroData = getStatusMonitorLinksFromModel(program, modelOrOperation);
|
|
391
|
+
break;
|
|
392
|
+
}
|
|
393
|
+
if (lroData === undefined || lroData.statusMonitor === undefined) {
|
|
394
|
+
return false;
|
|
395
|
+
}
|
|
396
|
+
context.pollingStep = createPollingStep(lroData.pollingData);
|
|
397
|
+
if (context.finalStep === undefined) {
|
|
398
|
+
if (lroData.final !== undefined && lroData.finalModel !== undefined) {
|
|
399
|
+
context.finalStep = {
|
|
400
|
+
kind: "finalOperationLink",
|
|
401
|
+
responseModel: lroData.finalModel,
|
|
402
|
+
target: lroData.final,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
else if (lroData.pollingData.successProperty !== undefined &&
|
|
406
|
+
lroData.pollingData.successType !== undefined) {
|
|
407
|
+
const final = {
|
|
408
|
+
kind: "pollingSuccessProperty",
|
|
409
|
+
target: lroData.pollingData.successProperty,
|
|
410
|
+
responseModel: lroData.pollingData.successType,
|
|
411
|
+
sourceProperty: lroData.statusMonitor.property,
|
|
412
|
+
};
|
|
413
|
+
context.finalStep = final;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
context.statusMonitorStep = {
|
|
417
|
+
kind: "nextOperationLink",
|
|
418
|
+
responseModel: lroData.model,
|
|
419
|
+
target: lroData.statusMonitor,
|
|
420
|
+
};
|
|
421
|
+
return true;
|
|
422
|
+
}
|
|
423
|
+
function processStatusMonitorReference(program, referencedOperation, context) {
|
|
424
|
+
const references = getOperationLinks(program, referencedOperation);
|
|
425
|
+
if (references === undefined)
|
|
426
|
+
return undefined;
|
|
427
|
+
const pollingData = references.get(PollingOperationKey);
|
|
428
|
+
if (pollingData === undefined)
|
|
429
|
+
return undefined;
|
|
430
|
+
const pollingReference = createOperationReference(program, pollingData);
|
|
431
|
+
if (pollingReference === undefined)
|
|
432
|
+
return undefined;
|
|
433
|
+
const finalData = references.get(FinalOperationKey);
|
|
434
|
+
if (context.finalStep === undefined && finalData !== undefined) {
|
|
435
|
+
const finalReference = createOperationReference(program, finalData);
|
|
436
|
+
const finalModel = getSuccessResponse(program, getHttpMetadata(program, finalData.linkedOperation));
|
|
437
|
+
if (finalReference !== undefined && finalModel !== undefined) {
|
|
438
|
+
context.finalStep = {
|
|
439
|
+
kind: "finalOperationReference",
|
|
440
|
+
responseModel: finalModel,
|
|
441
|
+
target: finalReference,
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
const responseModel = getSuccessResponse(program, getHttpMetadata(program, pollingData.linkedOperation));
|
|
446
|
+
if (responseModel === undefined)
|
|
447
|
+
return undefined;
|
|
448
|
+
return {
|
|
449
|
+
kind: "nextOperationReference",
|
|
450
|
+
responseModel: responseModel,
|
|
451
|
+
target: pollingReference,
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
function resolveOperationLocation(program, property) {
|
|
455
|
+
const resolvedScalar = resolveToScalarType(program, property.type);
|
|
456
|
+
if (resolvedScalar === undefined)
|
|
457
|
+
return undefined;
|
|
458
|
+
return getResourceLocationType(program, resolvedScalar);
|
|
459
|
+
}
|
|
460
|
+
function resolveToScalarType(program, type) {
|
|
461
|
+
switch (type.kind) {
|
|
462
|
+
case "Scalar":
|
|
463
|
+
return type;
|
|
464
|
+
}
|
|
465
|
+
return undefined;
|
|
466
|
+
}
|
|
467
|
+
//# sourceMappingURL=lro-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lro-helpers.js","sourceRoot":"","sources":["../../src/lro-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import "./index.js";
|
|
2
|
+
import { Model, ModelProperty, Operation, Program } from "@typespec/compiler";
|
|
3
|
+
import { HttpOperation } from "@typespec/http";
|
|
4
|
+
/**
|
|
5
|
+
* Filter the model properties of a model, using the given predicate
|
|
6
|
+
* @param model The model to filter
|
|
7
|
+
* @parm predicate The predicate function used to filter model properties
|
|
8
|
+
* @returns a list of filtered properties, it will have length 0 if no properties
|
|
9
|
+
* match the filter.
|
|
10
|
+
*/
|
|
11
|
+
export declare function filterModelProperties(model: Model, predicate: (prop: ModelProperty) => boolean): ModelProperty[];
|
|
12
|
+
/**
|
|
13
|
+
* Filter operation responses using a predicate
|
|
14
|
+
* @param operation The operation containign the response models to filter
|
|
15
|
+
* @param predicate A predicate function to apply to each response model
|
|
16
|
+
* @returns A list of models matching the predicate, or undefined if there are none
|
|
17
|
+
*/
|
|
18
|
+
export declare function filterResponseModels(operation: HttpOperation, predicate: (model: Model) => boolean): Model[] | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Get the Http metadata for this operation
|
|
21
|
+
* @param program The program being processed
|
|
22
|
+
* @param operation The operation to get http metadata for
|
|
23
|
+
* @returns An HttpOperation with http metadata. May emit error diagnostics.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getHttpMetadata(program: Program, operation: Operation): HttpOperation;
|
|
26
|
+
/**
|
|
27
|
+
* Get the main success response from an operation
|
|
28
|
+
* @param program Get success responses for an operation
|
|
29
|
+
* @param operation The operation to process
|
|
30
|
+
* @returns A model, if there is a 2xx response, or nothing otherwise
|
|
31
|
+
*/
|
|
32
|
+
export declare function getOperationResponse(program: Program, operation: Operation): Model | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Return the first response model that has any properties matching the given model property predicate
|
|
35
|
+
* @param program The program being processed
|
|
36
|
+
* @param operation The operation to retrieve matching response from
|
|
37
|
+
* @param predicate The predicate function to apply to each model property of the responses
|
|
38
|
+
* @returns The model and matching model property, or nothing if no matching models are found
|
|
39
|
+
*/
|
|
40
|
+
export declare function getResultModelWithProperty(program: Program, operation: Operation, predicate: (prop: ModelProperty) => boolean): [Model, ModelProperty] | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Get the first success response of an operation
|
|
43
|
+
* @param program The program being processed
|
|
44
|
+
* @param operation The operation to process
|
|
45
|
+
* @returns The first success response, or nothing, if no matching models are found
|
|
46
|
+
*/
|
|
47
|
+
export declare function getSuccessResponse(program: Program, operation: HttpOperation): Model | undefined;
|
|
48
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAGpB,OAAO,EAAgB,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAoB,aAAa,EAAgB,MAAM,gBAAgB,CAAC;AAE/E;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,GAC1C,aAAa,EAAE,CAEjB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,GACnC,KAAK,EAAE,GAAG,SAAS,CAmBrB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,aAAa,CAOrF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS,CAO9F;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,GAC1C,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,SAAS,CAWpC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,KAAK,GAAG,SAAS,CAehG"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import "./index.js";
|
|
2
|
+
import { reportDiagnostic } from "./lib.js";
|
|
3
|
+
import { isErrorModel } from "@typespec/compiler";
|
|
4
|
+
import { getHttpOperation, isStatusCode } from "@typespec/http";
|
|
5
|
+
/**
|
|
6
|
+
* Filter the model properties of a model, using the given predicate
|
|
7
|
+
* @param model The model to filter
|
|
8
|
+
* @parm predicate The predicate function used to filter model properties
|
|
9
|
+
* @returns a list of filtered properties, it will have length 0 if no properties
|
|
10
|
+
* match the filter.
|
|
11
|
+
*/
|
|
12
|
+
export function filterModelProperties(model, predicate) {
|
|
13
|
+
return [...getAllProperties(model).values()].filter(predicate);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Filter operation responses using a predicate
|
|
17
|
+
* @param operation The operation containign the response models to filter
|
|
18
|
+
* @param predicate A predicate function to apply to each response model
|
|
19
|
+
* @returns A list of models matching the predicate, or undefined if there are none
|
|
20
|
+
*/
|
|
21
|
+
export function filterResponseModels(operation, predicate) {
|
|
22
|
+
const models = [];
|
|
23
|
+
for (const response of operation.responses) {
|
|
24
|
+
switch (response.type.kind) {
|
|
25
|
+
case "Model":
|
|
26
|
+
if (predicate(response.type))
|
|
27
|
+
models.push(response.type);
|
|
28
|
+
break;
|
|
29
|
+
case "Union":
|
|
30
|
+
for (const variant of response.type.variants.values()) {
|
|
31
|
+
if (variant.type.kind === "Model" && predicate(variant.type))
|
|
32
|
+
models.push(variant.type);
|
|
33
|
+
}
|
|
34
|
+
break;
|
|
35
|
+
case "Tuple":
|
|
36
|
+
for (const type of response.type.values) {
|
|
37
|
+
if (type.kind === "Model" && predicate(type))
|
|
38
|
+
models.push(type);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return models.length > 0 ? models : undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the Http metadata for this operation
|
|
46
|
+
* @param program The program being processed
|
|
47
|
+
* @param operation The operation to get http metadata for
|
|
48
|
+
* @returns An HttpOperation with http metadata. May emit error diagnostics.
|
|
49
|
+
*/
|
|
50
|
+
export function getHttpMetadata(program, operation) {
|
|
51
|
+
const [httpOperation, diagnostics] = getHttpOperation(program, operation);
|
|
52
|
+
if (diagnostics && diagnostics.length > 0) {
|
|
53
|
+
program.reportDiagnostics(diagnostics);
|
|
54
|
+
}
|
|
55
|
+
return httpOperation;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get the main success response from an operation
|
|
59
|
+
* @param program Get success responses for an operation
|
|
60
|
+
* @param operation The operation to process
|
|
61
|
+
* @returns A model, if there is a 2xx response, or nothing otherwise
|
|
62
|
+
*/
|
|
63
|
+
export function getOperationResponse(program, operation) {
|
|
64
|
+
const response = getSuccessResponse(program, getHttpMetadata(program, operation));
|
|
65
|
+
if (response === undefined) {
|
|
66
|
+
reportDiagnostic(program, { code: "expected-success-response", target: operation });
|
|
67
|
+
}
|
|
68
|
+
return response;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Return the first response model that has any properties matching the given model property predicate
|
|
72
|
+
* @param program The program being processed
|
|
73
|
+
* @param operation The operation to retrieve matching response from
|
|
74
|
+
* @param predicate The predicate function to apply to each model property of the responses
|
|
75
|
+
* @returns The model and matching model property, or nothing if no matching models are found
|
|
76
|
+
*/
|
|
77
|
+
export function getResultModelWithProperty(program, operation, predicate) {
|
|
78
|
+
const httpOperation = getHttpMetadata(program, operation);
|
|
79
|
+
const models = filterResponseModels(httpOperation, (model) => filterModelProperties(model, predicate).length > 0);
|
|
80
|
+
if (models === undefined || models.length < 1)
|
|
81
|
+
return undefined;
|
|
82
|
+
const properties = [...models[0].properties.values()].filter(predicate);
|
|
83
|
+
if (properties.length < 1)
|
|
84
|
+
return undefined;
|
|
85
|
+
return [models[0], properties[0]];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get the first success response of an operation
|
|
89
|
+
* @param program The program being processed
|
|
90
|
+
* @param operation The operation to process
|
|
91
|
+
* @returns The first success response, or nothing, if no matching models are found
|
|
92
|
+
*/
|
|
93
|
+
export function getSuccessResponse(program, operation) {
|
|
94
|
+
var _a;
|
|
95
|
+
const candidates = (_a = filterResponseModels(operation, (response) => !isErrorModel(program, response))) === null || _a === void 0 ? void 0 : _a.filter((m) => {
|
|
96
|
+
var _a, _b, _c;
|
|
97
|
+
const prop = getStatusCodeProperty(program, m);
|
|
98
|
+
return (prop === undefined ||
|
|
99
|
+
(((_a = prop.type) === null || _a === void 0 ? void 0 : _a.kind) === "String" && ((_b = prop.type.value) === null || _b === void 0 ? void 0 : _b.startsWith("2"))) ||
|
|
100
|
+
(((_c = prop.type) === null || _c === void 0 ? void 0 : _c.kind) === "Number" && prop.type.value >= 200 && prop.type.value < 300));
|
|
101
|
+
});
|
|
102
|
+
if (candidates === undefined || candidates.length < 1)
|
|
103
|
+
return undefined;
|
|
104
|
+
return candidates[0];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
*
|
|
108
|
+
* @param program The probgram being processed
|
|
109
|
+
* @param model The model to check for status code properties
|
|
110
|
+
* @returns The property that represents an http status code, or nothing if there is none.
|
|
111
|
+
*/
|
|
112
|
+
function getStatusCodeProperty(program, model) {
|
|
113
|
+
const properties = filterModelProperties(model, (prop) => isStatusCode(program, prop));
|
|
114
|
+
return properties.length > 0 ? properties[0] : undefined;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
*
|
|
118
|
+
* @param model The model to process
|
|
119
|
+
* @param collection The set of ModelProperties found so far
|
|
120
|
+
* @returns The full set of model properties found in a model and all ancestors
|
|
121
|
+
*/
|
|
122
|
+
function getAllProperties(model, collection) {
|
|
123
|
+
const outCollection = collection !== null && collection !== void 0 ? collection : new Map();
|
|
124
|
+
for (const [name, value] of model.properties.entries()) {
|
|
125
|
+
outCollection.set(name, value);
|
|
126
|
+
}
|
|
127
|
+
if (model.baseModel)
|
|
128
|
+
return getAllProperties(model.baseModel, outCollection);
|
|
129
|
+
return outCollection;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/foundations.tsp
CHANGED
|
@@ -59,11 +59,11 @@ model LocationOfCreatedResourceResponse<T extends object> is TypeSpec.Http.Creat
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
@doc("Metadata for long running operation status monitor locations")
|
|
62
|
-
model LongRunningStatusLocation {
|
|
62
|
+
model LongRunningStatusLocation<TStatusResult = never> {
|
|
63
63
|
@pollingLocation
|
|
64
64
|
@doc("The location for monitoring the operation state.")
|
|
65
65
|
@TypeSpec.Http.header("Operation-Location")
|
|
66
|
-
operationLocation: ResourceLocation<OperationStatus
|
|
66
|
+
operationLocation: ResourceLocation<OperationStatus<TStatusResult>>;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
alias AcceptedResponse<T = {}> = TypeSpec.Http.AcceptedResponse & T;
|
|
@@ -286,7 +286,7 @@ op LongRunningResourceUpdate<
|
|
|
286
286
|
},
|
|
287
287
|
Foundations.ResourceOkResponse<TResource &
|
|
288
288
|
TraitProperties<Traits, TraitLocation.Response, TraitContext.Update> &
|
|
289
|
-
Foundations.LongRunningStatusLocation
|
|
289
|
+
Foundations.LongRunningStatusLocation<TResource>>,
|
|
290
290
|
Traits,
|
|
291
291
|
TErrorResponse
|
|
292
292
|
>;
|
package/lib/operations.tsp
CHANGED
|
@@ -84,7 +84,7 @@ interface ResourceOperations<
|
|
|
84
84
|
TraitLocation.Response,
|
|
85
85
|
TraitContext.Create | TraitContext.Update
|
|
86
86
|
> &
|
|
87
|
-
Foundations.LongRunningStatusLocation
|
|
87
|
+
Foundations.LongRunningStatusLocation<TResource>>,
|
|
88
88
|
Traits & InterfaceTraits,
|
|
89
89
|
TErrorResponse
|
|
90
90
|
>;
|
|
@@ -139,7 +139,7 @@ interface ResourceOperations<
|
|
|
139
139
|
TraitLocation.Response,
|
|
140
140
|
TraitContext.Create | TraitContext.Update
|
|
141
141
|
> &
|
|
142
|
-
Foundations.LongRunningStatusLocation
|
|
142
|
+
Foundations.LongRunningStatusLocation<TResource>>,
|
|
143
143
|
Traits & InterfaceTraits,
|
|
144
144
|
TErrorResponse
|
|
145
145
|
>;
|
|
@@ -293,7 +293,7 @@ interface ResourceOperations<
|
|
|
293
293
|
TraitProperties<Traits & InterfaceTraits, TraitLocation.Parameters, TraitContext.Action>,
|
|
294
294
|
AcceptedResponse &
|
|
295
295
|
ResourceOperationStatus<TResource, TStatusResult, TStatusError> &
|
|
296
|
-
Foundations.LongRunningStatusLocation &
|
|
296
|
+
Foundations.LongRunningStatusLocation<TStatusResult> &
|
|
297
297
|
TraitProperties<Traits & InterfaceTraits, TraitLocation.Response, TraitContext.Action>,
|
|
298
298
|
Traits & InterfaceTraits,
|
|
299
299
|
TErrorResponse
|
|
@@ -316,7 +316,7 @@ interface ResourceOperations<
|
|
|
316
316
|
TraitProperties<Traits & InterfaceTraits, TraitLocation.Parameters, TraitContext.Action>,
|
|
317
317
|
AcceptedResponse &
|
|
318
318
|
ResourceOperationStatus<TResource, TStatusResult, TStatusError> &
|
|
319
|
-
Foundations.LongRunningStatusLocation &
|
|
319
|
+
Foundations.LongRunningStatusLocation<TStatusResult> &
|
|
320
320
|
TraitProperties<Traits & InterfaceTraits, TraitLocation.Response, TraitContext.Action>,
|
|
321
321
|
Traits & InterfaceTraits,
|
|
322
322
|
TErrorResponse
|
package/package.json
CHANGED