@typespec/openapi3 0.45.0-dev.1 → 0.45.0-dev.10

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.
@@ -1,6 +1,6 @@
1
- import { DecoratorContext, Program, Type } from "@typespec/compiler";
2
- export declare function $useRef(context: DecoratorContext, entity: Type, refUrl: string): void;
1
+ import { DecoratorContext, Model, ModelProperty, Program, Type, Union } from "@typespec/compiler";
2
+ export declare function $useRef(context: DecoratorContext, entity: Model | ModelProperty, refUrl: string): void;
3
3
  export declare function getRef(program: Program, entity: Type): string | undefined;
4
- export declare function $oneOf(context: DecoratorContext, entity: Type): void;
4
+ export declare function $oneOf(context: DecoratorContext, entity: Union): void;
5
5
  export declare function getOneOf(program: Program, entity: Type): boolean;
6
6
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAA2B,MAAM,oBAAoB,CAAC;AAI9F,wBAAgB,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAMrF;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAEzE;AAGD,wBAAgB,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,QAK7D;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAEhE"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIlG,wBAAgB,OAAO,CACrB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,KAAK,GAAG,aAAa,EAC7B,MAAM,EAAE,MAAM,GACb,IAAI,CAEN;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAEzE;AAGD,wBAAgB,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,QAE9D;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAEhE"}
@@ -1,10 +1,6 @@
1
- import { validateDecoratorTarget } from "@typespec/compiler";
2
1
  import { createStateSymbol } from "./lib.js";
3
2
  const refTargetsKey = createStateSymbol("refs");
4
3
  export function $useRef(context, entity, refUrl) {
5
- if (!validateDecoratorTarget(context, entity, "@useRef", ["Model", "ModelProperty"])) {
6
- return;
7
- }
8
4
  context.program.stateMap(refTargetsKey).set(entity, refUrl);
9
5
  }
