@effect/platform 0.72.1 → 0.72.2
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 +1498 -332
- package/dist/cjs/HttpApi.js +22 -18
- package/dist/cjs/HttpApi.js.map +1 -1
- package/dist/cjs/HttpApiSchema.js +33 -4
- package/dist/cjs/HttpApiSchema.js.map +1 -1
- package/dist/cjs/HttpApiSecurity.js +2 -0
- package/dist/cjs/HttpApiSecurity.js.map +1 -1
- package/dist/cjs/OpenApi.js +55 -105
- package/dist/cjs/OpenApi.js.map +1 -1
- package/dist/cjs/OpenApiJsonSchema.js +7 -4
- package/dist/cjs/OpenApiJsonSchema.js.map +1 -1
- package/dist/dts/HttpApi.d.ts +3 -0
- package/dist/dts/HttpApi.d.ts.map +1 -1
- package/dist/dts/HttpApiSchema.d.ts.map +1 -1
- package/dist/dts/HttpApiSecurity.d.ts +2 -0
- package/dist/dts/HttpApiSecurity.d.ts.map +1 -1
- package/dist/dts/OpenApi.d.ts +2 -1
- package/dist/dts/OpenApi.d.ts.map +1 -1
- package/dist/dts/OpenApiJsonSchema.d.ts.map +1 -1
- package/dist/esm/HttpApi.js +22 -18
- package/dist/esm/HttpApi.js.map +1 -1
- package/dist/esm/HttpApiSchema.js +30 -3
- package/dist/esm/HttpApiSchema.js.map +1 -1
- package/dist/esm/HttpApiSecurity.js +2 -0
- package/dist/esm/HttpApiSecurity.js.map +1 -1
- package/dist/esm/OpenApi.js +55 -105
- package/dist/esm/OpenApi.js.map +1 -1
- package/dist/esm/OpenApiJsonSchema.js +4 -2
- package/dist/esm/OpenApiJsonSchema.js.map +1 -1
- package/package.json +2 -2
- package/src/HttpApi.ts +23 -23
- package/src/HttpApiSchema.ts +33 -8
- package/src/HttpApiSecurity.ts +2 -0
- package/src/OpenApi.ts +80 -101
- package/src/OpenApiJsonSchema.ts +9 -1
package/dist/esm/OpenApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApi.js","names":["Context","constFalse","globalValue","Option","Schema","HttpApi","HttpApiMiddleware","HttpApiSchema","HttpMethod","JsonSchema","Identifier","Tag","Title","Version","Description","License","ExternalDocs","Servers","Format","Summary","Deprecated","Override","Exclude","Reference","defaultValue","Transform","contextPartial","tags","entries","Object","options","context","empty","key","tag","undefined","add","annotations","identifier","title","version","description","license","summary","externalDocs","servers","format","override","exclude","transform","apiCache","WeakMap","fromApi","self","has","get","api","jsonSchemaDefs","spec","openapi","info","getOrElse","paths","components","schemas","securitySchemes","security","makeJsonSchemaOrRef","schema","makeWithDefs","defs","registerSecurity","name","scheme","makeSecurityScheme","map","getOption","AdditionalSchemas","componentSchemas","forEach","componentSchema","assign","middlewares","middleware","isSecurity","push","reflect","onGroup","group","fn","onEndpoint","endpoint","errors","mergedAnnotations","payloads","successes","path","replace","method","toLowerCase","op","operationId","topLevel","parameters","responses","deprecated","size","content","ast","contentType","make","requestBody","required","status","pipe","filter","getEmptyDecodeable","isSome","pathSchema","value","properties","jsonSchema","in","includes","hasBody","payloadSchema","headersSchema","urlParamsSchema","transformFn","set","meta","_tag","type","bearerFormat","getOrUndefined"],"sources":["../../src/OpenApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OpenApi.js","names":["Context","constFalse","globalValue","Option","HttpApi","HttpApiMiddleware","HttpApiSchema","HttpMethod","JsonSchema","Identifier","Tag","Title","Version","Description","License","ExternalDocs","Servers","Format","Summary","Deprecated","Override","Exclude","Reference","defaultValue","Transform","contextPartial","tags","entries","Object","options","context","empty","key","tag","undefined","add","annotations","identifier","title","version","description","license","summary","deprecated","externalDocs","servers","format","override","exclude","transform","apiCache","WeakMap","fromApi","self","has","get","api","jsonSchemaDefs","spec","openapi","info","getOrElse","paths","components","schemas","securitySchemes","security","makeJsonSchemaOrRef","ast","fromAST","defs","registerSecurity","name","scheme","makeSecurityScheme","map","getOption","AdditionalSchemas","componentSchemas","forEach","componentSchema","assign","middlewares","middleware","isSecurity","push","reflect","onGroup","group","fn","onEndpoint","endpoint","errors","mergedAnnotations","payloads","successes","op","operationId","topLevel","parameters","responses","processResponseMap","defaultDescription","status","pipe","filter","getEmptyDecodeable","encoding","getEncoding","content","contentType","schema","processParameters","i","isSome","jsonSchema","value","properties","psJsonSchema","in","required","includes","hasBody","method","size","requestBody","pathSchema","payloadSchema","headersSchema","urlParamsSchema","path","replace","toLowerCase","transformFn","set","meta","_tag","type","bearerFormat","getOrUndefined"],"sources":["../../src/OpenApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -29,8 +29,10 @@ export const make = schema => {
|
|
|
29
29
|
* @category encoding
|
|
30
30
|
* @since 1.0.0
|
|
31
31
|
*/
|
|
32
|
-
export const makeWithDefs = (schema, options) =>
|
|
33
|
-
|
|
32
|
+
export const makeWithDefs = (schema, options) => fromAST(schema.ast, options);
|
|
33
|
+
/** @internal */
|
|
34
|
+
export const fromAST = (ast, options) => {
|
|
35
|
+
const jsonSchema = JSONSchema.fromAST(ast, {
|
|
34
36
|
definitions: options.defs,
|
|
35
37
|
definitionPath: options.defsPath ?? "#/components/schemas/",
|
|
36
38
|
target: "openApi3.1",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApiJsonSchema.js","names":["JSONSchema","Record","make","schema","defs","out","makeWithDefs","isEmptyRecord","$defs","options","
|
|
1
|
+
{"version":3,"file":"OpenApiJsonSchema.js","names":["JSONSchema","Record","make","schema","defs","out","makeWithDefs","isEmptyRecord","$defs","options","fromAST","ast","jsonSchema","definitions","definitionPath","defsPath","target","topLevelReferenceStrategy"],"sources":["../../src/OpenApiJsonSchema.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAgPvC;;;;AAIA,OAAO,MAAMC,IAAI,GAAaC,MAA8B,IAAU;EACpE,MAAMC,IAAI,GAA+B,EAAE;EAC3C,MAAMC,GAAG,GAASC,YAAY,CAACH,MAAM,EAAE;IAAEC;EAAI,CAAE,CAAC;EAChD,IAAI,CAACH,MAAM,CAACM,aAAa,CAACH,IAAI,CAAC,EAAE;IAC/BC,GAAG,CAACG,KAAK,GAAGJ,IAAI;EAClB;EACA,OAAOC,GAAG;AACZ,CAAC;AAED;;;;;;;;;;;;AAYA,OAAO,MAAMC,YAAY,GAAGA,CAAUH,MAA8B,EAAEM,OAIrE,KAAiBC,OAAO,CAACP,MAAM,CAACQ,GAAG,EAAEF,OAAO,CAAC;AAE9C;AACA,OAAO,MAAMC,OAAO,GAAGA,CAACC,GAAY,EAAEF,OAIrC,KAAgB;EACf,MAAMG,UAAU,GAAGZ,UAAU,CAACU,OAAO,CAACC,GAAG,EAAE;IACzCE,WAAW,EAAEJ,OAAO,CAACL,IAAI;IACzBU,cAAc,EAAEL,OAAO,CAACM,QAAQ,IAAI,uBAAuB;IAC3DC,MAAM,EAAE,YAAY;IACpBC,yBAAyB,EAAER,OAAO,CAACQ,yBAAyB,IAAI;GACjE,CAAC;EACF,OAAOL,UAAwB;AACjC,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform",
|
|
3
|
-
"version": "0.72.
|
|
3
|
+
"version": "0.72.2",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"multipasta": "^0.2.5"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"effect": "^3.12.
|
|
17
|
+
"effect": "^3.12.2"
|
|
18
18
|
},
|
|
19
19
|
"publishConfig": {
|
|
20
20
|
"provenance": true
|
package/src/HttpApi.ts
CHANGED
|
@@ -345,7 +345,7 @@ export const reflect = <Id extends string, Groups extends HttpApiGroup.HttpApiGr
|
|
|
345
345
|
const emptyMap = new Map<never, never>()
|
|
346
346
|
|
|
347
347
|
const extractMembers = (
|
|
348
|
-
|
|
348
|
+
ast: AST.AST,
|
|
349
349
|
inherited: ReadonlyMap<number, {
|
|
350
350
|
readonly ast: Option.Option<AST.AST>
|
|
351
351
|
readonly description: Option.Option<string>
|
|
@@ -356,43 +356,40 @@ const extractMembers = (
|
|
|
356
356
|
readonly description: Option.Option<string>
|
|
357
357
|
}> => {
|
|
358
358
|
const members = new Map(inherited)
|
|
359
|
-
function process(
|
|
360
|
-
if (
|
|
359
|
+
function process(type: AST.AST) {
|
|
360
|
+
if (AST.isNeverKeyword(type)) {
|
|
361
361
|
return
|
|
362
362
|
}
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
363
|
+
const annotations = HttpApiSchema.extractAnnotations(ast.annotations)
|
|
364
|
+
// Avoid changing the reference unless necessary
|
|
365
|
+
// Otherwise, deduplication of the ASTs below will not be possible
|
|
366
|
+
if (!Record.isEmptyRecord(annotations)) {
|
|
367
|
+
type = AST.annotations(type, {
|
|
368
|
+
...annotations,
|
|
369
|
+
...type.annotations
|
|
370
|
+
})
|
|
371
|
+
}
|
|
372
|
+
const status = getStatus(type)
|
|
373
|
+
const emptyDecodeable = HttpApiSchema.getEmptyDecodeable(type)
|
|
369
374
|
const current = members.get(status)
|
|
370
375
|
members.set(
|
|
371
376
|
status,
|
|
372
377
|
{
|
|
373
378
|
description: (current ? current.description : Option.none()).pipe(
|
|
374
|
-
Option.orElse(() => getDescriptionOrIdentifier(
|
|
379
|
+
Option.orElse(() => getDescriptionOrIdentifier(type))
|
|
375
380
|
),
|
|
376
381
|
ast: (current ? current.ast : Option.none()).pipe(
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
current._tag === "Union" ? [...current.types, ast] : [current, ast]
|
|
380
|
-
)
|
|
381
|
-
),
|
|
382
|
+
// Deduplicate the ASTs
|
|
383
|
+
Option.map((current) => HttpApiSchema.UnionUnifyAST(current, type)),
|
|
382
384
|
Option.orElse(() =>
|
|
383
|
-
!emptyDecodeable && AST.encodedAST(
|
|
385
|
+
!emptyDecodeable && AST.isVoidKeyword(AST.encodedAST(type)) ? Option.none() : Option.some(type)
|
|
384
386
|
)
|
|
385
387
|
)
|
|
386
388
|
}
|
|
387
389
|
)
|
|
388
390
|
}
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
process(type)
|
|
392
|
-
}
|
|
393
|
-
} else {
|
|
394
|
-
process(topAst)
|
|
395
|
-
}
|
|
391
|
+
|
|
392
|
+
HttpApiSchema.extractUnionTypes(ast).forEach(process)
|
|
396
393
|
return members
|
|
397
394
|
}
|
|
398
395
|
|
|
@@ -445,6 +442,9 @@ const getDescriptionOrIdentifier = (ast: AST.PropertySignature | AST.AST): Optio
|
|
|
445
442
|
}
|
|
446
443
|
|
|
447
444
|
/**
|
|
445
|
+
* Adds additional schemas to components/schemas.
|
|
446
|
+
* The provided schemas must have a `identifier` annotation.
|
|
447
|
+
*
|
|
448
448
|
* @since 1.0.0
|
|
449
449
|
* @category tags
|
|
450
450
|
*/
|
package/src/HttpApiSchema.ts
CHANGED
|
@@ -180,6 +180,38 @@ export const getStatusErrorAST = (ast: AST.AST): number => getStatus(ast, 500)
|
|
|
180
180
|
*/
|
|
181
181
|
export const getStatusError = <A extends Schema.Schema.All>(self: A): number => getStatusErrorAST(self.ast)
|
|
182
182
|
|
|
183
|
+
/**
|
|
184
|
+
* Extracts all individual types from a union type recursively.
|
|
185
|
+
*
|
|
186
|
+
* **Details**
|
|
187
|
+
*
|
|
188
|
+
* This function traverses an AST and collects all the types within a union,
|
|
189
|
+
* even if they are nested. It ensures that every type in a union (including
|
|
190
|
+
* deeply nested unions) is included in the resulting array. The returned array
|
|
191
|
+
* contains each type as an individual AST node, preserving the order in which
|
|
192
|
+
* they appear.
|
|
193
|
+
*
|
|
194
|
+
* @internal
|
|
195
|
+
*/
|
|
196
|
+
export const extractUnionTypes = (ast: AST.AST): ReadonlyArray<AST.AST> => {
|
|
197
|
+
function process(ast: AST.AST): void {
|
|
198
|
+
if (AST.isUnion(ast)) {
|
|
199
|
+
for (const type of ast.types) {
|
|
200
|
+
process(type)
|
|
201
|
+
}
|
|
202
|
+
} else {
|
|
203
|
+
out.push(ast)
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const out: Array<AST.AST> = []
|
|
207
|
+
process(ast)
|
|
208
|
+
return out
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/** @internal */
|
|
212
|
+
export const UnionUnifyAST = (self: AST.AST, that: AST.AST): AST.AST =>
|
|
213
|
+
AST.Union.make(Array.from(new Set<AST.AST>([...extractUnionTypes(self), ...extractUnionTypes(that)])))
|
|
214
|
+
|
|
183
215
|
/**
|
|
184
216
|
* @since 1.0.0
|
|
185
217
|
*/
|
|
@@ -187,14 +219,7 @@ export const UnionUnify = <A extends Schema.Schema.All, B extends Schema.Schema.
|
|
|
187
219
|
A["Type"] | B["Type"],
|
|
188
220
|
A["Encoded"] | B["Encoded"],
|
|
189
221
|
A["Context"] | B["Context"]
|
|
190
|
-
> =>
|
|
191
|
-
return Schema.make(AST.Union.make(Array.from(
|
|
192
|
-
new Set<AST.AST>([
|
|
193
|
-
...(self.ast._tag === "Union" ? self.ast.types : [self.ast]),
|
|
194
|
-
...(that.ast._tag === "Union" ? that.ast.types : [that.ast])
|
|
195
|
-
])
|
|
196
|
-
)))
|
|
197
|
-
}
|
|
222
|
+
> => Schema.make(UnionUnifyAST(self.ast, that.ast))
|
|
198
223
|
|
|
199
224
|
type Void$ = typeof Schema.Void
|
|
200
225
|
|
package/src/HttpApiSecurity.ts
CHANGED
|
@@ -113,6 +113,8 @@ export const bearer: Bearer = Object.assign(Object.create(Proto), {
|
|
|
113
113
|
* To set the correct cookie in a handler, you can use
|
|
114
114
|
* `HttpApiBuilder.securitySetCookie`.
|
|
115
115
|
*
|
|
116
|
+
* The default value for `in` is "header".
|
|
117
|
+
*
|
|
116
118
|
* @since 1.0.0
|
|
117
119
|
* @category constructors
|
|
118
120
|
*/
|
package/src/OpenApi.ts
CHANGED
|
@@ -6,7 +6,8 @@ import { constFalse } from "effect/Function"
|
|
|
6
6
|
import { globalValue } from "effect/GlobalValue"
|
|
7
7
|
import * as Option from "effect/Option"
|
|
8
8
|
import type { ReadonlyRecord } from "effect/Record"
|
|
9
|
-
import * as Schema from "effect/Schema"
|
|
9
|
+
import type * as Schema from "effect/Schema"
|
|
10
|
+
import type * as AST from "effect/SchemaAST"
|
|
10
11
|
import type { DeepMutable, Mutable } from "effect/Types"
|
|
11
12
|
import * as HttpApi from "./HttpApi.js"
|
|
12
13
|
import * as HttpApiMiddleware from "./HttpApiMiddleware.js"
|
|
@@ -132,6 +133,7 @@ export const annotations: (
|
|
|
132
133
|
readonly description?: string | undefined
|
|
133
134
|
readonly license?: OpenAPISpecLicense | undefined
|
|
134
135
|
readonly summary?: string | undefined
|
|
136
|
+
readonly deprecated?: boolean | undefined
|
|
135
137
|
readonly externalDocs?: OpenAPISpecExternalDocs | undefined
|
|
136
138
|
readonly servers?: ReadonlyArray<OpenAPISpecServer> | undefined
|
|
137
139
|
readonly format?: string | undefined
|
|
@@ -146,6 +148,7 @@ export const annotations: (
|
|
|
146
148
|
description: Description,
|
|
147
149
|
license: License,
|
|
148
150
|
summary: Summary,
|
|
151
|
+
deprecated: Deprecated,
|
|
149
152
|
externalDocs: ExternalDocs,
|
|
150
153
|
servers: Servers,
|
|
151
154
|
format: Format,
|
|
@@ -173,18 +176,20 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
|
|
|
173
176
|
version: Context.getOrElse(api.annotations, Version, () => "0.0.1")
|
|
174
177
|
},
|
|
175
178
|
paths: {},
|
|
176
|
-
tags: [],
|
|
177
179
|
components: {
|
|
178
180
|
schemas: jsonSchemaDefs,
|
|
179
181
|
securitySchemes: {}
|
|
180
182
|
},
|
|
181
|
-
security: []
|
|
183
|
+
security: [],
|
|
184
|
+
tags: []
|
|
182
185
|
}
|
|
183
|
-
|
|
184
|
-
|
|
186
|
+
|
|
187
|
+
function makeJsonSchemaOrRef(ast: AST.AST): JsonSchema.JsonSchema {
|
|
188
|
+
return JsonSchema.fromAST(ast, {
|
|
185
189
|
defs: jsonSchemaDefs
|
|
186
190
|
})
|
|
187
191
|
}
|
|
192
|
+
|
|
188
193
|
function registerSecurity(
|
|
189
194
|
name: string,
|
|
190
195
|
security: HttpApiSecurity
|
|
@@ -195,8 +200,9 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
|
|
|
195
200
|
const scheme = makeSecurityScheme(security)
|
|
196
201
|
spec.components!.securitySchemes![name] = scheme
|
|
197
202
|
}
|
|
203
|
+
|
|
198
204
|
Option.map(Context.getOption(api.annotations, HttpApi.AdditionalSchemas), (componentSchemas) => {
|
|
199
|
-
componentSchemas.forEach((componentSchema) => makeJsonSchemaOrRef(componentSchema))
|
|
205
|
+
componentSchemas.forEach((componentSchema) => makeJsonSchemaOrRef(componentSchema.ast))
|
|
200
206
|
})
|
|
201
207
|
Option.map(Context.getOption(api.annotations, Description), (description) => {
|
|
202
208
|
spec.info.description = description
|
|
@@ -205,10 +211,10 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
|
|
|
205
211
|
spec.info.license = license
|
|
206
212
|
})
|
|
207
213
|
Option.map(Context.getOption(api.annotations, Summary), (summary) => {
|
|
208
|
-
spec.info.summary = summary
|
|
214
|
+
spec.info.summary = summary
|
|
209
215
|
})
|
|
210
216
|
Option.map(Context.getOption(api.annotations, Servers), (servers) => {
|
|
211
|
-
spec.servers = servers as
|
|
217
|
+
spec.servers = servers as Array<OpenAPISpecServer>
|
|
212
218
|
})
|
|
213
219
|
Option.map(Context.getOption(api.annotations, Override), (override) => {
|
|
214
220
|
Object.assign(spec, override)
|
|
@@ -222,7 +228,7 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
|
|
|
222
228
|
spec.security!.push({ [name]: [] })
|
|
223
229
|
}
|
|
224
230
|
})
|
|
225
|
-
HttpApi.reflect(api
|
|
231
|
+
HttpApi.reflect(api, {
|
|
226
232
|
onGroup({ group }) {
|
|
227
233
|
if (Context.get(group.annotations, Exclude)) {
|
|
228
234
|
return
|
|
@@ -248,8 +254,6 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
|
|
|
248
254
|
if (Context.get(mergedAnnotations, Exclude)) {
|
|
249
255
|
return
|
|
250
256
|
}
|
|
251
|
-
const path = endpoint.path.replace(/:(\w+)[^/]*/g, "{$1}")
|
|
252
|
-
const method = endpoint.method.toLowerCase() as OpenAPISpecMethodName
|
|
253
257
|
let op: DeepMutable<OpenAPISpecOperation> = {
|
|
254
258
|
tags: [Context.getOrElse(group.annotations, Title, () => group.identifier)],
|
|
255
259
|
operationId: Context.getOrElse(
|
|
@@ -261,6 +265,50 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
|
|
|
261
265
|
security: [],
|
|
262
266
|
responses: {}
|
|
263
267
|
}
|
|
268
|
+
|
|
269
|
+
function processResponseMap(
|
|
270
|
+
map: ReadonlyMap<number, {
|
|
271
|
+
readonly ast: Option.Option<AST.AST>
|
|
272
|
+
readonly description: Option.Option<string>
|
|
273
|
+
}>,
|
|
274
|
+
defaultDescription: () => string
|
|
275
|
+
) {
|
|
276
|
+
for (const [status, { ast, description }] of map) {
|
|
277
|
+
if (op.responses![status]) continue
|
|
278
|
+
op.responses![status] = {
|
|
279
|
+
description: Option.getOrElse(description, defaultDescription)
|
|
280
|
+
}
|
|
281
|
+
ast.pipe(
|
|
282
|
+
Option.filter((ast) => !HttpApiSchema.getEmptyDecodeable(ast)),
|
|
283
|
+
Option.map((ast) => {
|
|
284
|
+
const encoding = HttpApiSchema.getEncoding(ast)
|
|
285
|
+
op.responses![status].content = {
|
|
286
|
+
[encoding.contentType]: {
|
|
287
|
+
schema: makeJsonSchemaOrRef(ast)
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
})
|
|
291
|
+
)
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
function processParameters(schema: Option.Option<Schema.Schema.All>, i: OpenAPISpecParameter["in"]) {
|
|
296
|
+
if (Option.isSome(schema)) {
|
|
297
|
+
const jsonSchema = makeJsonSchemaOrRef(schema.value.ast)
|
|
298
|
+
if ("properties" in jsonSchema) {
|
|
299
|
+
Object.entries(jsonSchema.properties).forEach(([name, psJsonSchema]) => {
|
|
300
|
+
op.parameters!.push({
|
|
301
|
+
name,
|
|
302
|
+
in: i,
|
|
303
|
+
schema: psJsonSchema,
|
|
304
|
+
required: jsonSchema.required.includes(name),
|
|
305
|
+
...(psJsonSchema.description !== undefined ? { description: psJsonSchema.description } : undefined)
|
|
306
|
+
})
|
|
307
|
+
})
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
264
312
|
Option.map(Context.getOption(endpoint.annotations, Description), (description) => {
|
|
265
313
|
op.description = description
|
|
266
314
|
})
|
|
@@ -282,103 +330,29 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
|
|
|
282
330
|
op.security!.push({ [name]: [] })
|
|
283
331
|
}
|
|
284
332
|
})
|
|
285
|
-
|
|
333
|
+
const hasBody = HttpMethod.hasBody(endpoint.method)
|
|
334
|
+
if (hasBody && payloads.size > 0) {
|
|
286
335
|
const content: Mutable<OpenApiSpecContent> = {}
|
|
287
336
|
payloads.forEach(({ ast }, contentType) => {
|
|
288
337
|
content[contentType as OpenApiSpecContentType] = {
|
|
289
|
-
schema: makeJsonSchemaOrRef(
|
|
338
|
+
schema: makeJsonSchemaOrRef(ast)
|
|
290
339
|
}
|
|
291
340
|
})
|
|
292
341
|
op.requestBody = { content, required: true }
|
|
293
342
|
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
}
|
|
299
|
-
ast.pipe(
|
|
300
|
-
Option.filter((ast) => !HttpApiSchema.getEmptyDecodeable(ast)),
|
|
301
|
-
Option.map((ast) => {
|
|
302
|
-
op.responses![status].content = {
|
|
303
|
-
"application/json": {
|
|
304
|
-
schema: makeJsonSchemaOrRef(Schema.make(ast))
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
})
|
|
308
|
-
)
|
|
309
|
-
}
|
|
310
|
-
if (Option.isSome(endpoint.pathSchema)) {
|
|
311
|
-
const schema = makeJsonSchemaOrRef(endpoint.pathSchema.value) as JsonSchema.Object
|
|
312
|
-
if ("properties" in schema) {
|
|
313
|
-
Object.entries(schema.properties).forEach(([name, jsonSchema]) => {
|
|
314
|
-
op.parameters!.push({
|
|
315
|
-
name,
|
|
316
|
-
in: "path",
|
|
317
|
-
schema: jsonSchema,
|
|
318
|
-
required: schema.required.includes(name),
|
|
319
|
-
...(jsonSchema.description ? { description: jsonSchema.description } : {})
|
|
320
|
-
})
|
|
321
|
-
})
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
if (!HttpMethod.hasBody(endpoint.method) && Option.isSome(endpoint.payloadSchema)) {
|
|
325
|
-
const schema = makeJsonSchemaOrRef(endpoint.payloadSchema.value) as JsonSchema.Object
|
|
326
|
-
if ("properties" in schema) {
|
|
327
|
-
Object.entries(schema.properties).forEach(([name, jsonSchema]) => {
|
|
328
|
-
op.parameters!.push({
|
|
329
|
-
name,
|
|
330
|
-
in: "query",
|
|
331
|
-
schema: jsonSchema,
|
|
332
|
-
required: schema.required.includes(name),
|
|
333
|
-
...(jsonSchema.description ? { description: jsonSchema.description } : {})
|
|
334
|
-
})
|
|
335
|
-
})
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
if (Option.isSome(endpoint.headersSchema)) {
|
|
339
|
-
const schema = makeJsonSchemaOrRef(endpoint.headersSchema.value) as JsonSchema.Object
|
|
340
|
-
if ("properties" in schema) {
|
|
341
|
-
Object.entries(schema.properties).forEach(([name, jsonSchema]) => {
|
|
342
|
-
op.parameters!.push({
|
|
343
|
-
name,
|
|
344
|
-
in: "header",
|
|
345
|
-
schema: jsonSchema,
|
|
346
|
-
required: schema.required.includes(name),
|
|
347
|
-
...(jsonSchema.description ? { description: jsonSchema.description } : {})
|
|
348
|
-
})
|
|
349
|
-
})
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
if (Option.isSome(endpoint.urlParamsSchema)) {
|
|
353
|
-
const schema = makeJsonSchemaOrRef(endpoint.urlParamsSchema.value) as JsonSchema.Object
|
|
354
|
-
if ("properties" in schema) {
|
|
355
|
-
Object.entries(schema.properties).forEach(([name, jsonSchema]) => {
|
|
356
|
-
op.parameters!.push({
|
|
357
|
-
name,
|
|
358
|
-
in: "query",
|
|
359
|
-
schema: jsonSchema,
|
|
360
|
-
required: schema.required.includes(name),
|
|
361
|
-
...(jsonSchema.description ? { description: jsonSchema.description } : {})
|
|
362
|
-
})
|
|
363
|
-
})
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
for (const [status, { ast, description }] of errors) {
|
|
367
|
-
if (op.responses![status]) continue
|
|
368
|
-
op.responses![status] = {
|
|
369
|
-
description: Option.getOrElse(description, () => "Error")
|
|
370
|
-
}
|
|
371
|
-
ast.pipe(
|
|
372
|
-
Option.filter((ast) => !HttpApiSchema.getEmptyDecodeable(ast)),
|
|
373
|
-
Option.map((ast) => {
|
|
374
|
-
op.responses![status].content = {
|
|
375
|
-
"application/json": {
|
|
376
|
-
schema: makeJsonSchemaOrRef(Schema.make(ast))
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
})
|
|
380
|
-
)
|
|
343
|
+
|
|
344
|
+
processParameters(endpoint.pathSchema, "path")
|
|
345
|
+
if (!hasBody) {
|
|
346
|
+
processParameters(endpoint.payloadSchema, "query")
|
|
381
347
|
}
|
|
348
|
+
processParameters(endpoint.headersSchema, "header")
|
|
349
|
+
processParameters(endpoint.urlParamsSchema, "query")
|
|
350
|
+
|
|
351
|
+
processResponseMap(successes, () => "Success")
|
|
352
|
+
processResponseMap(errors, () => "Error")
|
|
353
|
+
|
|
354
|
+
const path = endpoint.path.replace(/:(\w+)[^/]*/g, "{$1}")
|
|
355
|
+
const method = endpoint.method.toLowerCase() as OpenAPISpecMethodName
|
|
382
356
|
if (!spec.paths[path]) {
|
|
383
357
|
spec.paths[path] = {}
|
|
384
358
|
}
|
|
@@ -573,7 +547,12 @@ export type OpenAPISpecResponses = Record<number, OpenApiSpecResponse>
|
|
|
573
547
|
* @category models
|
|
574
548
|
* @since 1.0.0
|
|
575
549
|
*/
|
|
576
|
-
export type OpenApiSpecContentType =
|
|
550
|
+
export type OpenApiSpecContentType =
|
|
551
|
+
| "application/json"
|
|
552
|
+
| "application/xml"
|
|
553
|
+
| "application/x-www-form-urlencoded"
|
|
554
|
+
| "multipart/form-data"
|
|
555
|
+
| "text/plain"
|
|
577
556
|
|
|
578
557
|
/**
|
|
579
558
|
* @category models
|
package/src/OpenApiJsonSchema.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import * as JSONSchema from "effect/JSONSchema"
|
|
5
5
|
import * as Record from "effect/Record"
|
|
6
6
|
import type * as Schema from "effect/Schema"
|
|
7
|
+
import type * as AST from "effect/SchemaAST"
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* @category model
|
|
@@ -270,8 +271,15 @@ export const makeWithDefs = <A, I, R>(schema: Schema.Schema<A, I, R>, options: {
|
|
|
270
271
|
readonly defs: Record<string, any>
|
|
271
272
|
readonly defsPath?: string
|
|
272
273
|
readonly topLevelReferenceStrategy?: "skip" | "keep"
|
|
274
|
+
}): JsonSchema => fromAST(schema.ast, options)
|
|
275
|
+
|
|
276
|
+
/** @internal */
|
|
277
|
+
export const fromAST = (ast: AST.AST, options: {
|
|
278
|
+
readonly defs: Record<string, any>
|
|
279
|
+
readonly defsPath?: string
|
|
280
|
+
readonly topLevelReferenceStrategy?: "skip" | "keep"
|
|
273
281
|
}): JsonSchema => {
|
|
274
|
-
const jsonSchema = JSONSchema.fromAST(
|
|
282
|
+
const jsonSchema = JSONSchema.fromAST(ast, {
|
|
275
283
|
definitions: options.defs,
|
|
276
284
|
definitionPath: options.defsPath ?? "#/components/schemas/",
|
|
277
285
|
target: "openApi3.1",
|