@microsoft/typespec-msgraph 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/components/annotations.d.ts.map +1 -1
- package/dist/src/components/annotations.js +2 -0
- package/dist/src/components/annotations.js.map +1 -1
- package/dist/src/components/property-element.js +1 -1
- package/dist/src/components/property-element.js.map +1 -1
- package/dist/src/components/schema-element.js +1 -1
- package/dist/src/components/schema-element.js.map +1 -1
- package/dist/src/components/skip-token-supported-annotation.d.ts +5 -0
- package/dist/src/components/skip-token-supported-annotation.d.ts.map +1 -0
- package/dist/src/components/skip-token-supported-annotation.js +6 -0
- package/dist/src/components/skip-token-supported-annotation.js.map +1 -0
- package/dist/src/decorators/facet.d.ts +10 -0
- package/dist/src/decorators/facet.d.ts.map +1 -0
- package/dist/src/decorators/facet.js +14 -0
- package/dist/src/decorators/facet.js.map +1 -0
- package/dist/src/decorators/flat-bag.d.ts +22 -0
- package/dist/src/decorators/flat-bag.d.ts.map +1 -0
- package/dist/src/decorators/flat-bag.js +71 -0
- package/dist/src/decorators/flat-bag.js.map +1 -0
- package/dist/src/decorators/index.d.ts +5 -0
- package/dist/src/decorators/index.d.ts.map +1 -1
- package/dist/src/decorators/index.js +5 -0
- package/dist/src/decorators/index.js.map +1 -1
- package/dist/src/decorators/namespace-alias.d.ts +58 -0
- package/dist/src/decorators/namespace-alias.d.ts.map +1 -0
- package/dist/src/decorators/namespace-alias.js +82 -0
- package/dist/src/decorators/namespace-alias.js.map +1 -0
- package/dist/src/decorators/skip-token.d.ts +11 -0
- package/dist/src/decorators/skip-token.d.ts.map +1 -0
- package/dist/src/decorators/skip-token.js +15 -0
- package/dist/src/decorators/skip-token.js.map +1 -0
- package/dist/src/decorators/variant.d.ts +12 -0
- package/dist/src/decorators/variant.d.ts.map +1 -0
- package/dist/src/decorators/variant.js +18 -0
- package/dist/src/decorators/variant.js.map +1 -0
- package/dist/src/entities/annotations.d.ts +1 -0
- package/dist/src/entities/annotations.d.ts.map +1 -1
- package/dist/src/entities/annotations.js +2 -1
- package/dist/src/entities/annotations.js.map +1 -1
- package/dist/src/entities/entity-container.d.ts +3 -3
- package/dist/src/entities/entity-container.d.ts.map +1 -1
- package/dist/src/entities/entity-container.js +8 -8
- package/dist/src/entities/entity-container.js.map +1 -1
- package/dist/src/entities/model.d.ts +2 -2
- package/dist/src/entities/model.d.ts.map +1 -1
- package/dist/src/entities/model.js +17 -15
- package/dist/src/entities/model.js.map +1 -1
- package/dist/src/entities/namespace.d.ts +1 -0
- package/dist/src/entities/namespace.d.ts.map +1 -1
- package/dist/src/entities/namespace.js +6 -3
- package/dist/src/entities/namespace.js.map +1 -1
- package/dist/src/lib.d.ts +12 -0
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +6 -0
- package/dist/src/lib.js.map +1 -1
- package/dist/src/linter.d.ts.map +1 -1
- package/dist/src/linter.js +7 -2
- package/dist/src/linter.js.map +1 -1
- package/dist/src/rules/enum.d.ts.map +1 -1
- package/dist/src/rules/enum.js +8 -0
- package/dist/src/rules/enum.js.map +1 -1
- package/dist/src/rules/facet.d.ts +6 -0
- package/dist/src/rules/facet.d.ts.map +1 -0
- package/dist/src/rules/facet.js +45 -0
- package/dist/src/rules/facet.js.map +1 -0
- package/dist/src/rules/flat-bag.d.ts +51 -0
- package/dist/src/rules/flat-bag.d.ts.map +1 -0
- package/dist/src/rules/flat-bag.js +334 -0
- package/dist/src/rules/flat-bag.js.map +1 -0
- package/dist/src/rules/index.d.ts +3 -0
- package/dist/src/rules/index.d.ts.map +1 -1
- package/dist/src/rules/index.js +3 -0
- package/dist/src/rules/index.js.map +1 -1
- package/dist/src/rules/namespace.d.ts +20 -0
- package/dist/src/rules/namespace.d.ts.map +1 -1
- package/dist/src/rules/namespace.js +43 -1
- package/dist/src/rules/namespace.js.map +1 -1
- package/dist/src/rules/properties.d.ts.map +1 -1
- package/dist/src/rules/properties.js +14 -5
- package/dist/src/rules/properties.js.map +1 -1
- package/dist/src/rules/skip-token.d.ts +6 -0
- package/dist/src/rules/skip-token.d.ts.map +1 -0
- package/dist/src/rules/skip-token.js +37 -0
- package/dist/src/rules/skip-token.js.map +1 -0
- package/dist/src/supressions/csdl-suppression-rules.d.ts.map +1 -1
- package/dist/src/supressions/csdl-suppression-rules.js +1 -0
- package/dist/src/supressions/csdl-suppression-rules.js.map +1 -1
- package/dist/src/utils.d.ts +19 -3
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +108 -10
- package/dist/src/utils.js.map +1 -1
- package/dist/src/validate.d.ts.map +1 -1
- package/dist/src/validate.js +7 -0
- package/dist/src/validate.js.map +1 -1
- package/lib/decorators.tsp +59 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC"}
|
|
@@ -9,4 +9,24 @@ export declare function validateWorkloadNamespaceName(program: Program): void;
|
|
|
9
9
|
export declare const namespacesMustBeCamelCase: import("@typespec/compiler").LinterRuleDefinition<"namespaces-must-be-camel-case", {
|
|
10
10
|
readonly default: import("@typespec/compiler").CallableMessage<["namespace", "suggested"]>;
|
|
11
11
|
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Linter rule that fires a warning when `@namespaceAlias("")` is used to suppress
|
|
14
|
+
* the conventional namespace alias.
|
|
15
|
+
*
|
|
16
|
+
* `@namespaceAlias("")` is an escape hatch reserved for workloads that predate the
|
|
17
|
+
* alias-by-convention feature and cannot adopt the conventional alias without a
|
|
18
|
+
* breaking change in their CSDL output. New workloads must not use this pattern.
|
|
19
|
+
*
|
|
20
|
+
* To silence this warning on a legacy namespace, add:
|
|
21
|
+
* ```typespec
|
|
22
|
+
* #suppress "@microsoft/typespec-msgraph/namespace-alias-convention-suppressed"
|
|
23
|
+
* "Legacy workload: predates the alias convention"
|
|
24
|
+
* @namespaceAlias("")
|
|
25
|
+
* @publicNamespace("microsoft.graph.legacy")
|
|
26
|
+
* namespace legacyWorkload;
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare const namespaceAliasConventionSuppressed: import("@typespec/compiler").LinterRuleDefinition<"namespace-alias-convention-suppressed", {
|
|
30
|
+
readonly default: "Using @namespaceAlias(\"\") to suppress the conventional namespace alias is reserved for workloads that predate the alias convention and must not be used by new workloads. Consider omitting @namespaceAlias and letting the conventional alias be derived, or using @namespaceAlias(\"desired-alias\") to override it.";
|
|
31
|
+
}>;
|
|
12
32
|
//# sourceMappingURL=namespace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/rules/namespace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAsF,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/rules/namespace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAsF,MAAM,oBAAoB,CAAC;AAMjI,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QA0B3D;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAqB3D;AAED,wBAAgB,gDAAgD,CAAC,OAAO,EAAE,OAAO,QAkChF;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,QAqB7D;AASD;;GAEG;AACH,eAAO,MAAM,yBAAyB;;EA+CpC,CAAC;AASH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kCAAkC;;EAuB7C,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { reportDiagnostic } from "../lib.js";
|
|
2
2
|
import { getPublicNamespaceName, hasPublicNamespace } from "../index.js";
|
|
3
3
|
import { getNamespaceFullName, navigateTypesInNamespace, createRule, paramMessage } from "@typespec/compiler";
|
|
4
|
-
import { getIdForType, isExcludedCoreType, isTypeDefinedInExternalLibrary } from "../utils.js";
|
|
4
|
+
import { getIdForType, isExcludedCoreType, isTypeDefinedInExternalLibrary, getSchemaNamespaceName } from "../utils.js";
|
|
5
5
|
import { DEFAULT_MSGRAPH_NAMESPACE, getDeclaredNamespacesForLinting, expandNamespaces } from "../entities/namespace.js";
|
|
6
6
|
import { getWorkloadNamespaceName, hasWorkloadNamespace } from "../decorators/workload-namespace.js";
|
|
7
|
+
import { getConventionalAlias, isNamespaceAliasExplicitlyEmpty } from "../decorators/namespace-alias.js";
|
|
7
8
|
export function validateNamespaceIsRequired(program) {
|
|
8
9
|
for (const namespace of getDeclaredNamespacesForLinting(program)) {
|
|
9
10
|
navigateTypesInNamespace(namespace, {
|
|
@@ -160,4 +161,45 @@ export const namespacesMustBeCamelCase = createRule({
|
|
|
160
161
|
function isExcludedNamespace(namespaceName) {
|
|
161
162
|
return namespaceName.startsWith('MsGraph');
|
|
162
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Linter rule that fires a warning when `@namespaceAlias("")` is used to suppress
|
|
166
|
+
* the conventional namespace alias.
|
|
167
|
+
*
|
|
168
|
+
* `@namespaceAlias("")` is an escape hatch reserved for workloads that predate the
|
|
169
|
+
* alias-by-convention feature and cannot adopt the conventional alias without a
|
|
170
|
+
* breaking change in their CSDL output. New workloads must not use this pattern.
|
|
171
|
+
*
|
|
172
|
+
* To silence this warning on a legacy namespace, add:
|
|
173
|
+
* ```typespec
|
|
174
|
+
* #suppress "@microsoft/typespec-msgraph/namespace-alias-convention-suppressed"
|
|
175
|
+
* "Legacy workload: predates the alias convention"
|
|
176
|
+
* @namespaceAlias("")
|
|
177
|
+
* @publicNamespace("microsoft.graph.legacy")
|
|
178
|
+
* namespace legacyWorkload;
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
export const namespaceAliasConventionSuppressed = createRule({
|
|
182
|
+
name: "namespace-alias-convention-suppressed",
|
|
183
|
+
severity: "warning",
|
|
184
|
+
description: "Suppressing the conventional namespace alias is discouraged. This opt-out is reserved for legacy workloads that predate the alias convention.",
|
|
185
|
+
messages: {
|
|
186
|
+
default: `Using @namespaceAlias("") to suppress the conventional namespace alias is reserved for workloads that predate the alias convention and must not be used by new workloads. Consider omitting @namespaceAlias and letting the conventional alias be derived, or using @namespaceAlias("desired-alias") to override it.`,
|
|
187
|
+
},
|
|
188
|
+
create(context) {
|
|
189
|
+
return {
|
|
190
|
+
namespace: (namespace) => {
|
|
191
|
+
if (!isNamespaceAliasExplicitlyEmpty(context.program, namespace)) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
// Only warn when the opt-out actually suppresses a conventional alias that
|
|
195
|
+
// would otherwise have been derived (i.e., microsoft.graph.<suffix> namespaces).
|
|
196
|
+
const schemaName = getSchemaNamespaceName(context.program, namespace);
|
|
197
|
+
if (!getConventionalAlias(schemaName)) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
context.reportDiagnostic({ target: namespace });
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
},
|
|
204
|
+
});
|
|
163
205
|
//# sourceMappingURL=namespace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/rules/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAW,oBAAoB,EAAE,wBAAwB,EAAa,UAAU,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACjI,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/rules/namespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../src/rules/properties.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAShB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../src/rules/properties.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAShB,MAAM,oBAAoB,CAAC;AAe5B,eAAO,MAAM,yBAAyB;;EAgCpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;EAgCrC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;EAwCjC,CAAC;AA6BH,eAAO,MAAM,kDAAkD;;;EAoB7D,CAAC;AA0HH,eAAO,MAAM,0BAA0B;;EA2BrC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createRule, paramMessage, } from "@typespec/compiler";
|
|
2
2
|
import { isEntity, isComplex, getGraphRoutePaths, hasGraphRoute } from "../index.js";
|
|
3
|
+
import { getFlatBagDiscriminator, isFlatBag } from "../decorators/flat-bag.js";
|
|
3
4
|
import { findOneOfWordsIC, getActualType, getInterfacesTargetingModel, startsWithVariantIC, toSameFirstCharCasingAs, } from "../utils.js";
|
|
4
5
|
import { getDeclaredNamespacesForLinting } from "../entities/namespace.js";
|
|
5
6
|
const CREATED_WORD_LIST = ["creation", "create"];
|
|
@@ -228,12 +229,20 @@ export const propertyMustNotBeNamedType = createRule({
|
|
|
228
229
|
create(context) {
|
|
229
230
|
return {
|
|
230
231
|
modelProperty: (property) => {
|
|
231
|
-
if (property.name.toLowerCase()
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
232
|
+
if (property.name.toLowerCase() !== "type") {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
// @flatBag discriminators are conventionally named 'type' (e.g. recurrencePattern.type).
|
|
236
|
+
// Exempt the discriminator property of any @flatBag model from this rule.
|
|
237
|
+
const model = property.model;
|
|
238
|
+
if (model && isFlatBag(context.program, model) &&
|
|
239
|
+
getFlatBagDiscriminator(context.program, model) === property.name) {
|
|
240
|
+
return;
|
|
236
241
|
}
|
|
242
|
+
context.reportDiagnostic({
|
|
243
|
+
target: property,
|
|
244
|
+
format: {},
|
|
245
|
+
});
|
|
237
246
|
},
|
|
238
247
|
};
|
|
239
248
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/rules/properties.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/rules/properties.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Program } from "@typespec/compiler";
|
|
2
|
+
/**
|
|
3
|
+
* @skipToken applies to get operations that return collections.
|
|
4
|
+
*/
|
|
5
|
+
export declare function validateSkipTokenAppliesToGetOperationsThatReturnCollections(program: Program): void;
|
|
6
|
+
//# sourceMappingURL=skip-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skip-token.d.ts","sourceRoot":"","sources":["../../../src/rules/skip-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4B,MAAM,oBAAoB,CAAC;AAOvE;;GAEG;AACH,wBAAgB,4DAA4D,CAAC,OAAO,EAAE,OAAO,QA4B5F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { navigateTypesInNamespace } from "@typespec/compiler";
|
|
2
|
+
import { getOperationVerb } from "@typespec/http";
|
|
3
|
+
import { isSkipToken } from "../index.js";
|
|
4
|
+
import { isTypeCollection } from "../utils.js";
|
|
5
|
+
import { reportDiagnostic } from "../lib.js";
|
|
6
|
+
import { getDeclaredNamespacesForLinting } from "../entities/namespace.js";
|
|
7
|
+
/**
|
|
8
|
+
* @skipToken applies to get operations that return collections.
|
|
9
|
+
*/
|
|
10
|
+
export function validateSkipTokenAppliesToGetOperationsThatReturnCollections(program) {
|
|
11
|
+
for (const namespace of getDeclaredNamespacesForLinting(program)) {
|
|
12
|
+
navigateTypesInNamespace(namespace, {
|
|
13
|
+
operation: (operation) => {
|
|
14
|
+
if (!isSkipToken(program, operation)) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (getOperationVerb(program, operation) === "get") {
|
|
18
|
+
const returnType = operation.returnType;
|
|
19
|
+
const isCollection = isTypeCollection(program, returnType);
|
|
20
|
+
if (isCollection) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
reportDiagnostic(program, {
|
|
25
|
+
code: "decorator-invalid-use",
|
|
26
|
+
target: operation,
|
|
27
|
+
messageId: "wrongType",
|
|
28
|
+
format: {
|
|
29
|
+
decorator: "@skipToken",
|
|
30
|
+
target: "get operation that returns a collection",
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=skip-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skip-token.js","sourceRoot":"","sources":["../../../src/rules/skip-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAE3E;;GAEG;AACH,MAAM,UAAU,4DAA4D,CAAC,OAAgB;IAC3F,KAAK,MAAM,SAAS,IAAI,+BAA+B,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,wBAAwB,CAAC,SAAS,EAAE;YAClC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;gBACvB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;oBACrC,OAAO;gBACT,CAAC;gBAED,IAAI,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC;oBACnD,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;oBACxC,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBAC3D,IAAI,YAAY,EAAE,CAAC;wBACjB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE;wBACN,SAAS,EAAE,YAAY;wBACvB,MAAM,EAAE,yCAAyC;qBAClD;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csdl-suppression-rules.d.ts","sourceRoot":"","sources":["../../../src/supressions/csdl-suppression-rules.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAmBnE,CAAC;AAIF,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"csdl-suppression-rules.d.ts","sourceRoot":"","sources":["../../../src/supressions/csdl-suppression-rules.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAmBnE,CAAC;AAIF,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK7E"}
|
|
@@ -33,6 +33,7 @@ export const csdlSuppressionRules = {
|
|
|
33
33
|
};
|
|
34
34
|
export function findCsdlValidationRule(linterRule) {
|
|
35
35
|
const rule = linterRule.split('/').pop();
|
|
36
|
+
/* c8 ignore next -- `String.prototype.split` always returns >=1 element, so `pop()` cannot return undefined; the `?? DEFAULT_RULE` fallback is defensive only. */
|
|
36
37
|
const csdlRule = csdlSuppressionRules[rule !== null && rule !== void 0 ? rule : DEFAULT_RULE];
|
|
37
38
|
return csdlRule;
|
|
38
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csdl-suppression-rules.js","sourceRoot":"","sources":["../../../src/supressions/csdl-suppression-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,0CAA0C,EAAE,oCAAoC,EAAE,MAAM,yBAAyB,CAAC;AAClK,OAAO,EAAE,qCAAqC,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,6CAA6C,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,sCAAsC,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxJ,OAAO,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,kDAAkD,EAAE,MAAM,wBAAwB,CAAC;AAEvM,MAAM,YAAY,GAAG,SAAS,CAAC;AAC/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAuC;IACtE,CAAC,qCAAqC,CAAC,IAAI,CAAC,EAAE,uCAAuC;IACrF,CAAC,oCAAoC,CAAC,IAAI,CAAC,EAAE,YAAY;IACzD,CAAC,0CAA0C,CAAC,IAAI,CAAC,EAAE,iDAAiD;IACpG,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,mCAAmC;IACrE,CAAC,qCAAqC,CAAC,IAAI,CAAC,EAAE,4CAA4C;IAC1F,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,gCAAgC;IACpE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,WAAW;IACxC,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,6BAA6B;IACjE,CAAC,sCAAsC,CAAC,IAAI,CAAC,EAAE,wCAAwC;IACvF,CAAC,kDAAkD,CAAC,IAAI,CAAC,EAAE,2CAA2C;IACtG,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,4BAA4B;IAC/D,CAAC,6CAA6C,CAAC,IAAI,CAAC,EAAE,+CAA+C;IACrG,CAAC,kCAAkC,CAAC,IAAI,CAAC,EAAE,oCAAoC;IAC/E,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,0BAA0B;IAC5D,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,uBAAuB;IACpD,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,2BAA2B;IAC9D,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,wBAAwB;IACvD,YAAY,EAAE,SAAS;CACxB,CAAC;AAIF,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,YAAY,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"csdl-suppression-rules.js","sourceRoot":"","sources":["../../../src/supressions/csdl-suppression-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,0CAA0C,EAAE,oCAAoC,EAAE,MAAM,yBAAyB,CAAC;AAClK,OAAO,EAAE,qCAAqC,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,6CAA6C,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,sCAAsC,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxJ,OAAO,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,kDAAkD,EAAE,MAAM,wBAAwB,CAAC;AAEvM,MAAM,YAAY,GAAG,SAAS,CAAC;AAC/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAuC;IACtE,CAAC,qCAAqC,CAAC,IAAI,CAAC,EAAE,uCAAuC;IACrF,CAAC,oCAAoC,CAAC,IAAI,CAAC,EAAE,YAAY;IACzD,CAAC,0CAA0C,CAAC,IAAI,CAAC,EAAE,iDAAiD;IACpG,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,mCAAmC;IACrE,CAAC,qCAAqC,CAAC,IAAI,CAAC,EAAE,4CAA4C;IAC1F,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,gCAAgC;IACpE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,WAAW;IACxC,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,6BAA6B;IACjE,CAAC,sCAAsC,CAAC,IAAI,CAAC,EAAE,wCAAwC;IACvF,CAAC,kDAAkD,CAAC,IAAI,CAAC,EAAE,2CAA2C;IACtG,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,4BAA4B;IAC/D,CAAC,6CAA6C,CAAC,IAAI,CAAC,EAAE,+CAA+C;IACrG,CAAC,kCAAkC,CAAC,IAAI,CAAC,EAAE,oCAAoC;IAC/E,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,0BAA0B;IAC5D,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,uBAAuB;IACpD,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,2BAA2B;IAC9D,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,wBAAwB;IACvD,YAAY,EAAE,SAAS;CACxB,CAAC;AAIF,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACzC,kKAAkK;IAClK,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,YAAY,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -15,18 +15,34 @@ export interface MsGraphInterface {
|
|
|
15
15
|
}
|
|
16
16
|
export declare function hasSchemaNamespace(program: Program, namespace: Namespace): boolean;
|
|
17
17
|
export declare function getSchemaNamespaceName(program: Program, namespace: Namespace): string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Returns the effective namespace alias for `namespace`, combining explicit and conventional aliases.
|
|
20
|
+
* An explicit alias set by `@namespaceAlias` always takes precedence.
|
|
21
|
+
* If `@namespaceAlias("")` is used (the opt-out sentinel), `undefined` is returned, suppressing
|
|
22
|
+
* the conventional alias that would otherwise be derived from the schema namespace name.
|
|
23
|
+
* If no decorator is set, a conventional alias is derived from the schema namespace name
|
|
24
|
+
* when it follows the `microsoft.graph.<suffix>` pattern.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getEffectiveNamespaceAlias(program: Program, namespace: Namespace): string | undefined;
|
|
27
|
+
/** Returns `true` when an effective alias exists (either explicit or conventional). */
|
|
28
|
+
export declare function hasEffectiveNamespaceAlias(program: Program, namespace: Namespace): boolean;
|
|
18
29
|
export declare function getNameForType(program: Program, type: Type): string;
|
|
19
|
-
export declare function getNameForModelType(program: Program, type: Model | Scalar | IntrinsicType): string;
|
|
30
|
+
export declare function getNameForModelType(program: Program, type: Model | Scalar | IntrinsicType, currentNamespace?: Namespace): string;
|
|
20
31
|
export declare function getCSDLPrimitiveType(typespecType: string): string;
|
|
21
32
|
export declare function isDictionaryType(program: Program, type: Type): boolean;
|
|
22
33
|
export declare function generateDictionaryBaseType(program: Program, model: Model): string | undefined;
|
|
23
|
-
export declare function getIdForType(program: Program, type: Type): string;
|
|
34
|
+
export declare function getIdForType(program: Program, type: Type, currentNamespace?: Namespace): string;
|
|
35
|
+
/**
|
|
36
|
+
* Gets the ID for a type, using the namespace alias when referencing types
|
|
37
|
+
* within the same namespace as the current context.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getIdForTypeWithAlias(program: Program, type: Type, currentNamespace: Namespace): string;
|
|
24
40
|
export declare function getNavigationTypeId(program: Program, getOperation: Operation): string;
|
|
25
41
|
export declare function getInterfacesOfKinds(program: Program, navigationSources: Map<string, Interface>, kinds: string[]): Map<string, MsGraphInterface>;
|
|
26
42
|
export declare function isRouteIndexOfACollection(theInterface: Interface | undefined, graphRoute: string): boolean;
|
|
27
43
|
export declare function getComposableFunctionSegmentFromGraphRoute(graphRoutePath: string): string | undefined;
|
|
28
44
|
export declare function getCollectionIndexInterfaces(program: Program, navigationSources: Map<string, Interface>): Map<string, MsGraphInterface>;
|
|
29
|
-
export declare function getPropertyTypeName(program: Program, type: Type): string;
|
|
45
|
+
export declare function getPropertyTypeName(program: Program, type: Type, currentNamespace?: Namespace): string;
|
|
30
46
|
export declare function removeReferencePrefixFromType(typeName: string): string;
|
|
31
47
|
export declare function isTypeNullable(program: Program, type: Type, targetTypeCheck?: (t: Type) => boolean): boolean;
|
|
32
48
|
export declare function isNullType(type: Type): boolean;
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAGJ,SAAS,EACT,aAAa,EAEb,KAAK,EACL,aAAa,EACb,SAAS,EAET,OAAO,EACP,SAAS,EACT,OAAO,EAEP,MAAM,EACN,IAAI,EACJ,KAAK,EAEN,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getLocationContext, getNamespaceFullName, isArrayModelType, navigateTypesInNamespace, walkPropertiesInherited, } from "@typespec/compiler";
|
|
2
|
-
import { getEntity, getExpand, getFilter, getGraphRoutePaths, getPublicNamespaceName, getWorkloadNamespaceName, hasGraphRoute, hasPublicNamespace, hasWorkloadNamespace, isComplex, isContains, isDelta, isEntity, isExpand, isFilter, isPartial, isReferences, isSharedEntity } from "./decorators/index.js";
|
|
2
|
+
import { getEntity, getExpand, getFilter, getGraphRoutePaths, getNamespaceAlias, getConventionalAlias, isNamespaceAliasExplicitlyEmpty, getPublicNamespaceName, getWorkloadNamespaceName, hasGraphRoute, hasPublicNamespace, hasWorkloadNamespace, isComplex, isContains, isDelta, isEntity, isExpand, isFilter, isPartial, isReferences, isSharedEntity } from "./decorators/index.js";
|
|
3
3
|
import { getOperationVerb } from "@typespec/http";
|
|
4
4
|
import { DEFAULT_MSGRAPH_NAMESPACE, GetDeclaredNamespaces, usedLibraryTypesKey } from "./entities/namespace.js";
|
|
5
5
|
import { PathTree } from "./path-tree.js";
|
|
@@ -16,6 +16,26 @@ export function getSchemaNamespaceName(program, namespace) {
|
|
|
16
16
|
}
|
|
17
17
|
return getPublicNamespaceName(program, namespace);
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Returns the effective namespace alias for `namespace`, combining explicit and conventional aliases.
|
|
21
|
+
* An explicit alias set by `@namespaceAlias` always takes precedence.
|
|
22
|
+
* If `@namespaceAlias("")` is used (the opt-out sentinel), `undefined` is returned, suppressing
|
|
23
|
+
* the conventional alias that would otherwise be derived from the schema namespace name.
|
|
24
|
+
* If no decorator is set, a conventional alias is derived from the schema namespace name
|
|
25
|
+
* when it follows the `microsoft.graph.<suffix>` pattern.
|
|
26
|
+
*/
|
|
27
|
+
export function getEffectiveNamespaceAlias(program, namespace) {
|
|
28
|
+
var _a;
|
|
29
|
+
// @namespaceAlias("") is the explicit opt-out: suppress the conventional alias.
|
|
30
|
+
if (isNamespaceAliasExplicitlyEmpty(program, namespace)) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
return (_a = getNamespaceAlias(program, namespace)) !== null && _a !== void 0 ? _a : getConventionalAlias(getSchemaNamespaceName(program, namespace));
|
|
34
|
+
}
|
|
35
|
+
/** Returns `true` when an effective alias exists (either explicit or conventional). */
|
|
36
|
+
export function hasEffectiveNamespaceAlias(program, namespace) {
|
|
37
|
+
return !!getEffectiveNamespaceAlias(program, namespace);
|
|
38
|
+
}
|
|
19
39
|
export function getNameForType(program, type) {
|
|
20
40
|
switch (type.kind) {
|
|
21
41
|
case "Union":
|
|
@@ -38,7 +58,7 @@ export function getNameForType(program, type) {
|
|
|
38
58
|
return type.kind;
|
|
39
59
|
}
|
|
40
60
|
}
|
|
41
|
-
export function getNameForModelType(program, type) {
|
|
61
|
+
export function getNameForModelType(program, type, currentNamespace) {
|
|
42
62
|
switch (type.name) {
|
|
43
63
|
case "string":
|
|
44
64
|
case "url":
|
|
@@ -87,7 +107,7 @@ export function getNameForModelType(program, type) {
|
|
|
87
107
|
if (type.name !== "Array" || type.kind !== "Model" || !type.indexer) {
|
|
88
108
|
return type.name;
|
|
89
109
|
}
|
|
90
|
-
return `Collection(${getPropertyTypeName(program, type.indexer.value)})`;
|
|
110
|
+
return `Collection(${getPropertyTypeName(program, type.indexer.value, currentNamespace)})`;
|
|
91
111
|
}
|
|
92
112
|
export function getCSDLPrimitiveType(typespecType) {
|
|
93
113
|
switch (typespecType) {
|
|
@@ -149,7 +169,7 @@ export function generateDictionaryBaseType(program, model) {
|
|
|
149
169
|
}
|
|
150
170
|
return undefined;
|
|
151
171
|
}
|
|
152
|
-
export function getIdForType(program, type) {
|
|
172
|
+
export function getIdForType(program, type, currentNamespace) {
|
|
153
173
|
switch (type.kind) {
|
|
154
174
|
case "Namespace":
|
|
155
175
|
if (hasWorkloadNamespace(program, type)) {
|
|
@@ -165,13 +185,13 @@ export function getIdForType(program, type) {
|
|
|
165
185
|
case "Enum":
|
|
166
186
|
case "Operation":
|
|
167
187
|
case "Interface":
|
|
168
|
-
return `${getIdForType(program, type.namespace)}.${type.name}`;
|
|
188
|
+
return `${getIdForType(program, type.namespace, currentNamespace)}.${type.name}`;
|
|
169
189
|
case "String":
|
|
170
190
|
case "Number":
|
|
171
191
|
case "Boolean":
|
|
172
192
|
return `${type.value}`;
|
|
173
193
|
case "Union":
|
|
174
|
-
return getIdForUnion(program, type);
|
|
194
|
+
return getIdForUnion(program, type, currentNamespace);
|
|
175
195
|
case "Scalar":
|
|
176
196
|
case "Intrinsic":
|
|
177
197
|
return getNameForModelType(program, type);
|
|
@@ -181,6 +201,69 @@ export function getIdForType(program, type) {
|
|
|
181
201
|
return type.kind;
|
|
182
202
|
}
|
|
183
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Gets the ID for a type, using the namespace alias when referencing types
|
|
206
|
+
* within the same namespace as the current context.
|
|
207
|
+
*/
|
|
208
|
+
export function getIdForTypeWithAlias(program, type, currentNamespace) {
|
|
209
|
+
switch (type.kind) {
|
|
210
|
+
case "Namespace":
|
|
211
|
+
// Check if this is the same namespace as current context
|
|
212
|
+
if (currentNamespace === type) {
|
|
213
|
+
const alias = getEffectiveNamespaceAlias(program, type);
|
|
214
|
+
if (alias) {
|
|
215
|
+
return alias;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Fall through to regular logic
|
|
219
|
+
if (hasWorkloadNamespace(program, type)) {
|
|
220
|
+
return getWorkloadNamespaceName(program, type);
|
|
221
|
+
}
|
|
222
|
+
else if (hasPublicNamespace(program, type)) {
|
|
223
|
+
return getPublicNamespaceName(program, type);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
return getNamespaceFullName(type);
|
|
227
|
+
}
|
|
228
|
+
case "Model":
|
|
229
|
+
// Handle Array types specially for Collection syntax
|
|
230
|
+
if (type.name === "Array" && type.indexer) {
|
|
231
|
+
return `Collection(${getPropertyTypeName(program, type.indexer.value, currentNamespace)})`;
|
|
232
|
+
}
|
|
233
|
+
// Use the alias only when the type is directly in the current namespace
|
|
234
|
+
if (type.namespace && type.namespace === currentNamespace) {
|
|
235
|
+
const alias = getEffectiveNamespaceAlias(program, currentNamespace);
|
|
236
|
+
if (alias) {
|
|
237
|
+
return `${alias}.${type.name}`;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return `${getIdForTypeWithAlias(program, type.namespace, currentNamespace)}.${type.name}`;
|
|
241
|
+
case "Enum":
|
|
242
|
+
case "Operation":
|
|
243
|
+
case "Interface":
|
|
244
|
+
// Use the alias only when the type is directly in the current namespace
|
|
245
|
+
if (type.namespace && type.namespace === currentNamespace) {
|
|
246
|
+
const alias = getEffectiveNamespaceAlias(program, currentNamespace);
|
|
247
|
+
if (alias) {
|
|
248
|
+
return `${alias}.${type.name}`;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return `${getIdForTypeWithAlias(program, type.namespace, currentNamespace)}.${type.name}`;
|
|
252
|
+
case "String":
|
|
253
|
+
case "Number":
|
|
254
|
+
case "Boolean":
|
|
255
|
+
return `${type.value}`;
|
|
256
|
+
case "Union":
|
|
257
|
+
return getIdForUnionWithAlias(program, type, currentNamespace);
|
|
258
|
+
case "Scalar":
|
|
259
|
+
case "Intrinsic":
|
|
260
|
+
return getNameForModelType(program, type, currentNamespace);
|
|
261
|
+
case "EnumMember":
|
|
262
|
+
return `${type.name}`;
|
|
263
|
+
default:
|
|
264
|
+
return type.kind;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
184
267
|
export function getNavigationTypeId(program, getOperation) {
|
|
185
268
|
var _a, _b;
|
|
186
269
|
const returnType = getOperation.returnType;
|
|
@@ -264,7 +347,7 @@ function processGraphRoute(program, graphRoute, interfaces, theInterface) {
|
|
|
264
347
|
path: graphRoute
|
|
265
348
|
});
|
|
266
349
|
}
|
|
267
|
-
export function getPropertyTypeName(program, type) {
|
|
350
|
+
export function getPropertyTypeName(program, type, currentNamespace) {
|
|
268
351
|
var _a;
|
|
269
352
|
if (type.kind === "Union") {
|
|
270
353
|
const unionTypes = extractTypesFromUnion(type);
|
|
@@ -272,11 +355,18 @@ export function getPropertyTypeName(program, type) {
|
|
|
272
355
|
if (!nonNullTypes.length) {
|
|
273
356
|
return "undefined.";
|
|
274
357
|
}
|
|
275
|
-
return removeReferencePrefixFromType(getPropertyTypeName(program, nonNullTypes[0]));
|
|
358
|
+
return removeReferencePrefixFromType(getPropertyTypeName(program, nonNullTypes[0], currentNamespace));
|
|
359
|
+
}
|
|
360
|
+
// Handle Array types before TypeSpec namespace check to allow alias usage in collections
|
|
361
|
+
if (type.kind === "Model" && type.name === "Array" && type.indexer && currentNamespace) {
|
|
362
|
+
return removeReferencePrefixFromType(`Collection(${getPropertyTypeName(program, type.indexer.value, currentNamespace)})`);
|
|
276
363
|
}
|
|
277
364
|
if ((type.kind === "Model" || type.kind === "Scalar") && ((_a = type.namespace) === null || _a === void 0 ? void 0 : _a.name) === "TypeSpec") {
|
|
278
365
|
return removeReferencePrefixFromType(getNameForType(program, type));
|
|
279
366
|
}
|
|
367
|
+
if (currentNamespace && hasEffectiveNamespaceAlias(program, currentNamespace)) {
|
|
368
|
+
return removeReferencePrefixFromType(getIdForTypeWithAlias(program, type, currentNamespace));
|
|
369
|
+
}
|
|
280
370
|
return removeReferencePrefixFromType(getIdForType(program, type));
|
|
281
371
|
}
|
|
282
372
|
export function removeReferencePrefixFromType(typeName) {
|
|
@@ -294,13 +384,21 @@ export function isTypeNullable(program, type, targetTypeCheck) {
|
|
|
294
384
|
}
|
|
295
385
|
return isNullable;
|
|
296
386
|
}
|
|
297
|
-
function getIdForUnion(program, unionType) {
|
|
387
|
+
function getIdForUnion(program, unionType, currentNamespace) {
|
|
388
|
+
const unionTypes = extractTypesFromUnion(unionType);
|
|
389
|
+
const nonNullTypes = unionTypes.filter((t) => !isNullType(t));
|
|
390
|
+
if (!nonNullTypes.length) {
|
|
391
|
+
return "undefined.";
|
|
392
|
+
}
|
|
393
|
+
return getIdForType(program, nonNullTypes[0], currentNamespace);
|
|
394
|
+
}
|
|
395
|
+
function getIdForUnionWithAlias(program, unionType, currentNamespace) {
|
|
298
396
|
const unionTypes = extractTypesFromUnion(unionType);
|
|
299
397
|
const nonNullTypes = unionTypes.filter((t) => !isNullType(t));
|
|
300
398
|
if (!nonNullTypes.length) {
|
|
301
399
|
return "undefined.";
|
|
302
400
|
}
|
|
303
|
-
return
|
|
401
|
+
return getIdForTypeWithAlias(program, nonNullTypes[0], currentNamespace);
|
|
304
402
|
}
|
|
305
403
|
export function isNullType(type) {
|
|
306
404
|
return type.kind === "Intrinsic" && type.name === "null";
|