Skip to content

Commit 135fada

Browse files
authored
tsp - upgrade tsp to 1.5 (#1526)
1 parent 904bae3 commit 135fada

File tree

72 files changed

+301
-598
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+301
-598
lines changed

common/config/rush/pnpm-lock.yaml

Lines changed: 166 additions & 161 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/typespec-powershell/package.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,17 @@
4444
"vitest": "1.6.1"
4545
},
4646
"peerDependencies": {
47-
"@azure-tools/typespec-azure-core": ">=0.59.0 <1.0.0",
48-
"@azure-tools/typespec-client-generator-core": ">=0.59.0 <1.0.0",
49-
"@typespec/compiler": ">=1.3.0 <2.0.0",
50-
"@typespec/http": ">=1.3.0 <2.0.0",
51-
"@typespec/streams": ">=0.72.1 <1.0.0",
52-
"@typespec/xml": ">=0.72.1 <1.0.0",
53-
"@typespec/rest": ">=0.72.1 <1.0.0",
54-
"@typespec/versioning": ">=0.72.1 <1.0.0",
55-
"@typespec/openapi": ">=1.3.0 <2.0.0",
56-
"@azure-tools/typespec-azure-resource-manager": ">=0.59.0 <1.0.0",
57-
"@azure-tools/typespec-azure-rulesets": ">=0.59.0 <1.0.0"
47+
"@azure-tools/typespec-azure-core": ">=0.61.0 <1.0.0",
48+
"@azure-tools/typespec-client-generator-core": ">=0.61.0 <1.0.0",
49+
"@typespec/compiler": ">=1.5.0 <2.0.0",
50+
"@typespec/http": ">=1.5.0 <2.0.0",
51+
"@typespec/streams": ">=0.75.0 <1.0.0",
52+
"@typespec/xml": ">=0.75.0 <1.0.0",
53+
"@typespec/rest": ">=0.75.0 <1.0.0",
54+
"@typespec/versioning": ">=0.75.0 <1.0.0",
55+
"@typespec/openapi": ">=1.5.0 <2.0.0",
56+
"@azure-tools/typespec-azure-resource-manager": ">=0.61.0 <1.0.0",
57+
"@azure-tools/typespec-azure-rulesets": ">=0.61.0 <1.0.0"
5858
},
5959
"scripts": {
6060
"build": "tsc",

packages/typespec-powershell/src/utils/modelUtils.ts

Lines changed: 2 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ import {
6060
createMetadataInfo,
6161
Visibility
6262
} from "@typespec/http";
63-
import { getPagedResult, getUnionAsEnum } from "@azure-tools/typespec-azure-core";
64-
import { extractPagedMetadataNested } from "./operationUtil.js";
63+
import { getUnionAsEnum } from "@azure-tools/typespec-azure-core";
6564
import { pascalCase, deconstruct } from "@azure-tools/codegen";
6665
import {
6766
getDefaultApiVersion,
@@ -780,31 +779,7 @@ function getSchemaForModel(
780779
// let name = dpgContext.rlcOptions?.enableModelNamespace
781780
// ? fullNamespaceName
782781
// : model.name;
783-
let name = model.name;
784-
if (
785-
!overridedModelName &&
786-
model.templateMapper &&
787-
model.templateMapper.args &&
788-
model.templateMapper.args.length > 0 &&
789-
getPagedResult(program, model)
790-
) {
791-
const templateTypes = model.templateMapper.args.filter((it) =>
792-
isType(it)
793-
) as Type[];
794-
name =
795-
templateTypes
796-
.map((it) => {
797-
switch (it.kind) {
798-
case "Model":
799-
return it.name;
800-
case "String":
801-
return it.value;
802-
default:
803-
return "";
804-
}
805-
})
806-
.join("") + "List";
807-
}
782+
const name = model.name;
808783

809784
const modelSchema = new ObjectSchema(overridedModelName ?? name, getDoc(program, model) || "");
810785
// normalized the output name
@@ -844,37 +819,6 @@ function getSchemaForModel(
844819
// modelSchema.fromCore = true;
845820
// }
846821

847-
if (getPagedResult(program, model)) {
848-
const paged = extractPagedMetadataNested(program, model);
849-
if (paged && paged.itemsProperty) {
850-
const items = paged.itemsProperty as unknown as Model;
851-
if (items && items.templateMapper && items.templateMapper.args) {
852-
const templateTypes = items.templateMapper.args.filter((it) =>
853-
isType(it)
854-
) as Type[];
855-
const templateName = templateTypes
856-
?.map((it) => {
857-
switch (it.kind) {
858-
case "Model":
859-
return it.name;
860-
case "String":
861-
return it.value;
862-
default:
863-
return "";
864-
}
865-
})
866-
.join("");
867-
// ToDo by xiaogang
868-
// if (
869-
// paged.itemsProperty.name === "value" &&
870-
// paged.nextLinkProperty?.name === "nextLink"
871-
// ) {
872-
// modelSchema.alias = `Paged<${templateName}>`;
873-
// modelSchema.outputAlias = `Paged<${templateName}Output>`;
874-
// }
875-
}
876-
}
877-
}
878822
modelSchema.properties = [];
879823

880824
// getSchemaOrRef on all children to push them into components.schemas

packages/typespec-powershell/src/utils/operationUtil.ts

Lines changed: 1 addition & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,7 @@ import {
2727
getHttpOperation
2828
} from "@typespec/http";
2929
import {
30-
getLroMetadata,
31-
getPagedResult,
32-
PagedResultMetadata
30+
getLroMetadata
3331
} from "@azure-tools/typespec-azure-core";
3432
import {
3533
getWireName,
@@ -408,36 +406,6 @@ export function hasPagingOperations(
408406
return false;
409407
}
410408

411-
export function extractPagedMetadataNested(
412-
program: Program,
413-
type: Model
414-
): PagedResultMetadata | undefined {
415-
// This only works for `is Page<T>` not `extends Page<T>`.
416-
let paged = getPagedResult(program, type);
417-
if (paged) {
418-
return paged;
419-
}
420-
if (type.baseModel) {
421-
paged = getPagedResult(program, type.baseModel);
422-
}
423-
if (paged) {
424-
return paged;
425-
}
426-
const templateArguments = type.templateMapper?.args;
427-
if (templateArguments) {
428-
for (const argument of templateArguments) {
429-
const modelArgument = argument as Model;
430-
if (modelArgument) {
431-
paged = extractPagedMetadataNested(program, modelArgument);
432-
if (paged) {
433-
return paged;
434-
}
435-
}
436-
}
437-
}
438-
return paged;
439-
}
440-
441409
export function getSpecialSerializeInfo(
442410
paramType: string,
443411
paramFormat: string
@@ -554,17 +522,6 @@ export function isIgnoredHeaderParam(param: HttpOperationParameter) {
554522
);
555523
}
556524

557-
export function parseNextLinkName(
558-
paged: PagedResultMetadata
559-
): string | undefined {
560-
return paged.nextLinkProperty?.name;
561-
}
562-
563-
export function parseItemName(paged: PagedResultMetadata): string | undefined {
564-
// TODO: support the nested item names
565-
return (paged.itemsSegments ?? [])[0];
566-
}
567-
568525
export interface PageDetails {
569526
nextLinkNames: string[];
570527
itemNames: string[];
@@ -605,19 +562,6 @@ export function extractPageDetails(
605562
nextLinkNames: [nextLinkNames],
606563
itemNames: [itemNames]
607564
};
608-
} else {
609-
// TODO: remember to remove this once Azure Paging is removed.
610-
for (const response of operation.responses) {
611-
const paged = extractPagedMetadataNested(program, response.type as Model);
612-
if (paged) {
613-
const nextLinkName = parseNextLinkName(paged) ?? "nextLink";
614-
const itemName = parseItemName(paged) ?? "value";
615-
return {
616-
nextLinkNames: [nextLinkName],
617-
itemNames: [itemName]
618-
};
619-
}
620-
}
621565
}
622566
return undefined;
623567
}

packages/typespec-powershell/src/utils/pageUtils.ts

Lines changed: 1 addition & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@ import {
77
import { ignoreDiagnostics, Model, Program, Type } from "@typespec/compiler";
88
import { getHttpOperation, HttpOperation } from "@typespec/http";
99
import {
10-
hasPagingOperations,
11-
extractPagedMetadataNested,
12-
parseNextLinkName,
13-
parseItemName
10+
hasPagingOperations
1411
} from "../utils/operationUtil.js";
1512
import { listOperations } from "./clientUtils.js";
1613

@@ -23,56 +20,4 @@ export function getPageable(
2320
return program.stateMap(pageableOperationsKey).get(entity);
2421
}
2522

26-
export function extractPageDetailFromCore(
27-
program: Program,
28-
client: SdkClient,
29-
dpgContext: SdkContext
30-
) {
31-
if (!hasPagingOperations(program, client, dpgContext)) {
32-
return;
33-
}
34-
const nextLinks = new Set<string>();
35-
const itemNames = new Set<string>();
36-
// Add default values
37-
nextLinks.add("nextLink");
38-
itemNames.add("value");
39-
const clientOperations = listOperations(client);
40-
for (const clientOp of clientOperations) {
41-
const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
42-
// ignore overload base operation
43-
if (route.overloads && route.overloads?.length > 0) {
44-
continue;
45-
}
46-
extractPageDetailFromCoreForRoute(route);
47-
}
48-
49-
function extractPageDetailFromCoreForRoute(route: HttpOperation) {
50-
for (const response of route.responses) {
51-
const paged = extractPagedMetadataNested(program, response.type as Model);
52-
if (paged) {
53-
const nextLinkName = parseNextLinkName(paged);
54-
if (nextLinkName) {
55-
nextLinks.add(nextLinkName);
56-
}
57-
const itemName = parseItemName(paged);
58-
if (itemName) {
59-
itemNames.add(itemName);
60-
}
61-
// Once we find paged metadata, we don't need to processs any further.
62-
continue;
63-
}
64-
}
65-
}
66-
// If there are more than one options for nextLink and item names we need to generate a
67-
// more complex pagination helper.
68-
const isComplexPaging = nextLinks.size > 1 || itemNames.size > 1;
69-
return {
70-
hasPaging: true,
71-
pageDetails: {
72-
itemNames: [...itemNames],
73-
nextLinkNames: [...nextLinks],
74-
isComplexPaging
75-
}
76-
};
77-
}
7823

tests-upgrade/tests-emitter/AppComplianceAutomation.Management/main.tsp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,5 @@ enum Versions {
3131
/**
3232
* The 2024-06-27 API version.
3333
*/
34-
@useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1)
35-
@useDependency(Azure.Core.Versions.v1_0_Preview_1)
3634
v2024_06_27: "2024-06-27",
3735
}

tests-upgrade/tests-emitter/AppComplianceAutomation.Management/resources/EvidenceResource.tsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ model EvidenceResource extends Azure.ResourceManager.Foundations.ProxyResource {
3737
* Evidence property.
3838
*/
3939
#suppress "deprecated" "Legacy flatten"
40-
@Azure.ClientGenerator.Core.flattenProperty
40+
@Azure.ClientGenerator.Core.Legacy.flattenProperty
4141
properties: EvidenceProperties;
4242
}
4343

tests-upgrade/tests-emitter/AppComplianceAutomation.Management/resources/ReportResource.tsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ model ReportResource extends Azure.ResourceManager.Foundations.ProxyResource {
3737
* Report property.
3838
*/
3939
#suppress "deprecated" "Legacy flatten"
40-
@Azure.ClientGenerator.Core.flattenProperty
40+
@Azure.ClientGenerator.Core.Legacy.flattenProperty
4141
properties: ReportProperties;
4242
}
4343

tests-upgrade/tests-emitter/AppComplianceAutomation.Management/resources/ScopingConfigurationResource.tsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ model ScopingConfigurationResource
4242
* ScopingConfiguration property.
4343
*/
4444
#suppress "deprecated" "Legacy flatten"
45-
@Azure.ClientGenerator.Core.flattenProperty
45+
@Azure.ClientGenerator.Core.Legacy.flattenProperty
4646
properties: ScopingConfigurationProperties;
4747
}
4848

tests-upgrade/tests-emitter/AppComplianceAutomation.Management/resources/SnapshotResource.tsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ model SnapshotResource extends Azure.ResourceManager.Foundations.ProxyResource {
3535
* Snapshot's property.
3636
*/
3737
#suppress "deprecated" "Legacy flatten"
38-
@Azure.ClientGenerator.Core.flattenProperty
38+
@Azure.ClientGenerator.Core.Legacy.flattenProperty
3939
properties?: SnapshotProperties;
4040
}
4141

0 commit comments

Comments
 (0)