@azure-tools/typespec-ts 0.17.0-alpha.20231010.1 → 0.17.1
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/CHANGELOG.md +12 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/modular/buildClassicalClient.d.ts.map +1 -1
- package/dist/src/modular/buildClassicalClient.js +16 -0
- package/dist/src/modular/buildClassicalClient.js.map +1 -1
- package/dist/src/modular/buildCodeModel.d.ts.map +1 -1
- package/dist/src/modular/buildCodeModel.js +9 -0
- package/dist/src/modular/buildCodeModel.js.map +1 -1
- package/dist/src/modular/buildProjectFiles.d.ts.map +1 -1
- package/dist/src/modular/buildProjectFiles.js +10 -5
- package/dist/src/modular/buildProjectFiles.js.map +1 -1
- package/dist/src/modular/emitModels.d.ts.map +1 -1
- package/dist/src/modular/emitModels.js +2 -1
- package/dist/src/modular/emitModels.js.map +1 -1
- package/dist/src/modular/helpers/typeHelpers.js +7 -7
- package/dist/src/modular/helpers/typeHelpers.js.map +1 -1
- package/dist/src/transform/transform.d.ts.map +1 -1
- package/dist/src/transform/transform.js +5 -1
- package/dist/src/transform/transform.js.map +1 -1
- package/dist/src/transform/transformParameters.js +2 -1
- package/dist/src/transform/transformParameters.js.map +1 -1
- package/dist/src/transform/transformSchemas.d.ts.map +1 -1
- package/dist/src/transform/transformSchemas.js +13 -11
- package/dist/src/transform/transformSchemas.js.map +1 -1
- package/dist/src/utils/emitUtil.d.ts.map +1 -1
- package/dist/src/utils/emitUtil.js +9 -3
- package/dist/src/utils/emitUtil.js.map +1 -1
- package/dist/src/utils/modelUtils.d.ts.map +1 -1
- package/dist/src/utils/modelUtils.js +135 -129
- package/dist/src/utils/modelUtils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -5
- package/src/index.ts +8 -1
- package/src/modular/buildClassicalClient.ts +17 -0
- package/src/modular/buildCodeModel.ts +8 -0
- package/src/modular/buildProjectFiles.ts +11 -5
- package/src/modular/emitModels.ts +5 -1
- package/src/modular/helpers/typeHelpers.ts +1 -1
- package/src/transform/transform.ts +8 -2
- package/src/transform/transformParameters.ts +2 -1
- package/src/transform/transformSchemas.ts +7 -3
- package/src/utils/emitUtil.ts +9 -3
- package/src/utils/modelUtils.ts +148 -143
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
import { getDiscriminator, getDoc, getEffectiveModelType, getFormat, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getProperty, getPropertyType, getSummary, getVisibility, isNeverType, isNumericType, isSecret, isStringType, isTemplateDeclaration, isUnknownType, isNullType, getProjectedName, NoTarget, listServices, getEncode } from "@typespec/compiler";
|
|
3
|
+
import { getDiscriminator, getDoc, getEffectiveModelType, getFormat, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getProperty, getPropertyType, getSummary, getVisibility, isNeverType, isNumericType, isSecret, isStringType, isTemplateDeclaration, isUnknownType, isNullType, getProjectedName, NoTarget, listServices, getEncode, isRecordModelType, isArrayModelType } from "@typespec/compiler";
|
|
4
4
|
import { reportDiagnostic } from "../lib.js";
|
|
5
5
|
import { NameType, normalizeName, SchemaContext } from "@azure-tools/rlc-common";
|
|
6
6
|
import { getResourceOperation } from "@typespec/rest";
|
|
@@ -62,7 +62,7 @@ export function enrichBinaryTypeInBody(schema) {
|
|
|
62
62
|
export function getSchemaForType(dpgContext, typeInput, usage, needRef = false, relevantProperty) {
|
|
63
63
|
const program = dpgContext.program;
|
|
64
64
|
const type = getEffectiveModelFromType(program, typeInput);
|
|
65
|
-
const builtinType =
|
|
65
|
+
const builtinType = getSchemaForLiteral(type);
|
|
66
66
|
if (builtinType !== undefined) {
|
|
67
67
|
// add in description elements for types derived from primitive types (SecureString, etc.)
|
|
68
68
|
const doc = getDoc(program, type);
|
|
@@ -73,18 +73,20 @@ export function getSchemaForType(dpgContext, typeInput, usage, needRef = false,
|
|
|
73
73
|
}
|
|
74
74
|
if (type.kind === "Model") {
|
|
75
75
|
const schema = getSchemaForModel(dpgContext, type, usage, needRef);
|
|
76
|
-
if (
|
|
77
|
-
if (
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
schema.
|
|
81
|
-
|
|
82
|
-
schema.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
76
|
+
if (!isArrayModelType(program, type) && !isRecordModelType(program, type)) {
|
|
77
|
+
if (usage && usage.includes(SchemaContext.Output)) {
|
|
78
|
+
if (!schema.name || schema.name === "") {
|
|
79
|
+
//TODO: HANDLE ANONYMOUS
|
|
80
|
+
schema.outputTypeName =
|
|
81
|
+
schema.type === "object" ? "Record<string, any>" : "any";
|
|
82
|
+
schema.typeName =
|
|
83
|
+
schema.type === "object" ? "Record<string, unknown>" : "unknown";
|
|
84
|
+
schema.type = "unknown";
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
schema.outputTypeName = `${schema.name}Output`;
|
|
88
|
+
schema.typeName = `${schema.name}`;
|
|
89
|
+
}
|
|
88
90
|
}
|
|
89
91
|
}
|
|
90
92
|
schema.usage = usage;
|
|
@@ -326,6 +328,9 @@ function isSchemaProperty(program, property) {
|
|
|
326
328
|
}
|
|
327
329
|
function getSchemaForModel(dpgContext, model, usage, needRef) {
|
|
328
330
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
331
|
+
if (isArrayModelType(dpgContext.program, model)) {
|
|
332
|
+
return getSchemaForArrayModel(dpgContext, model, usage);
|
|
333
|
+
}
|
|
329
334
|
const program = dpgContext.program;
|
|
330
335
|
const overridedModelName = (_a = getFriendlyName(program, model)) !== null && _a !== void 0 ? _a : getProjectedName(program, model, "json");
|
|
331
336
|
let name = model.name;
|
|
@@ -348,14 +353,20 @@ function getSchemaForModel(dpgContext, model, usage, needRef) {
|
|
|
348
353
|
})
|
|
349
354
|
.join("") + "List";
|
|
350
355
|
}
|
|
351
|
-
|
|
356
|
+
const modelSchema = {
|
|
352
357
|
name: overridedModelName !== null && overridedModelName !== void 0 ? overridedModelName : name,
|
|
353
358
|
type: "object",
|
|
354
359
|
description: (_b = getDoc(program, model)) !== null && _b !== void 0 ? _b : ""
|
|
355
360
|
};
|
|
356
361
|
// normalized the output name
|
|
357
362
|
modelSchema.name = normalizeName(modelSchema.name, NameType.Interface, true /** shouldGuard */);
|
|
363
|
+
if (modelSchema.name === "Record" && isRecordModelType(program, model)) {
|
|
364
|
+
return getSchemaForRecordModel(dpgContext, model, usage);
|
|
365
|
+
}
|
|
358
366
|
modelSchema.typeName = modelSchema.name;
|
|
367
|
+
if (usage && usage.includes(SchemaContext.Output)) {
|
|
368
|
+
modelSchema.outputTypeName = modelSchema.name + "Output";
|
|
369
|
+
}
|
|
359
370
|
if (isAzureCoreErrorType(model)) {
|
|
360
371
|
modelSchema.fromCore = true;
|
|
361
372
|
}
|
|
@@ -425,6 +436,12 @@ function getSchemaForModel(dpgContext, model, usage, needRef) {
|
|
|
425
436
|
if (needRef) {
|
|
426
437
|
return modelSchema;
|
|
427
438
|
}
|
|
439
|
+
if (isRecordModelType(program, model)) {
|
|
440
|
+
modelSchema.parents = {
|
|
441
|
+
all: [getSchemaForRecordModel(dpgContext, model, usage)],
|
|
442
|
+
immediate: [getSchemaForRecordModel(dpgContext, model, usage)]
|
|
443
|
+
};
|
|
444
|
+
}
|
|
428
445
|
for (const [propName, prop] of model.properties) {
|
|
429
446
|
const restApiName = getProjectedName(program, prop, "json");
|
|
430
447
|
const name = `"${restApiName !== null && restApiName !== void 0 ? restApiName : propName}"`;
|
|
@@ -478,26 +495,7 @@ function getSchemaForModel(dpgContext, model, usage, needRef) {
|
|
|
478
495
|
}
|
|
479
496
|
modelSchema.properties[name] = newPropSchema;
|
|
480
497
|
}
|
|
481
|
-
|
|
482
|
-
// has no properties of its own, absorb the definition of the base model
|
|
483
|
-
// into this schema definition. The assumption here is that any model type
|
|
484
|
-
// defined like this is just meant to rename the underlying instance of a
|
|
485
|
-
// templated type.
|
|
486
|
-
if (model.baseModel &&
|
|
487
|
-
model.baseModel.templateMapper &&
|
|
488
|
-
model.baseModel.templateMapper.args &&
|
|
489
|
-
model.baseModel.templateMapper.args.length > 0 &&
|
|
490
|
-
modelSchema.properties &&
|
|
491
|
-
Object.keys(modelSchema.properties).length === 0) {
|
|
492
|
-
// Take the base model schema but carry across the documentation property
|
|
493
|
-
// that we set before
|
|
494
|
-
const baseSchema = getSchemaForType(dpgContext, model.baseModel, usage);
|
|
495
|
-
modelSchema = {
|
|
496
|
-
...baseSchema,
|
|
497
|
-
description: modelSchema.description
|
|
498
|
-
};
|
|
499
|
-
}
|
|
500
|
-
else if (model.baseModel) {
|
|
498
|
+
if (model.baseModel) {
|
|
501
499
|
modelSchema.parents = {
|
|
502
500
|
all: [getSchemaForType(dpgContext, model.baseModel, usage, true)],
|
|
503
501
|
immediate: [getSchemaForType(dpgContext, model.baseModel, usage, true)]
|
|
@@ -507,16 +505,14 @@ function getSchemaForModel(dpgContext, model, usage, needRef) {
|
|
|
507
505
|
}
|
|
508
506
|
// Map an typespec type to an OA schema. Returns undefined when the resulting
|
|
509
507
|
// OA schema is just a regular object schema.
|
|
510
|
-
function
|
|
508
|
+
function getSchemaForLiteral(type) {
|
|
511
509
|
switch (type.kind) {
|
|
512
510
|
case "Number":
|
|
513
|
-
return { type: `${type.value}
|
|
511
|
+
return { type: `${type.value}`, isConstant: true };
|
|
514
512
|
case "String":
|
|
515
|
-
return { type: `"${type.value}"
|
|
513
|
+
return { type: `"${type.value}"`, isConstant: true };
|
|
516
514
|
case "Boolean":
|
|
517
|
-
return { type: `${type.value}
|
|
518
|
-
case "Model":
|
|
519
|
-
return mapTypeSpecStdTypeToTypeScript(dpgContext, type, usage);
|
|
515
|
+
return { type: `${type.value}`, isConstant: true };
|
|
520
516
|
}
|
|
521
517
|
if (type.kind === undefined) {
|
|
522
518
|
if (typeof type === "string") {
|
|
@@ -526,6 +522,7 @@ function mapTypeSpecTypeToTypeScript(dpgContext, type, usage) {
|
|
|
526
522
|
return { type: `${type}` };
|
|
527
523
|
}
|
|
528
524
|
}
|
|
525
|
+
return undefined;
|
|
529
526
|
}
|
|
530
527
|
function applyIntrinsicDecorators(program, type, target) {
|
|
531
528
|
const newTarget = { ...target };
|
|
@@ -577,7 +574,7 @@ function getSchemaForEnumMember(program, e) {
|
|
|
577
574
|
var _a;
|
|
578
575
|
const value = (_a = e.value) !== null && _a !== void 0 ? _a : e.name;
|
|
579
576
|
const type = enumMemberType(e) === "string" ? `"${value}"` : `${value}`;
|
|
580
|
-
return { type, description: getDoc(program, e) };
|
|
577
|
+
return { type, description: getDoc(program, e), isConstant: true };
|
|
581
578
|
}
|
|
582
579
|
function getSchemaForEnum(program, e) {
|
|
583
580
|
var _a;
|
|
@@ -613,100 +610,109 @@ function enumMemberType(member) {
|
|
|
613
610
|
/**
|
|
614
611
|
* Map TypeSpec intrinsic models to open api definitions
|
|
615
612
|
*/
|
|
616
|
-
function
|
|
617
|
-
var _a
|
|
618
|
-
const program = dpgContext
|
|
619
|
-
const indexer = type
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
schema.outputValueTypeName = `${valueType.outputTypeName}`;
|
|
639
|
-
}
|
|
640
|
-
}
|
|
641
|
-
else if (isUnknownType(indexer.value)) {
|
|
642
|
-
schema.typeName = `Record<string, ${(_a = valueType.typeName) !== null && _a !== void 0 ? _a : valueType.type}>`;
|
|
643
|
-
if (usage && usage.includes(SchemaContext.Output)) {
|
|
644
|
-
schema.outputTypeName = `Record<string, ${(_b = valueType.outputTypeName) !== null && _b !== void 0 ? _b : valueType.type}>`;
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
else {
|
|
648
|
-
schema.typeName = `Record<string, ${getTypeName(valueType, [
|
|
649
|
-
SchemaContext.Input
|
|
650
|
-
])}>`;
|
|
651
|
-
schema.outputTypeName = `Record<string, ${getTypeName(valueType, [
|
|
652
|
-
SchemaContext.Output
|
|
653
|
-
])}>`;
|
|
654
|
-
}
|
|
613
|
+
function getSchemaForArrayModel(dpgContext, type, usage) {
|
|
614
|
+
var _a;
|
|
615
|
+
const { program } = dpgContext;
|
|
616
|
+
const { indexer } = type;
|
|
617
|
+
let schema = {};
|
|
618
|
+
if (!indexer) {
|
|
619
|
+
return schema;
|
|
620
|
+
}
|
|
621
|
+
if (isArrayModelType(program, type)) {
|
|
622
|
+
schema = {
|
|
623
|
+
type: "array",
|
|
624
|
+
items: getSchemaForType(dpgContext, indexer.value, usage, true),
|
|
625
|
+
description: getDoc(program, type)
|
|
626
|
+
};
|
|
627
|
+
if (!program.checker.isStdType(indexer.value) &&
|
|
628
|
+
!isUnknownType(indexer.value) &&
|
|
629
|
+
((_a = indexer.value) === null || _a === void 0 ? void 0 : _a.kind) &&
|
|
630
|
+
schema.items.name &&
|
|
631
|
+
!schema.items.enum) {
|
|
632
|
+
schema.typeName = `Array<${schema.items.name}>`;
|
|
633
|
+
if (usage && usage.includes(SchemaContext.Output)) {
|
|
634
|
+
schema.outputTypeName = `Array<${schema.items.name}Output>`;
|
|
655
635
|
}
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
}
|
|
662
|
-
if (
|
|
663
|
-
|
|
664
|
-
((_c = indexer.value) === null || _c === void 0 ? void 0 : _c.kind) &&
|
|
665
|
-
schema.items.name &&
|
|
666
|
-
!schema.items.enum) {
|
|
667
|
-
schema.typeName = `Array<${schema.items.name}>`;
|
|
668
|
-
if (usage && usage.includes(SchemaContext.Output)) {
|
|
669
|
-
schema.outputTypeName = `Array<${schema.items.name}Output>`;
|
|
670
|
-
}
|
|
636
|
+
}
|
|
637
|
+
else {
|
|
638
|
+
if (schema.items.typeName) {
|
|
639
|
+
if (schema.items.type === "dictionary") {
|
|
640
|
+
schema.typeName = `${schema.items.typeName}[]`;
|
|
641
|
+
}
|
|
642
|
+
else if (schema.items.type === "union") {
|
|
643
|
+
schema.typeName = `(${schema.items.typeName})[]`;
|
|
671
644
|
}
|
|
672
645
|
else {
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
}
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
usage &&
|
|
689
|
-
usage.includes(SchemaContext.Output)) {
|
|
690
|
-
schema.outputTypeName = schema.items.outputTypeName
|
|
691
|
-
.split("|")
|
|
692
|
-
.map((typeName) => {
|
|
693
|
-
return `${typeName}[]`;
|
|
694
|
-
})
|
|
695
|
-
.join(" | ");
|
|
696
|
-
}
|
|
697
|
-
}
|
|
698
|
-
}
|
|
699
|
-
else if (schema.items.type.includes("|")) {
|
|
700
|
-
schema.typeName = `(${schema.items.type})[]`;
|
|
701
|
-
}
|
|
702
|
-
else {
|
|
703
|
-
schema.typeName = `${schema.items.type}[]`;
|
|
646
|
+
schema.typeName = schema.items.typeName
|
|
647
|
+
.split("|")
|
|
648
|
+
.map((typeName) => {
|
|
649
|
+
return `${typeName}[]`;
|
|
650
|
+
})
|
|
651
|
+
.join(" | ");
|
|
652
|
+
if (schema.items.outputTypeName &&
|
|
653
|
+
usage &&
|
|
654
|
+
usage.includes(SchemaContext.Output)) {
|
|
655
|
+
schema.outputTypeName = schema.items.outputTypeName
|
|
656
|
+
.split("|")
|
|
657
|
+
.map((typeName) => {
|
|
658
|
+
return `${typeName}[]`;
|
|
659
|
+
})
|
|
660
|
+
.join(" | ");
|
|
704
661
|
}
|
|
705
662
|
}
|
|
706
663
|
}
|
|
707
|
-
schema.
|
|
708
|
-
|
|
664
|
+
else if (schema.items.type.includes("|")) {
|
|
665
|
+
schema.typeName = `(${schema.items.type})[]`;
|
|
666
|
+
}
|
|
667
|
+
else {
|
|
668
|
+
schema.typeName = `${schema.items.type}[]`;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
schema.usage = usage;
|
|
672
|
+
return schema;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
function getSchemaForRecordModel(dpgContext, type, usage) {
|
|
676
|
+
var _a, _b;
|
|
677
|
+
const { program } = dpgContext;
|
|
678
|
+
const { indexer } = type;
|
|
679
|
+
let schema = {};
|
|
680
|
+
if (!indexer) {
|
|
681
|
+
return schema;
|
|
682
|
+
}
|
|
683
|
+
if (isRecordModelType(program, type)) {
|
|
684
|
+
const valueType = getSchemaForType(dpgContext, indexer === null || indexer === void 0 ? void 0 : indexer.value, usage, true);
|
|
685
|
+
schema = {
|
|
686
|
+
type: "dictionary",
|
|
687
|
+
additionalProperties: valueType,
|
|
688
|
+
description: getDoc(program, type)
|
|
689
|
+
};
|
|
690
|
+
if (!program.checker.isStdType(indexer.value) &&
|
|
691
|
+
!isUnknownType(indexer.value) &&
|
|
692
|
+
!isUnionType(indexer.value)) {
|
|
693
|
+
schema.typeName = `Record<string, ${valueType.typeName}>`;
|
|
694
|
+
schema.valueTypeName = valueType.name;
|
|
695
|
+
if (usage && usage.includes(SchemaContext.Output)) {
|
|
696
|
+
schema.outputTypeName = `Record<string, ${valueType.outputTypeName}>`;
|
|
697
|
+
schema.outputValueTypeName = `${valueType.outputTypeName}`;
|
|
698
|
+
}
|
|
709
699
|
}
|
|
700
|
+
else if (isUnknownType(indexer.value)) {
|
|
701
|
+
schema.typeName = `Record<string, ${(_a = valueType.typeName) !== null && _a !== void 0 ? _a : valueType.type}>`;
|
|
702
|
+
if (usage && usage.includes(SchemaContext.Output)) {
|
|
703
|
+
schema.outputTypeName = `Record<string, ${(_b = valueType.outputTypeName) !== null && _b !== void 0 ? _b : valueType.type}>`;
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
else {
|
|
707
|
+
schema.typeName = `Record<string, ${getTypeName(valueType, [
|
|
708
|
+
SchemaContext.Input
|
|
709
|
+
])}>`;
|
|
710
|
+
schema.outputTypeName = `Record<string, ${getTypeName(valueType, [
|
|
711
|
+
SchemaContext.Output
|
|
712
|
+
])}>`;
|
|
713
|
+
}
|
|
714
|
+
schema.usage = usage;
|
|
715
|
+
return schema;
|
|
710
716
|
}
|
|
711
717
|
}
|
|
712
718
|
function isUnionType(type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelUtils.js","sourceRoot":"","sources":["../../../src/utils/modelUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modelUtils.js","sourceRoot":"","sources":["../../../src/utils/modelUtils.ts"],"names":[],"mappings":"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"}
|