10
6
  export function getRef(program, entity) {
@@ -12,9 +8,6 @@ export function getRef(program, entity) {
12
8
  }
13
9
  const oneOfKey = createStateSymbol("oneOf");
14
10
  export function $oneOf(context, entity) {
15
- if (!validateDecoratorTarget(context, entity, "@oneOf", "Union")) {
16
- return;
17
- }
18
11
  context.program.stateMap(oneOfKey).set(entity, true);
19
12
  }
20
13
  export function getOneOf(program, entity) {
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAChD,MAAM,UAAU,OAAO,CAAC,OAAyB,EAAE,MAAY,EAAE,MAAc;IAC7E,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE;QACpF,OAAO;KACR;IAED,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAgB,EAAE,MAAY;IACnD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC5C,MAAM,UAAU,MAAM,CAAC,OAAyB,EAAE,MAAY;IAC5D,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;QAChE,OAAO;KACR;IACD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAgB,EAAE,MAAY;IACrD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAChD,MAAM,UAAU,OAAO,CACrB,OAAyB,EACzB,MAA6B,EAC7B,MAAc;IAEd,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAgB,EAAE,MAAY;IACnD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC5C,MAAM,UAAU,MAAM,CAAC,OAAyB,EAAE,MAAa;IAC7D,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAgB,EAAE,MAAY;IACrD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,cAAc,EAAgB,MAAM,oBAAoB,CAAC;AAEzF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AACvC,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IAEH,WAAW,CAAC,EAAE,QAAQ,CAAC;IAEvB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAcD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ET,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,iBAAiB,0BAAS,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,cAAc,EAAgB,MAAM,oBAAoB,CAAC;AAEzF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AACvC,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IAEH,WAAW,CAAC,EAAE,QAAQ,CAAC;IAEvB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AA2DD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ET,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,iBAAiB,0BAAS,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC"}
package/dist/src/lib.js CHANGED
@@ -3,10 +3,53 @@ const EmitterOptionsSchema = {
3
3
  type: "object",
4
4
  additionalProperties: false,
5
5
  properties: {
6
- "file-type": { type: "string", enum: ["yaml", "json"], nullable: true },
7
- "output-file": { type: "string", nullable: true },
8
- "new-line": { type: "string", enum: ["crlf", "lf"], default: "lf", nullable: true },
9
- "omit-unreachable-types": { type: "boolean", nullable: true },
6
+ "file-type": {
7
+ type: "string",
8
+ enum: ["yaml", "json"],
9
+ nullable: true,
10
+ description: "If the content should be serialized as YAML or JSON. Default 'yaml', it not specified infer from the `output-file` extension",
11
+ },
12
+ "output-file": {
13
+ type: "string",
14
+ nullable: true,
15
+ description: [
16
+ "Name of the output file.",
17
+ " Output file will interpolate the following values:",
18
+ " - service-name: Name of the service if multiple",
19
+ " - version: Version of the service if multiple",
20
+ "",
21
+ ' Default: `{service-name}.{version}.openapi.yaml` or `.json` if `file-type` is `"json"`',
22
+ "",
23
+ " Example Single service no versioning",
24
+ " - `openapi.yaml`",
25
+ "",
26
+ " Example Multiple services no versioning",
27
+ " - `openapi.Org1.Service1.yaml`",
28
+ " - `openapi.Org1.Service2.yaml`",
29
+ "",
30
+ " Example Single service with versioning",
31
+ " - `openapi.v1.yaml`",
32
+ " - `openapi.v2.yaml`",
33
+ "",
34
+ " Example Multiple service with versioning",
35
+ " - `openapi.Org1.Service1.v1.yaml`",
36
+ " - `openapi.Org1.Service1.v2.yaml`",
37
+ " - `openapi.Org1.Service2.v1.0.yaml`",
38
+ " - `openapi.Org1.Service2.v1.1.yaml` ",
39
+ ].join("\n"),
40
+ },
41
+ "new-line": {
42
+ type: "string",
43
+ enum: ["crlf", "lf"],
44
+ default: "lf",
45
+ nullable: true,
46
+ description: "Set the newline character for emitting files.",
47
+ },
48
+ "omit-unreachable-types": {
49
+ type: "boolean",
50
+ nullable: true,
51
+ description: "Omit unreachable types.\nBy default all types declared under the service namespace will be included. With this flag on only types references in an operation will be emitted.",
52
+ },
10
53
  },
11
54
  required: [],
12
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAkB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmDzF,MAAM,oBAAoB,GAA2C;IACnE,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnF,wBAAwB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC9D;IACD,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE;QACX,yBAAyB,EAAE;YACzB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,oBAAoB,UAAU,mGAAmG;aACvJ;SACF;QACD,oBAAoB,EAAE;YACpB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,4BAA4B;aACtC;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,yDAAyD;aACnE;SACF;QACD,gBAAgB,EAAE;YAChB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,+CAA+C;aACzD;SACF;QACD,kBAAkB,EAAE;YAClB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,cAAc,QAAQ,2CAA2C;aACvF;SACF;QACD,iCAAiC,EAAE;YACjC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,4DAA4D;aACtE;SACF;QACD,gBAAgB,EAAE;YAChB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,gCAAgC,MAAM,EAAE;aAC9D;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,iDAAiD;aAC3D;SACF;QACD,mBAAmB,EAAE;YACnB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,4EAA4E;gBACrF,IAAI,EAAE,YAAY,CAAA,SAAS,MAAM,4BAA4B;gBAC7D,KAAK,EACH,qFAAqF;gBACvF,IAAI,EAAE,+HAA+H;aACtI;SACF;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,iBAAiB,MAAM,uBAAuB;aACpE;SACF;QACD,cAAc,EAAE;YACd,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,sBAAsB,MAAM,6FAA6F;aAC/I;SACF;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,oBAA8D;KACxE;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EA6CX,OAAO,EAeR,MAAM,oBAAoB,CAAC;AAmC5B,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAoB,MAAM,UAAU,CAAC;AAsB9E,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,iBAIzE;AAgBD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,GAC3C,8BAA8B,CAchC;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;CAC/B"}
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EA8CX,OAAO,EAeR,MAAM,oBAAoB,CAAC;AAmC5B,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAoB,MAAM,UAAU,CAAC;AAsB9E,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,iBAIzE;AAgBD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,GAC3C,8BAA8B,CAchC;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;CAC/B"}
@@ -1,4 +1,4 @@
1
- import { compilerAssert, emitFile, getAllTags, getAnyExtensionFromPath, getDiscriminatedUnion, getDiscriminator, getDoc, getEncode, getFormat, getKnownValues, getMaxItems, getMaxLength, getMaxValue, getMaxValueExclusive, getMinItems, getMinLength, getMinValue, getMinValueExclusive, getNamespaceFullName, getPattern, getPropertyType, getService, getSummary, ignoreDiagnostics, interpolatePath, isDeprecated, isErrorType, isGlobalNamespace, isNeverType, isNullType, isNumericType, isSecret, isStringType, isTemplateDeclaration, isTemplateDeclarationOrInstance, listServices, navigateTypesInNamespace, projectProgram, resolvePath, TwoLevelMap, } from "@typespec/compiler";
1
+ import { compilerAssert, emitFile, getAllTags, getAnyExtensionFromPath, getDiscriminatedUnion, getDiscriminator, getDoc, getEncode, getFormat, getKnownValues, getMaxItems, getMaxLength, getMaxValue, getMaxValueExclusive, getMinItems, getMinLength, getMinValue, getMinValueExclusive, getNamespaceFullName, getPattern, getPropertyType, getService, getSummary, ignoreDiagnostics, interpolatePath, isArrayModelType, isDeprecated, isErrorType, isGlobalNamespace, isNeverType, isNullType, isNumericType, isSecret, isStringType, isTemplateDeclaration, isTemplateDeclarationOrInstance, listServices, navigateTypesInNamespace, projectProgram, resolvePath, TwoLevelMap, } from "@typespec/compiler";
2
2
  import * as http from "@typespec/http";
3
3
  import { createMetadataInfo, getAuthentication, getHttpService, getStatusCodeDescription, getVisibilitySuffix, isContentTypeHeader, isOverloadSameEndpoint, reportIfNoRoutes, Visibility, } from "@typespec/http";
4
4
  import { checkDuplicateTypeName, getExtensions, getExternalDocs, getOpenAPITypeName, getParameterKey, isReadonlyProperty, resolveOperationId, shouldInline, } from "@typespec/openapi";
@@ -162,7 +162,7 @@ function createOAPIEmitter(program, options) {
162
162
  continue;
163
163
  }
164
164
  const variable = {
165
- default: prop.default ? getDefaultValue(prop.default) : "",
165
+ default: prop.default ? getDefaultValue(prop.type, prop.default) : "",
166
166
  description: getDoc(program, prop),
167
167
  };
168
168
  if (prop.type.kind === "Enum") {
@@ -843,9 +843,9 @@ function createOAPIEmitter(program, options) {
843
843
  if (!typeSchema) {
844
844
  return undefined;
845
845
  }
846
- const schema = applyIntrinsicDecorators(param, typeSchema);
846
+ const schema = applyEncoding(param, applyIntrinsicDecorators(param, typeSchema));
847
847
  if (param.default) {
848
- schema.default = getDefaultValue(param.default);
848
+ schema.default = getDefaultValue(param.type, param.default);
849
849
  }
850
850
  // Description is already provided in the parameter itself.
851
851
  delete schema.description;
@@ -1134,26 +1134,45 @@ function createOAPIEmitter(program, options) {
1134
1134
  function isLiteralType(type) {
1135
1135
  return type.kind === "Boolean" || type.kind === "String" || type.kind === "Number";
1136
1136
  }
1137
- function getDefaultValue(type) {
1137
+ function getDefaultValue(type, defaultType) {
1138
1138
  var _a;
1139
- switch (type.kind) {
1139
+ switch (defaultType.kind) {
1140
1140
  case "String":
1141
- return type.value;
1141
+ return defaultType.value;
1142
1142
  case "Number":
1143
- return type.value;
1143
+ compilerAssert(type.kind === "Scalar", "setting scalar default to non-scalar value");
1144
+ const base = getStdBaseScalar(type);
1145
+ compilerAssert(base, "not allowed to assign default to custom scalars");
1146
+ return defaultType.value;
1144
1147
  case "Boolean":
1145
- return type.value;
1148
+ return defaultType.value;
1146
1149
  case "Tuple":
1147
- return type.values.map(getDefaultValue);
1150
+ compilerAssert(type.kind === "Tuple" || (type.kind === "Model" && isArrayModelType(program, type)), "setting tuple default to non-tuple value");
1151
+ if (type.kind === "Tuple") {
1152
+ return defaultType.values.map((defaultTupleValue, index) => getDefaultValue(type.values[index], defaultTupleValue));
1153
+ }
1154
+ else {
1155
+ return defaultType.values.map((defaultTuplevalue) => getDefaultValue(type.indexer.value, defaultTuplevalue));
1156
+ }
1148
1157
  case "EnumMember":
1149
- return (_a = type.value) !== null && _a !== void 0 ? _a : type.name;
1158
+ return (_a = defaultType.value) !== null && _a !== void 0 ? _a : defaultType.name;
1150
1159
  default:
1151
1160
  reportDiagnostic(program, {
1152
1161
  code: "invalid-default",
1153
- format: { type: type.kind },
1154
- target: type,
1162
+ format: { type: defaultType.kind },
1163
+ target: defaultType,
1155
1164
  });
1156
1165
  }
1166
+ function getStdBaseScalar(scalar) {
1167
+ let current = scalar;
1168
+ while (current) {
1169
+ if (program.checker.isStdType(current)) {
1170
+ return current;
1171
+ }
1172
+ current = current.baseScalar;
1173
+ }
1174
+ return null;
1175
+ }
1157
1176
  }
1158
1177
  function includeDerivedModel(model) {
1159
1178
  var _a, _b;
@@ -1233,14 +1252,14 @@ function createOAPIEmitter(program, options) {
1233
1252
  }
1234
1253
  function resolveProperty(prop, visibility) {
1235
1254
  const description = getDoc(program, prop);
1236
- const schema = getSchemaOrRef(prop.type, visibility);
1255
+ const schema = applyEncoding(prop, getSchemaOrRef(prop.type, visibility));
1237
1256
  // Apply decorators on the property to the type's schema
1238
1257
  const additionalProps = applyIntrinsicDecorators(prop, {});
1239
1258
  if (description) {
1240
1259
  additionalProps.description = description;
1241
1260
  }
1242
1261
  if (prop.default) {
1243
- additionalProps.default = getDefaultValue(prop.default);
1262
+ additionalProps.default = getDefaultValue(prop.type, prop.default);
1244
1263
  }
1245
1264
  if (isReadonlyProperty(program, prop)) {
1246
1265
  additionalProps.readOnly = true;
@@ -1329,12 +1348,6 @@ function createOAPIEmitter(program, options) {
1329
1348
  if (isSecret(program, typespecType)) {
1330
1349
  newTarget.format = "password";
1331
1350
  }
1332
- const encodeData = getEncode(program, typespecType);
1333
- if (encodeData) {
1334
- const newType = getSchemaForScalar(encodeData.type);
1335
- newTarget.type = newType.type;
1336
- newTarget.format = mergeFormatAndEncoding(newTarget.format, encodeData.encoding);
1337
- }
1338
1351
  if (isString) {
1339
1352
  const values = getKnownValues(program, typespecType);
1340
1353
  if (values) {
@@ -1346,21 +1359,40 @@ function createOAPIEmitter(program, options) {
1346
1359
  attachExtensions(program, typespecType, newTarget);
1347
1360
  return newTarget;
1348
1361
  }
1349
- function mergeFormatAndEncoding(format, encoding) {
1362
+ function applyEncoding(typespecType, target) {
1363
+ const encodeData = getEncode(program, typespecType);
1364
+ if (encodeData) {
1365
+ const newTarget = { ...target };
1366
+ const newType = getSchemaForScalar(encodeData.type);
1367
+ newTarget.type = newType.type;
1368
+ // If the target already has a format it takes priority. (e.g. int32)
1369
+ newTarget.format = mergeFormatAndEncoding(newTarget.format, encodeData.encoding, newType.format);
1370
+ return newTarget;
1371
+ }
1372
+ return target;
1373
+ }
1374
+ function mergeFormatAndEncoding(format, encoding, encodeAsFormat) {
1350
1375
  switch (format) {
1351
1376
  case undefined:
1352
- return encoding;
1377
+ return encodeAsFormat !== null && encodeAsFormat !== void 0 ? encodeAsFormat : encoding;
1353
1378
  case "date-time":
1354
1379
  switch (encoding) {
1355
1380
  case "rfc3339":
1356
1381
  return "date-time";
1357
1382
  case "unixTimestamp":
1358
- return "unix-timestamp";
1383
+ return "unixtime";
1359
1384
  default:
1360
1385
  return `date-time-${encoding}`;
1361
1386
  }
1387
+ case "duration":
1388
+ switch (encoding) {
1389
+ case "ISO8601":
1390
+ return "duration";
1391
+ default:
1392
+ return encodeAsFormat !== null && encodeAsFormat !== void 0 ? encodeAsFormat : encoding;
1393
+ }
1362
1394
  default:
1363
- return encoding;
1395
+ return encodeAsFormat !== null && encodeAsFormat !== void 0 ? encodeAsFormat : encoding;
1364
1396
  }
1365
1397
  }
1366
1398
  function applyExternalDocs(typespecType, target) {
@@ -1454,18 +1486,28 @@ function createOAPIEmitter(program, options) {
1454
1486
  }
1455
1487
  function getSchemaForScalar(scalar) {
1456
1488
  let result = {};
1457
- if (program.checker.isStdType(scalar)) {
1489
+ const isStd = program.checker.isStdType(scalar);
1490
+ if (isStd) {
1458
1491
  result = getSchemaForStdScalars(scalar);
1459
1492
  }
1460
1493
  else if (scalar.baseScalar) {
1461
1494
  result = getSchemaForScalar(scalar.baseScalar);
1462
1495
  }
1463
- return applyIntrinsicDecorators(scalar, result);
1496
+ const withDecorators = applyEncoding(scalar, applyIntrinsicDecorators(scalar, result));
1497
+ if (isStd) {
1498
+ // Standard types are going to be inlined in the spec and we don't want the description of the scalar to show up
1499
+ delete withDecorators.description;
1500
+ }
1501
+ return withDecorators;
1464
1502
  }
1465
1503
  function getSchemaForStdScalars(scalar) {
1466
1504
  switch (scalar.name) {
1467
1505
  case "bytes":
1468
1506
  return { type: "string", format: "byte" };
1507
+ case "numeric":
1508
+ return { type: "number" };
1509
+ case "integer":
1510
+ return { type: "integer" };
1469
1511
  case "int8":
1470
1512
  return { type: "integer", format: "int8" };
1471
1513
  case "int16":
@@ -1484,10 +1526,16 @@ function createOAPIEmitter(program, options) {
1484
1526
  return { type: "integer", format: "uint32" };
1485
1527
  case "uint64":
1486
1528
  return { type: "integer", format: "uint64" };
1529
+ case "float":
1530
+ return { type: "number" };
1487
1531
  case "float64":
1488
1532
  return { type: "number", format: "double" };
1489
1533
  case "float32":
1490
1534
  return { type: "number", format: "float" };
1535
+ case "decimal":
1536
+ return { type: "number", format: "decimal" };
1537
+ case "decimal128":
1538
+ return { type: "number", format: "decimal128" };
1491
1539
  case "string":
1492
1540
  return { type: "string" };
1493
1541
  case "boolean":
@@ -1503,10 +1551,6 @@ function createOAPIEmitter(program, options) {
1503
1551
  return { type: "string", format: "duration" };
1504
1552
  case "url":
1505
1553
  return { type: "string", format: "uri" };
1506
- case "integer":
1507
- case "numeric":
1508
- case "float":
1509
- return {}; // Waiting on design for more precise type https://github.com/microsoft/typespec/issues/1260
1510
1554
  default:
1511
1555
  const _assertNever = scalar.name;
1512
1556
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/openapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/openapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import "../dist/src/index.js";
2
+
3
+ namespace OpenAPI;
4
+
5
+ using TypeSpec.Reflection;
6
+
7
+ /**
8
+ * Specify that `oneOf` should be used instead of `anyOf` for that union.
9
+ */
10
+ extern dec oneOf(target: Union);
11
+ /**
12
+ * Specify an external reference that should be used inside of emitting this type.
13
+ * @param ref External reference(e.g. "../../common.json#/components/schemas/Foo")
14
+ */
15
+ extern dec useRef(target: Model | ModelProperty, ref: string);
package/lib/main.tsp ADDED
@@ -0,0 +1 @@
1
+ import "./decorators.tsp";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/openapi3",
3
- "version": "0.45.0-dev.1",
3
+ "version": "0.45.0-dev.10",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec library for emitting OpenAPI 3.0 from the TypeSpec REST protocol binding",
6
6
  "homepage": "https://microsoft.github.io/typespec",
@@ -18,6 +18,7 @@
18
18
  ],
19
19
  "type": "module",
20
20
  "main": "dist/src/index.js",
21
+ "tspMain": "lib/main.tsp",
21
22
  "exports": {
22
23
  ".": "./dist/src/index.js",
23
24
  "./testing": "./dist/src/testing/index.js"
@@ -32,7 +33,6 @@
32
33
  ]
33
34
  }
34
35
  },
35
- "tspMain": "dist/src/index.js",
36
36
  "engines": {
37
37
  "node": ">=16.0.0"
38
38
  },