@typespec/openapi3 0.64.0-dev.1 → 0.64.0-dev.4
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/README.md +4 -0
- package/dist/src/attach-extensions.d.ts +3 -0
- package/dist/src/attach-extensions.d.ts.map +1 -0
- package/dist/src/attach-extensions.js +11 -0
- package/dist/src/attach-extensions.js.map +1 -0
- package/dist/src/encoding.d.ts +2 -2
- package/dist/src/encoding.d.ts.map +1 -1
- package/dist/src/encoding.js +3 -2
- package/dist/src/encoding.js.map +1 -1
- package/dist/src/json-schema.d.ts +3 -0
- package/dist/src/json-schema.d.ts.map +1 -0
- package/dist/src/json-schema.js +9 -0
- package/dist/src/json-schema.js.map +1 -0
- package/dist/src/lib.d.ts +1 -0
- 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/openapi-helpers-3-0.d.ts +6 -0
- package/dist/src/openapi-helpers-3-0.d.ts.map +1 -0
- package/dist/src/openapi-helpers-3-0.js +15 -0
- package/dist/src/openapi-helpers-3-0.js.map +1 -0
- package/dist/src/openapi-helpers-3-1.d.ts +6 -0
- package/dist/src/openapi-helpers-3-1.d.ts.map +1 -0
- package/dist/src/openapi-helpers-3-1.js +23 -0
- package/dist/src/openapi-helpers-3-1.js.map +1 -0
- package/dist/src/openapi-spec-mappings.d.ts +33 -0
- package/dist/src/openapi-spec-mappings.d.ts.map +1 -0
- package/dist/src/openapi-spec-mappings.js +53 -0
- package/dist/src/openapi-spec-mappings.js.map +1 -0
- package/dist/src/openapi.d.ts +2 -1
- package/dist/src/openapi.d.ts.map +1 -1
- package/dist/src/openapi.js +42 -44
- package/dist/src/openapi.js.map +1 -1
- package/dist/src/schema-emitter-3-0.d.ts +19 -0
- package/dist/src/schema-emitter-3-0.d.ts.map +1 -0
- package/dist/src/schema-emitter-3-0.js +199 -0
- package/dist/src/schema-emitter-3-0.js.map +1 -0
- package/dist/src/schema-emitter-3-1.d.ts +24 -0
- package/dist/src/schema-emitter-3-1.d.ts.map +1 -0
- package/dist/src/schema-emitter-3-1.js +226 -0
- package/dist/src/schema-emitter-3-1.js.map +1 -0
- package/dist/src/schema-emitter.d.ts +33 -10
- package/dist/src/schema-emitter.d.ts.map +1 -1
- package/dist/src/schema-emitter.js +104 -280
- package/dist/src/schema-emitter.js.map +1 -1
- package/dist/src/std-scalar-schemas.d.ts +2 -2
- package/dist/src/std-scalar-schemas.d.ts.map +1 -1
- package/dist/src/types.d.ts +352 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/util.d.ts +10 -0
- package/dist/src/util.d.ts.map +1 -1
- package/dist/src/util.js +42 -0
- package/dist/src/util.js.map +1 -1
- package/dist/src/xml-module.d.ts +3 -3
- package/dist/src/xml-module.d.ts.map +1 -1
- package/dist/src/xml-module.js.map +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { compilerAssert, getExamples, getMaxValueExclusive, getMinValueExclusive, serializeValueAsJson, } from "@typespec/compiler";
|
|
2
|
+
import { ArrayBuilder, createAssetEmitter, ObjectBuilder, Placeholder, } from "@typespec/compiler/emitter-framework";
|
|
3
|
+
import { shouldInline } from "@typespec/openapi";
|
|
4
|
+
import { getOneOf } from "./decorators.js";
|
|
5
|
+
import { reportDiagnostic } from "./lib.js";
|
|
6
|
+
import { applyEncoding, getRawBinarySchema } from "./openapi-helpers-3-1.js";
|
|
7
|
+
import { Builders, OpenAPI3SchemaEmitterBase } from "./schema-emitter.js";
|
|
8
|
+
import { isBytesKeptRaw, isLiteralType, literalType } from "./util.js";
|
|
9
|
+
function createWrappedSchemaEmitterClass(metadataInfo, visibilityUsage, options, optionalDependencies) {
|
|
10
|
+
return class extends OpenAPI31SchemaEmitter {
|
|
11
|
+
constructor(emitter) {
|
|
12
|
+
super(emitter, metadataInfo, visibilityUsage, options, optionalDependencies);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export const createSchemaEmitter3_1 = ({ program, context, ...rest }) => {
|
|
17
|
+
return createAssetEmitter(program, createWrappedSchemaEmitterClass(rest.metadataInfo, rest.visibilityUsage, rest.options, rest.optionalDependencies), context);
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* OpenAPI 3.1 schema emitter. Deals with emitting content of `components/schemas` section.
|
|
21
|
+
*/
|
|
22
|
+
export class OpenAPI31SchemaEmitter extends OpenAPI3SchemaEmitterBase {
|
|
23
|
+
#applySchemaExamples(program, type, target) {
|
|
24
|
+
const examples = getExamples(program, type);
|
|
25
|
+
if (examples.length > 0) {
|
|
26
|
+
target.set("examples", examples.map((example) => serializeValueAsJson(program, example.value, type)));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
applyCustomConstraints(type, target, refSchema) {
|
|
30
|
+
const applyConstraint = (fn, key) => {
|
|
31
|
+
const value = fn(program, type);
|
|
32
|
+
if (value !== undefined) {
|
|
33
|
+
target[key] = value;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const applyTypeConstraint = (fn, key) => {
|
|
37
|
+
const constraintType = fn(this.emitter.getProgram(), type);
|
|
38
|
+
if (constraintType) {
|
|
39
|
+
const ref = this.emitter.emitTypeReference(constraintType);
|
|
40
|
+
compilerAssert(ref.kind === "code", "Unexpected non-code result from emit reference");
|
|
41
|
+
target.set(key, ref.value);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const program = this.emitter.getProgram();
|
|
45
|
+
const minValueExclusive = getMinValueExclusive(program, type);
|
|
46
|
+
if (minValueExclusive !== undefined) {
|
|
47
|
+
target.minimum = undefined;
|
|
48
|
+
target.exclusiveMinimum = minValueExclusive;
|
|
49
|
+
}
|
|
50
|
+
const maxValueExclusive = getMaxValueExclusive(program, type);
|
|
51
|
+
if (maxValueExclusive !== undefined) {
|
|
52
|
+
target.maximum = undefined;
|
|
53
|
+
target.exclusiveMaximum = maxValueExclusive;
|
|
54
|
+
}
|
|
55
|
+
// apply json schema decorators
|
|
56
|
+
const jsonSchemaModule = this._jsonSchemaModule;
|
|
57
|
+
if (jsonSchemaModule) {
|
|
58
|
+
applyTypeConstraint(jsonSchemaModule.getContains, "contains");
|
|
59
|
+
applyConstraint(jsonSchemaModule.getMinContains, "minContains");
|
|
60
|
+
applyConstraint(jsonSchemaModule.getMaxContains, "maxContains");
|
|
61
|
+
applyConstraint(jsonSchemaModule.getContentEncoding, "contentEncoding");
|
|
62
|
+
applyConstraint(jsonSchemaModule.getContentMediaType, "contentMediaType");
|
|
63
|
+
applyTypeConstraint(jsonSchemaModule.getContentSchema, "contentSchema");
|
|
64
|
+
const prefixItems = jsonSchemaModule.getPrefixItems(program, type);
|
|
65
|
+
if (prefixItems) {
|
|
66
|
+
const prefixItemsSchema = new ArrayBuilder();
|
|
67
|
+
for (const item of prefixItems.values) {
|
|
68
|
+
prefixItemsSchema.push(this.emitter.emitTypeReference(item));
|
|
69
|
+
}
|
|
70
|
+
target.set("prefixItems", prefixItemsSchema);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
this.#applySchemaExamples(program, type, target);
|
|
74
|
+
}
|
|
75
|
+
applyEncoding(typespecType, target) {
|
|
76
|
+
return applyEncoding(this.emitter.getProgram(), typespecType, target, this._options);
|
|
77
|
+
}
|
|
78
|
+
getRawBinarySchema() {
|
|
79
|
+
return getRawBinarySchema();
|
|
80
|
+
}
|
|
81
|
+
getSchemaForStdScalars(scalar) {
|
|
82
|
+
// Raw binary data is handled separately when resolving a request/response body.
|
|
83
|
+
// Open API 3.1 treats encoded binaries differently from Open API 3.0, so we need to handle
|
|
84
|
+
// the Scalar 'bytes' special here.
|
|
85
|
+
// @see https://spec.openapis.org/oas/v3.1.1.html#working-with-binary-data
|
|
86
|
+
if (scalar.name === "bytes") {
|
|
87
|
+
const contentType = this.emitter.getContext().contentType;
|
|
88
|
+
return { type: "string", contentMediaType: contentType, contentEncoding: "base64" };
|
|
89
|
+
}
|
|
90
|
+
return super.getSchemaForStdScalars(scalar);
|
|
91
|
+
}
|
|
92
|
+
enumSchema(en) {
|
|
93
|
+
const program = this.emitter.getProgram();
|
|
94
|
+
if (en.members.size === 0) {
|
|
95
|
+
reportDiagnostic(program, { code: "empty-enum", target: en });
|
|
96
|
+
return {};
|
|
97
|
+
}
|
|
98
|
+
const enumTypes = new Set();
|
|
99
|
+
const enumValues = new Set();
|
|
100
|
+
for (const member of en.members.values()) {
|
|
101
|
+
enumTypes.add(typeof member.value === "number" ? "number" : "string");
|
|
102
|
+
enumValues.add(member.value ?? member.name);
|
|
103
|
+
}
|
|
104
|
+
const enumTypesArray = [...enumTypes];
|
|
105
|
+
const schema = {
|
|
106
|
+
type: enumTypesArray.length === 1 ? enumTypesArray[0] : enumTypesArray,
|
|
107
|
+
enum: [...enumValues],
|
|
108
|
+
};
|
|
109
|
+
return this.applyConstraints(en, schema);
|
|
110
|
+
}
|
|
111
|
+
unionSchema(union) {
|
|
112
|
+
const program = this.emitter.getProgram();
|
|
113
|
+
if (union.variants.size === 0) {
|
|
114
|
+
reportDiagnostic(program, { code: "empty-union", target: union });
|
|
115
|
+
return new ObjectBuilder({});
|
|
116
|
+
}
|
|
117
|
+
const variants = Array.from(union.variants.values());
|
|
118
|
+
const literalVariantEnumByType = {};
|
|
119
|
+
const ofType = getOneOf(program, union) ? "oneOf" : "anyOf";
|
|
120
|
+
const schemaMembers = [];
|
|
121
|
+
const isMultipart = this.getContentType().startsWith("multipart/");
|
|
122
|
+
// 1. Iterate over all the union variants to generate a schema for each one.
|
|
123
|
+
for (const variant of variants) {
|
|
124
|
+
// 2. Special handling for multipart - want to treat as binary
|
|
125
|
+
if (isMultipart && isBytesKeptRaw(program, variant.type)) {
|
|
126
|
+
schemaMembers.push({ schema: this.getRawBinarySchema(), type: variant.type });
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
// 3.a. Literal types are actual values (though not Value types)
|
|
130
|
+
if (isLiteralType(variant.type)) {
|
|
131
|
+
// Create schemas grouped by kind (boolean, string, numeric)
|
|
132
|
+
// and add the literals seen to each respective `enum` array
|
|
133
|
+
if (!literalVariantEnumByType[variant.type.kind]) {
|
|
134
|
+
const enumValue = [variant.type.value];
|
|
135
|
+
literalVariantEnumByType[variant.type.kind] = enumValue;
|
|
136
|
+
schemaMembers.push({
|
|
137
|
+
schema: { type: literalType(variant.type), enum: enumValue },
|
|
138
|
+
type: null,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
literalVariantEnumByType[variant.type.kind].push(variant.type.value);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// 3.b. Anything else, we get the schema for that type.
|
|
147
|
+
const enumSchema = this.emitter.emitTypeReference(variant.type, {
|
|
148
|
+
referenceContext: isMultipart ? { contentType: "application/json" } : {},
|
|
149
|
+
});
|
|
150
|
+
compilerAssert(enumSchema.kind === "code", "Unexpected enum schema. Should be kind: code");
|
|
151
|
+
schemaMembers.push({ schema: enumSchema.value, type: variant.type });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const wrapWithObjectBuilder = (schemaMember, { mergeUnionWideConstraints }) => {
|
|
155
|
+
const schema = schemaMember.schema;
|
|
156
|
+
const type = schemaMember.type;
|
|
157
|
+
const additionalProps = mergeUnionWideConstraints
|
|
158
|
+
? this.applyConstraints(union, {})
|
|
159
|
+
: {};
|
|
160
|
+
if (Object.keys(additionalProps).length === 0) {
|
|
161
|
+
return new ObjectBuilder(schema);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
if ((schema instanceof Placeholder || "$ref" in schema) &&
|
|
165
|
+
!(type && shouldInline(program, type))) {
|
|
166
|
+
if (type && (type.kind === "Model" || type.kind === "Scalar")) {
|
|
167
|
+
return new ObjectBuilder({
|
|
168
|
+
type: "object",
|
|
169
|
+
allOf: Builders.array([schema]),
|
|
170
|
+
...additionalProps,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
return new ObjectBuilder({ allOf: Builders.array([schema]), ...additionalProps });
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const merged = new ObjectBuilder(schema);
|
|
179
|
+
for (const [key, value] of Object.entries(additionalProps)) {
|
|
180
|
+
merged.set(key, value);
|
|
181
|
+
}
|
|
182
|
+
return merged;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
if (schemaMembers.length === 0) {
|
|
187
|
+
compilerAssert(false, "Attempting to emit an empty union");
|
|
188
|
+
}
|
|
189
|
+
if (schemaMembers.length === 1) {
|
|
190
|
+
return wrapWithObjectBuilder(schemaMembers[0], { mergeUnionWideConstraints: true });
|
|
191
|
+
}
|
|
192
|
+
const schema = {
|
|
193
|
+
[ofType]: schemaMembers.map((m) => wrapWithObjectBuilder(m, { mergeUnionWideConstraints: false })),
|
|
194
|
+
};
|
|
195
|
+
this.applyDiscriminator(union, schema);
|
|
196
|
+
return this.applyConstraints(union, schema);
|
|
197
|
+
}
|
|
198
|
+
intrinsic(intrinsic, name) {
|
|
199
|
+
switch (name) {
|
|
200
|
+
case "unknown":
|
|
201
|
+
return {};
|
|
202
|
+
case "null":
|
|
203
|
+
return { type: "null" };
|
|
204
|
+
}
|
|
205
|
+
reportDiagnostic(this.emitter.getProgram(), {
|
|
206
|
+
code: "invalid-schema",
|
|
207
|
+
format: { type: name },
|
|
208
|
+
target: intrinsic,
|
|
209
|
+
});
|
|
210
|
+
return {};
|
|
211
|
+
}
|
|
212
|
+
tupleLiteral(tuple) {
|
|
213
|
+
return new ObjectBuilder({
|
|
214
|
+
type: "array",
|
|
215
|
+
prefixItems: this.emitter.emitTupleLiteralValues(tuple),
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
tupleLiteralValues(tuple) {
|
|
219
|
+
const values = new ArrayBuilder();
|
|
220
|
+
for (const value of tuple.values.values()) {
|
|
221
|
+
values.push(this.emitter.emitType(value));
|
|
222
|
+
}
|
|
223
|
+
return values;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=schema-emitter-3-1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-emitter-3-1.js","sourceRoot":"","sources":["../../src/schema-emitter-3-1.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,35 @@
|
|
|
1
|
-
import { BooleanLiteral, Enum, EnumMember,
|
|
2
|
-
import { AssetEmitter, Context, Declaration, EmitEntity, EmitterOutput, ReferenceCycle, Scope, TypeEmitter } from "@typespec/compiler/emitter-framework";
|
|
1
|
+
import { BooleanLiteral, DiscriminatedUnion, Enum, EnumMember, IntrinsicScalarName, Model, ModelProperty, NumericLiteral, Program, Scalar, StringLiteral, StringTemplate, Tuple, Type, Union, UnionVariant } from "@typespec/compiler";
|
|
2
|
+
import { ArrayBuilder, AssetEmitter, Context, Declaration, EmitEntity, EmitterOutput, ObjectBuilder, Placeholder, ReferenceCycle, Scope, TypeEmitter } from "@typespec/compiler/emitter-framework";
|
|
3
3
|
import { MetadataInfo } from "@typespec/http";
|
|
4
|
+
import { JsonSchemaModule } from "./json-schema.js";
|
|
4
5
|
import { OpenAPI3EmitterOptions } from "./lib.js";
|
|
5
6
|
import { ResolvedOpenAPI3EmitterOptions } from "./openapi.js";
|
|
6
|
-
import { OpenAPI3Schema, OpenAPI3SchemaProperty } from "./types.js";
|
|
7
|
+
import { OpenAPI3Schema, OpenAPI3SchemaProperty, OpenAPISchema3_1 } from "./types.js";
|
|
7
8
|
import { VisibilityUsageTracker } from "./visibility-usage.js";
|
|
8
9
|
import { XmlModule } from "./xml-module.js";
|
|
9
10
|
/**
|
|
10
|
-
* OpenAPI3 schema emitter. Deals with emitting content of `components/schemas` section.
|
|
11
|
+
* Base OpenAPI3 schema emitter. Deals with emitting content of `components/schemas` section.
|
|
11
12
|
*/
|
|
12
|
-
export declare class
|
|
13
|
+
export declare class OpenAPI3SchemaEmitterBase<Schema extends OpenAPI3Schema | OpenAPISchema3_1> extends TypeEmitter<Record<string, any>, OpenAPI3EmitterOptions> {
|
|
13
14
|
#private;
|
|
14
|
-
|
|
15
|
+
protected _metadataInfo: MetadataInfo;
|
|
16
|
+
protected _visibilityUsage: VisibilityUsageTracker;
|
|
17
|
+
protected _options: ResolvedOpenAPI3EmitterOptions;
|
|
18
|
+
protected _jsonSchemaModule: JsonSchemaModule | undefined;
|
|
19
|
+
protected _xmlModule: XmlModule | undefined;
|
|
20
|
+
constructor(emitter: AssetEmitter<Record<string, any>, OpenAPI3EmitterOptions>, metadataInfo: MetadataInfo, visibilityUsage: VisibilityUsageTracker, options: ResolvedOpenAPI3EmitterOptions, optionalDependencies: {
|
|
21
|
+
jsonSchemaModule?: JsonSchemaModule;
|
|
22
|
+
xmlModule?: XmlModule;
|
|
23
|
+
});
|
|
15
24
|
modelDeclarationReferenceContext(model: Model, name: string): Context;
|
|
16
25
|
modelLiteralReferenceContext(model: Model): Context;
|
|
17
26
|
scalarDeclarationReferenceContext(scalar: Scalar, name: string): Context;
|
|
18
27
|
enumDeclarationReferenceContext(en: Enum, name: string): Context;
|
|
19
28
|
unionDeclarationReferenceContext(union: Union): Context;
|
|
20
29
|
reduceContext(type: Type): Context;
|
|
30
|
+
applyDiscriminator(type: Model | Union, schema: Schema): void;
|
|
21
31
|
modelDeclaration(model: Model, _: string): EmitterOutput<object>;
|
|
32
|
+
getContentType(): string;
|
|
22
33
|
modelLiteral(model: Model): EmitterOutput<object>;
|
|
23
34
|
modelInstantiation(model: Model, name: string | undefined): EmitterOutput<Record<string, any>>;
|
|
24
35
|
arrayDeclaration(array: Model, name: string, elementType: Type): EmitterOutput<object>;
|
|
@@ -26,27 +37,39 @@ export declare class OpenAPI3SchemaEmitter extends TypeEmitter<Record<string, an
|
|
|
26
37
|
arrayLiteral(array: Model, elementType: Type): EmitterOutput<object>;
|
|
27
38
|
arrayLiteralReferenceContext(array: Model, elementType: Type): Context;
|
|
28
39
|
modelProperties(model: Model): EmitterOutput<Record<string, OpenAPI3SchemaProperty>>;
|
|
40
|
+
getRawBinarySchema(): Schema;
|
|
29
41
|
modelPropertyLiteral(prop: ModelProperty): EmitterOutput<object>;
|
|
30
42
|
booleanLiteral(boolean: BooleanLiteral): EmitterOutput<object>;
|
|
31
43
|
stringLiteral(string: StringLiteral): EmitterOutput<object>;
|
|
32
44
|
stringTemplate(string: StringTemplate): EmitterOutput<object>;
|
|
33
45
|
numericLiteral(number: NumericLiteral): EmitterOutput<object>;
|
|
34
46
|
enumDeclaration(en: Enum, name: string): EmitterOutput<object>;
|
|
47
|
+
enumSchema(en: Enum): Schema;
|
|
35
48
|
enumMember(member: EnumMember): EmitterOutput<Record<string, any>>;
|
|
36
49
|
enumMemberReference(member: EnumMember): EmitterOutput<Record<string, any>>;
|
|
37
50
|
unionDeclaration(union: Union, name: string): EmitterOutput<object>;
|
|
51
|
+
unionSchema(union: Union): ObjectBuilder<Schema>;
|
|
52
|
+
getDiscriminatorMapping(union: DiscriminatedUnion): Record<string, string>;
|
|
38
53
|
unionLiteral(union: Union): EmitterOutput<object>;
|
|
39
54
|
unionVariants(union: Union): EmitterOutput<object>;
|
|
40
55
|
unionVariant(variant: UnionVariant): EmitterOutput<object>;
|
|
41
56
|
modelPropertyReference(prop: ModelProperty): EmitterOutput<object>;
|
|
42
57
|
reference(targetDeclaration: Declaration<Record<string, unknown>>, pathUp: Scope<Record<string, unknown>>[], pathDown: Scope<Record<string, unknown>>[], commonScope: Scope<Record<string, unknown>> | null): object | EmitEntity<Record<string, unknown>>;
|
|
43
58
|
circularReference(target: EmitEntity<Record<string, any>>, scope: Scope<Record<string, any>> | undefined, cycle: ReferenceCycle): Record<string, any> | EmitEntity<Record<string, any>>;
|
|
44
|
-
scalarDeclaration(scalar: Scalar, name: string): EmitterOutput<
|
|
59
|
+
scalarDeclaration(scalar: Scalar, name: string): EmitterOutput<Schema>;
|
|
45
60
|
scalarInstantiation(scalar: Scalar, name: string | undefined): EmitterOutput<Record<string, any>>;
|
|
46
61
|
tupleLiteral(tuple: Tuple): EmitterOutput<Record<string, any>>;
|
|
47
|
-
|
|
62
|
+
getSchemaForStdScalars(scalar: Scalar & {
|
|
63
|
+
name: IntrinsicScalarName;
|
|
64
|
+
}): Schema;
|
|
65
|
+
applyCustomConstraints(type: Scalar | Model | ModelProperty | Union | Enum, target: Schema, refSchema?: Schema): void;
|
|
66
|
+
applyConstraints(type: Scalar | Model | ModelProperty | Union | Enum, original: Schema, refSchema?: Schema): ObjectBuilder<Schema>;
|
|
67
|
+
applyXml(type: Scalar | Model | ModelProperty | Union | Enum, schema: Schema, refSchema?: Schema): void;
|
|
68
|
+
applyEncoding(typespecType: Scalar | ModelProperty, target: Schema | Placeholder<Schema>): Schema;
|
|
48
69
|
programContext(program: Program): Context;
|
|
49
70
|
}
|
|
50
|
-
export declare
|
|
51
|
-
|
|
71
|
+
export declare const Builders: {
|
|
72
|
+
readonly array: <T>(items: T[]) => ArrayBuilder<T>;
|
|
73
|
+
readonly object: <T extends Record<string, unknown>>(obj: T) => ObjectBuilder<T[string]>;
|
|
74
|
+
};
|
|
52
75
|
//# sourceMappingURL=schema-emitter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-emitter.d.ts","sourceRoot":"","sources":["../../src/schema-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"schema-emitter.d.ts","sourceRoot":"","sources":["../../src/schema-emitter.ts"],"names":[],"mappings":"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"}
|