@effect/platform 0.68.6 → 0.69.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/HttpApiMiddleware/package.json +6 -0
- package/README.md +306 -233
- package/dist/cjs/Headers.js +7 -2
- package/dist/cjs/Headers.js.map +1 -1
- package/dist/cjs/HttpApi.js +90 -78
- package/dist/cjs/HttpApi.js.map +1 -1
- package/dist/cjs/HttpApiBuilder.js +245 -255
- package/dist/cjs/HttpApiBuilder.js.map +1 -1
- package/dist/cjs/HttpApiClient.js +64 -59
- package/dist/cjs/HttpApiClient.js.map +1 -1
- package/dist/cjs/HttpApiEndpoint.js +74 -109
- package/dist/cjs/HttpApiEndpoint.js.map +1 -1
- package/dist/cjs/HttpApiError.js +3 -4
- package/dist/cjs/HttpApiError.js.map +1 -1
- package/dist/cjs/HttpApiGroup.js +103 -100
- package/dist/cjs/HttpApiGroup.js.map +1 -1
- package/dist/cjs/HttpApiMiddleware.js +67 -0
- package/dist/cjs/HttpApiMiddleware.js.map +1 -0
- package/dist/cjs/HttpApiSchema.js +33 -7
- package/dist/cjs/HttpApiSchema.js.map +1 -1
- package/dist/cjs/HttpApiSecurity.js +2 -2
- package/dist/cjs/HttpApiSecurity.js.map +1 -1
- package/dist/cjs/HttpApiSwagger.js +3 -1
- package/dist/cjs/HttpApiSwagger.js.map +1 -1
- package/dist/cjs/HttpBody.js.map +1 -1
- package/dist/cjs/HttpIncomingMessage.js +5 -1
- package/dist/cjs/HttpIncomingMessage.js.map +1 -1
- package/dist/cjs/HttpServer.js +12 -1
- package/dist/cjs/HttpServer.js.map +1 -1
- package/dist/cjs/HttpServerRespondable.js +1 -1
- package/dist/cjs/HttpServerRespondable.js.map +1 -1
- package/dist/cjs/OpenApi.js +102 -63
- package/dist/cjs/OpenApi.js.map +1 -1
- package/dist/cjs/OpenApiJsonSchema.js +58 -47
- package/dist/cjs/OpenApiJsonSchema.js.map +1 -1
- package/dist/cjs/Transferable.js +2 -2
- package/dist/cjs/Transferable.js.map +1 -1
- package/dist/cjs/UrlParams.js +5 -1
- package/dist/cjs/UrlParams.js.map +1 -1
- package/dist/cjs/Worker.js.map +1 -1
- package/dist/cjs/WorkerError.js +1 -5
- package/dist/cjs/WorkerError.js.map +1 -1
- package/dist/cjs/WorkerRunner.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/internal/httpBody.js +1 -1
- package/dist/cjs/internal/httpBody.js.map +1 -1
- package/dist/cjs/internal/httpClientRequest.js.map +1 -1
- package/dist/cjs/internal/httpClientResponse.js +1 -1
- package/dist/cjs/internal/httpClientResponse.js.map +1 -1
- package/dist/cjs/internal/httpRouter.js +1 -1
- package/dist/cjs/internal/httpRouter.js.map +1 -1
- package/dist/cjs/internal/httpServer.js +7 -1
- package/dist/cjs/internal/httpServer.js.map +1 -1
- package/dist/cjs/internal/httpServerRequest.js +1 -1
- package/dist/cjs/internal/httpServerRequest.js.map +1 -1
- package/dist/cjs/internal/httpServerResponse.js.map +1 -1
- package/dist/cjs/internal/keyValueStore.js +1 -1
- package/dist/cjs/internal/keyValueStore.js.map +1 -1
- package/dist/cjs/internal/multipart.js +1 -1
- package/dist/cjs/internal/multipart.js.map +1 -1
- package/dist/cjs/internal/worker.js +6 -7
- package/dist/cjs/internal/worker.js.map +1 -1
- package/dist/cjs/internal/workerRunner.js +3 -4
- package/dist/cjs/internal/workerRunner.js.map +1 -1
- package/dist/dts/Headers.d.ts +4 -6
- package/dist/dts/Headers.d.ts.map +1 -1
- package/dist/dts/HttpApi.d.ts +64 -140
- package/dist/dts/HttpApi.d.ts.map +1 -1
- package/dist/dts/HttpApiBuilder.d.ts +86 -167
- package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
- package/dist/dts/HttpApiClient.d.ts +34 -11
- package/dist/dts/HttpApiClient.d.ts.map +1 -1
- package/dist/dts/HttpApiEndpoint.d.ts +119 -273
- package/dist/dts/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/dts/HttpApiError.d.ts +5 -2
- package/dist/dts/HttpApiError.d.ts.map +1 -1
- package/dist/dts/HttpApiGroup.d.ts +96 -194
- package/dist/dts/HttpApiGroup.d.ts.map +1 -1
- package/dist/dts/HttpApiMiddleware.d.ts +228 -0
- package/dist/dts/HttpApiMiddleware.d.ts.map +1 -0
- package/dist/dts/HttpApiSchema.d.ts +6 -2
- package/dist/dts/HttpApiSchema.d.ts.map +1 -1
- package/dist/dts/HttpApiSecurity.d.ts +1 -1
- package/dist/dts/HttpApiSecurity.d.ts.map +1 -1
- package/dist/dts/HttpApiSwagger.d.ts +2 -2
- package/dist/dts/HttpApiSwagger.d.ts.map +1 -1
- package/dist/dts/HttpBody.d.ts +2 -2
- package/dist/dts/HttpBody.d.ts.map +1 -1
- package/dist/dts/HttpClientRequest.d.ts +2 -2
- package/dist/dts/HttpClientRequest.d.ts.map +1 -1
- package/dist/dts/HttpClientResponse.d.ts +3 -3
- package/dist/dts/HttpClientResponse.d.ts.map +1 -1
- package/dist/dts/HttpIncomingMessage.d.ts +3 -3
- package/dist/dts/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/dts/HttpRouter.d.ts +3 -3
- package/dist/dts/HttpRouter.d.ts.map +1 -1
- package/dist/dts/HttpServer.d.ts +15 -0
- package/dist/dts/HttpServer.d.ts.map +1 -1
- package/dist/dts/HttpServerRequest.d.ts +3 -3
- package/dist/dts/HttpServerRequest.d.ts.map +1 -1
- package/dist/dts/HttpServerRespondable.d.ts.map +1 -1
- package/dist/dts/HttpServerResponse.d.ts +2 -2
- package/dist/dts/HttpServerResponse.d.ts.map +1 -1
- package/dist/dts/KeyValueStore.d.ts +2 -2
- package/dist/dts/KeyValueStore.d.ts.map +1 -1
- package/dist/dts/Multipart.d.ts +3 -3
- package/dist/dts/Multipart.d.ts.map +1 -1
- package/dist/dts/OpenApi.d.ts +17 -39
- package/dist/dts/OpenApi.d.ts.map +1 -1
- package/dist/dts/OpenApiJsonSchema.d.ts +10 -5
- package/dist/dts/OpenApiJsonSchema.d.ts.map +1 -1
- package/dist/dts/Transferable.d.ts +4 -1
- package/dist/dts/Transferable.d.ts.map +1 -1
- package/dist/dts/UrlParams.d.ts +3 -6
- package/dist/dts/UrlParams.d.ts.map +1 -1
- package/dist/dts/Worker.d.ts +7 -8
- package/dist/dts/Worker.d.ts.map +1 -1
- package/dist/dts/WorkerError.d.ts +1 -1
- package/dist/dts/WorkerError.d.ts.map +1 -1
- package/dist/dts/WorkerRunner.d.ts +2 -3
- package/dist/dts/WorkerRunner.d.ts.map +1 -1
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/httpRouter.d.ts.map +1 -1
- package/dist/esm/Headers.js +7 -2
- package/dist/esm/Headers.js.map +1 -1
- package/dist/esm/HttpApi.js +88 -77
- package/dist/esm/HttpApi.js.map +1 -1
- package/dist/esm/HttpApiBuilder.js +238 -244
- package/dist/esm/HttpApiBuilder.js.map +1 -1
- package/dist/esm/HttpApiClient.js +64 -59
- package/dist/esm/HttpApiClient.js.map +1 -1
- package/dist/esm/HttpApiEndpoint.js +73 -106
- package/dist/esm/HttpApiEndpoint.js.map +1 -1
- package/dist/esm/HttpApiError.js +3 -4
- package/dist/esm/HttpApiError.js.map +1 -1
- package/dist/esm/HttpApiGroup.js +102 -99
- package/dist/esm/HttpApiGroup.js.map +1 -1
- package/dist/esm/HttpApiMiddleware.js +56 -0
- package/dist/esm/HttpApiMiddleware.js.map +1 -0
- package/dist/esm/HttpApiSchema.js +31 -5
- package/dist/esm/HttpApiSchema.js.map +1 -1
- package/dist/esm/HttpApiSecurity.js +1 -1
- package/dist/esm/HttpApiSecurity.js.map +1 -1
- package/dist/esm/HttpApiSwagger.js +4 -2
- package/dist/esm/HttpApiSwagger.js.map +1 -1
- package/dist/esm/HttpBody.js.map +1 -1
- package/dist/esm/HttpIncomingMessage.js +4 -1
- package/dist/esm/HttpIncomingMessage.js.map +1 -1
- package/dist/esm/HttpServer.js +11 -0
- package/dist/esm/HttpServer.js.map +1 -1
- package/dist/esm/HttpServerRespondable.js +1 -1
- package/dist/esm/HttpServerRespondable.js.map +1 -1
- package/dist/esm/OpenApi.js +97 -59
- package/dist/esm/OpenApi.js.map +1 -1
- package/dist/esm/OpenApiJsonSchema.js +56 -46
- package/dist/esm/OpenApiJsonSchema.js.map +1 -1
- package/dist/esm/Transferable.js +2 -2
- package/dist/esm/Transferable.js.map +1 -1
- package/dist/esm/UrlParams.js +4 -1
- package/dist/esm/UrlParams.js.map +1 -1
- package/dist/esm/Worker.js.map +1 -1
- package/dist/esm/WorkerError.js +1 -4
- package/dist/esm/WorkerError.js.map +1 -1
- package/dist/esm/WorkerRunner.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/httpBody.js +1 -1
- package/dist/esm/internal/httpBody.js.map +1 -1
- package/dist/esm/internal/httpClientRequest.js.map +1 -1
- package/dist/esm/internal/httpClientResponse.js +1 -1
- package/dist/esm/internal/httpClientResponse.js.map +1 -1
- package/dist/esm/internal/httpRouter.js +1 -1
- package/dist/esm/internal/httpRouter.js.map +1 -1
- package/dist/esm/internal/httpServer.js +6 -0
- package/dist/esm/internal/httpServer.js.map +1 -1
- package/dist/esm/internal/httpServerRequest.js +1 -1
- package/dist/esm/internal/httpServerRequest.js.map +1 -1
- package/dist/esm/internal/httpServerResponse.js.map +1 -1
- package/dist/esm/internal/keyValueStore.js +1 -1
- package/dist/esm/internal/keyValueStore.js.map +1 -1
- package/dist/esm/internal/multipart.js +1 -1
- package/dist/esm/internal/multipart.js.map +1 -1
- package/dist/esm/internal/worker.js +6 -7
- package/dist/esm/internal/worker.js.map +1 -1
- package/dist/esm/internal/workerRunner.js +3 -4
- package/dist/esm/internal/workerRunner.js.map +1 -1
- package/package.json +10 -3
- package/src/Headers.ts +12 -4
- package/src/HttpApi.ts +183 -258
- package/src/HttpApiBuilder.ts +534 -481
- package/src/HttpApiClient.ts +163 -112
- package/src/HttpApiEndpoint.ts +443 -564
- package/src/HttpApiError.ts +4 -6
- package/src/HttpApiGroup.ts +277 -325
- package/src/HttpApiMiddleware.ts +317 -0
- package/src/HttpApiSchema.ts +39 -2
- package/src/HttpApiSecurity.ts +1 -1
- package/src/HttpApiSwagger.ts +3 -3
- package/src/HttpBody.ts +2 -2
- package/src/HttpClientRequest.ts +2 -2
- package/src/HttpClientResponse.ts +3 -3
- package/src/HttpIncomingMessage.ts +3 -3
- package/src/HttpRouter.ts +3 -3
- package/src/HttpServer.ts +21 -0
- package/src/HttpServerRequest.ts +3 -3
- package/src/HttpServerRespondable.ts +1 -1
- package/src/HttpServerResponse.ts +2 -2
- package/src/KeyValueStore.ts +2 -2
- package/src/Multipart.ts +3 -3
- package/src/OpenApi.ts +113 -104
- package/src/OpenApiJsonSchema.ts +67 -53
- package/src/Transferable.ts +2 -2
- package/src/UrlParams.ts +3 -3
- package/src/Worker.ts +7 -8
- package/src/WorkerError.ts +1 -1
- package/src/WorkerRunner.ts +2 -3
- package/src/index.ts +5 -0
- package/src/internal/httpBody.ts +2 -2
- package/src/internal/httpClientRequest.ts +2 -2
- package/src/internal/httpClientResponse.ts +3 -3
- package/src/internal/httpRouter.ts +2 -2
- package/src/internal/httpServer.ts +13 -0
- package/src/internal/httpServerRequest.ts +3 -3
- package/src/internal/httpServerResponse.ts +2 -2
- package/src/internal/keyValueStore.ts +1 -1
- package/src/internal/multipart.ts +3 -3
- package/src/internal/worker.ts +6 -7
- package/src/internal/workerRunner.ts +3 -4
package/dist/esm/Headers.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import { FiberRefs } from "effect";
|
|
5
5
|
import * as FiberRef from "effect/FiberRef";
|
|
6
6
|
import { dual, identity } from "effect/Function";
|
|
7
7
|
import { globalValue } from "effect/GlobalValue";
|
|
8
|
+
import { symbolRedactable } from "effect/Inspectable";
|
|
8
9
|
import * as Predicate from "effect/Predicate";
|
|
9
10
|
import * as Record from "effect/Record";
|
|
10
11
|
import * as Redacted from "effect/Redacted";
|
|
12
|
+
import * as Schema from "effect/Schema";
|
|
11
13
|
import * as String from "effect/String";
|
|
12
14
|
/**
|
|
13
15
|
* @since 1.0.0
|
|
@@ -20,7 +22,10 @@ export const HeadersTypeId = /*#__PURE__*/Symbol.for("@effect/platform/Headers")
|
|
|
20
22
|
*/
|
|
21
23
|
export const isHeaders = u => Predicate.hasProperty(u, HeadersTypeId);
|
|
22
24
|
const Proto = /*#__PURE__*/Object.assign( /*#__PURE__*/Object.create(null), {
|
|
23
|
-
[HeadersTypeId]: HeadersTypeId
|
|
25
|
+
[HeadersTypeId]: HeadersTypeId,
|
|
26
|
+
[symbolRedactable](fiberRefs) {
|
|
27
|
+
return redact(this, FiberRefs.getOrDefault(fiberRefs, currentRedactedNames));
|
|
28
|
+
}
|
|
24
29
|
});
|
|
25
30
|
const make = input => Object.assign(Object.create(Proto), input);
|
|
26
31
|
/**
|
package/dist/esm/Headers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Headers.js","names":["
|
|
1
|
+
{"version":3,"file":"Headers.js","names":["FiberRefs","FiberRef","dual","identity","globalValue","symbolRedactable","Predicate","Record","Redacted","Schema","String","HeadersTypeId","Symbol","for","isHeaders","u","hasProperty","Proto","Object","assign","create","fiberRefs","redact","getOrDefault","currentRedactedNames","make","input","schemaFromSelf","declare","identifier","equivalence","getEquivalence","Equivalence","schema","transform","key","value","Union","Array","strict","decode","record","fromInput","encode","empty","undefined","iterator","out","k","v","toLowerCase","entries","isArray","join","unsafeFromRecord","setPrototypeOf","has","self","get","set","setAll","headers","merge","remove","modify","name","test","i","length","unsafeMake"],"sources":["../../src/Headers.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,SAASA,SAAS,QAAQ,QAAQ;AAClC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,SAASC,IAAI,EAAEC,QAAQ,QAAQ,iBAAiB;AAChD,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAA0BC,gBAAgB,QAAQ,oBAAoB;AAEtE,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC;;;;AAIA,OAAO,MAAMC,aAAa,gBAAkBC,MAAM,CAACC,GAAG,CAAC,0BAA0B,CAAC;AAQlF;;;;AAIA,OAAO,MAAMC,SAAS,GAAIC,CAAU,IAAmBT,SAAS,CAACU,WAAW,CAACD,CAAC,EAAEJ,aAAa,CAAC;AAW9F,MAAMM,KAAK,gBAAGC,MAAM,CAACC,MAAM,eAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;EAC/C,CAACT,aAAa,GAAGA,aAAa;EAC9B,CAACN,gBAAgB,EAEfgB,SAA8B;IAE9B,OAAOC,MAAM,CAAC,IAAI,EAAEtB,SAAS,CAACuB,YAAY,CAACF,SAAS,EAAEG,oBAAoB,CAAC,CAAC;EAC9E;CACD,CAAC;AAEF,MAAMC,IAAI,GAAIC,KAA4C,IACxDR,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAACH,KAAK,CAAC,EAAES,KAAK,CAAY;AAEvD;;;;AAIA,OAAO,MAAMC,cAAc,gBAA2BlB,MAAM,CAACmB,OAAO,CAACd,SAAS,EAAE;EAC9Ee,UAAU,EAAE,SAAS;EACrBC,WAAW,EAAEA,CAAA,KAAMvB,MAAM,CAACwB,cAAc,CAACrB,MAAM,CAACsB,WAAW;CAC5D,CAAC;AAEF;;;;AAIA,OAAO,MAAMC,MAAM,gBAA0FxB,MAAM,CAChHyB,SAAS,eACRzB,MAAM,CAACF,MAAM,CAAC;EAAE4B,GAAG,EAAE1B,MAAM,CAACC,MAAM;EAAE0B,KAAK,eAAE3B,MAAM,CAAC4B,KAAK,CAAC5B,MAAM,CAACC,MAAM,eAAED,MAAM,CAAC6B,KAAK,CAAC7B,MAAM,CAACC,MAAM,CAAC;AAAC,CAAE,CAAC,EACtGiB,cAAc,EACd;EAAEY,MAAM,EAAE,IAAI;EAAEC,MAAM,EAAGC,MAAM,IAAKC,SAAS,CAACD,MAAM,CAAC;EAAEE,MAAM,EAAExC;AAAQ,CAAE,CAC1E;AAUH;;;;AAIA,OAAO,MAAMyC,KAAK,gBAAY1B,MAAM,CAACE,MAAM,CAACH,KAAK,CAAC;AAElD;;;;AAIA,OAAO,MAAMyB,SAAS,GAAgChB,KAAK,IAAI;EAC7D,IAAIA,KAAK,KAAKmB,SAAS,EAAE;IACvB,OAAOD,KAAK;EACd,CAAC,MAAM,IAAIhC,MAAM,CAACkC,QAAQ,IAAIpB,KAAK,EAAE;IACnC,MAAMqB,GAAG,GAA2B7B,MAAM,CAACE,MAAM,CAACH,KAAK,CAAC;IACxD,KAAK,MAAM,CAAC+B,CAAC,EAAEC,CAAC,CAAC,IAAIvB,KAAK,EAAE;MAC1BqB,GAAG,CAACC,CAAC,CAACE,WAAW,EAAE,CAAC,GAAGD,CAAC;IAC1B;IACA,OAAOF,GAAc;EACvB;EACA,MAAMA,GAAG,GAA2B7B,MAAM,CAACE,MAAM,CAACH,KAAK,CAAC;EACxD,KAAK,MAAM,CAAC+B,CAAC,EAAEC,CAAC,CAAC,IAAI/B,MAAM,CAACiC,OAAO,CAACzB,KAAK,CAAC,EAAE;IAC1C,IAAIY,KAAK,CAACc,OAAO,CAACH,CAAC,CAAC,EAAE;MACpBF,GAAG,CAACC,CAAC,CAACE,WAAW,EAAE,CAAC,GAAGD,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC;IACrC,CAAC,MAAM,IAAIJ,CAAC,KAAKJ,SAAS,EAAE;MAC1BE,GAAG,CAACC,CAAC,CAACE,WAAW,EAAE,CAAC,GAAGD,CAAW;IACpC;EACF;EACA,OAAOF,GAAc;AACvB,CAAC;AAED;;;;AAIA,OAAO,MAAMO,gBAAgB,GAAI5B,KAA4C,IAC3ER,MAAM,CAACqC,cAAc,CAAC7B,KAAK,EAAET,KAAK,CAAY;AAEhD;;;;AAIA,OAAO,MAAMuC,GAAG,gBAWZtD,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEtB,GAAG,KAAKA,GAAG,CAACe,WAAW,EAAE,IAAIO,IAAI,CAAC;AAE9C;;;;AAIA,OAAO,MAAMC,GAAG,gBAWZxD,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEtB,GAAG,KAAK5B,MAAM,CAACmD,GAAG,CAACD,IAA8B,EAAEtB,GAAG,CAACe,WAAW,EAAE,CAAC,CAAC;AAElF;;;;AAIA,OAAO,MAAMS,GAAG,gBAWZzD,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEtB,GAAG,EAAEC,KAAK,KAAI;EACxB,MAAMW,GAAG,GAAGtB,IAAI,CAACgC,IAAI,CAAC;EACtBV,GAAG,CAACZ,GAAG,CAACe,WAAW,EAAE,CAAC,GAAGd,KAAK;EAC9B,OAAOW,GAAG;AACZ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMa,MAAM,gBAWf1D,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEI,OAAO,KACjBpC,IAAI,CAAC;EACH,GAAGgC,IAAI;EACP,GAAGf,SAAS,CAACmB,OAAO;CACrB,CAAC,CAAC;AAEL;;;;AAIA,OAAO,MAAMC,KAAK,gBAWd5D,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEI,OAAO,KAAI;EACrB,MAAMd,GAAG,GAAGtB,IAAI,CAACgC,IAAI,CAAC;EACtBvC,MAAM,CAACC,MAAM,CAAC4B,GAAG,EAAEc,OAAO,CAAC;EAC3B,OAAOd,GAAG;AACZ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMgB,MAAM,gBAWf7D,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEtB,GAAG,KAAI;EACjB,MAAMY,GAAG,GAAGtB,IAAI,CAACgC,IAAI,CAAC;EACtB,OAAOV,GAAG,CAACZ,GAAG,CAACe,WAAW,EAAE,CAAC;EAC7B,OAAOH,GAAG;AACZ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMzB,MAAM,gBAWfpB,IAAI,CACN,CAAC,EACD,CACEuD,IAAa,EACbtB,GAAqD,KACP;EAC9C,MAAMY,GAAG,GAA+C;IAAE,GAAGU;EAAI,CAAE;EACnE,MAAMO,MAAM,GAAI7B,GAAoB,IAAI;IACtC,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;MAC3B,MAAMa,CAAC,GAAGb,GAAG,CAACe,WAAW,EAAE;MAC3B,IAAIF,CAAC,IAAIS,IAAI,EAAE;QACbV,GAAG,CAACC,CAAC,CAAC,GAAGxC,QAAQ,CAACiB,IAAI,CAACgC,IAAI,CAACT,CAAC,CAAC,CAAC;MACjC;IACF,CAAC,MAAM;MACL,KAAK,MAAMiB,IAAI,IAAIR,IAAI,EAAE;QACvB,IAAItB,GAAG,CAAC+B,IAAI,CAACD,IAAI,CAAC,EAAE;UAClBlB,GAAG,CAACkB,IAAI,CAAC,GAAGzD,QAAQ,CAACiB,IAAI,CAACgC,IAAI,CAACQ,IAAI,CAAC,CAAC;QACvC;MACF;IACF;EACF,CAAC;EACD,IAAI3B,KAAK,CAACc,OAAO,CAACjB,GAAG,CAAC,EAAE;IACtB,KAAK,IAAIgC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhC,GAAG,CAACiC,MAAM,EAAED,CAAC,EAAE,EAAE;MACnCH,MAAM,CAAC7B,GAAG,CAACgC,CAAC,CAAC,CAAC;IAChB;EACF,CAAC,MAAM;IACLH,MAAM,CAAC7B,GAAsB,CAAC;EAChC;EACA,OAAOY,GAAG;AACZ,CAAC,CACF;AAED;;;;AAIA,OAAO,MAAMvB,oBAAoB,gBAAsDpB,WAAW,CAChG,+CAA+C,EAC/C,MACEH,QAAQ,CAACoE,UAAU,CAAiC,CAClD,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,WAAW,CACZ,CAAC,CACL","ignoreList":[]}
|
package/dist/esm/HttpApi.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import * as AST from "@effect/schema/AST";
|
|
5
|
-
import * as Chunk from "effect/Chunk";
|
|
6
4
|
import * as Context from "effect/Context";
|
|
7
|
-
import
|
|
5
|
+
import * as HashMap from "effect/HashMap";
|
|
6
|
+
import * as HashSet from "effect/HashSet";
|
|
8
7
|
import * as Option from "effect/Option";
|
|
9
8
|
import { pipeArguments } from "effect/Pipeable";
|
|
10
9
|
import * as Predicate from "effect/Predicate";
|
|
11
|
-
import * as
|
|
10
|
+
import * as AST from "effect/SchemaAST";
|
|
12
11
|
import { HttpApiDecodeError } from "./HttpApiError.js";
|
|
13
|
-
import * as HttpApiGroup from "./HttpApiGroup.js";
|
|
14
12
|
import * as HttpApiSchema from "./HttpApiSchema.js";
|
|
15
13
|
/**
|
|
16
14
|
* @since 1.0.0
|
|
@@ -26,79 +24,89 @@ export const isHttpApi = u => Predicate.hasProperty(u, TypeId);
|
|
|
26
24
|
* @since 1.0.0
|
|
27
25
|
* @category tags
|
|
28
26
|
*/
|
|
29
|
-
export
|
|
27
|
+
export class Api extends /*#__PURE__*/Context.Tag("@effect/platform/HttpApi/Api")() {}
|
|
30
28
|
const Proto = {
|
|
31
29
|
[TypeId]: TypeId,
|
|
32
30
|
pipe() {
|
|
33
31
|
return pipeArguments(this, arguments);
|
|
32
|
+
},
|
|
33
|
+
add(group) {
|
|
34
|
+
return makeProto({
|
|
35
|
+
groups: HashMap.set(this.groups, group.identifier, group),
|
|
36
|
+
errorSchema: this.errorSchema,
|
|
37
|
+
annotations: this.annotations,
|
|
38
|
+
middlewares: this.middlewares
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
addError(schema, annotations) {
|
|
42
|
+
return makeProto({
|
|
43
|
+
groups: this.groups,
|
|
44
|
+
errorSchema: HttpApiSchema.UnionUnify(this.errorSchema, schema.annotations(HttpApiSchema.annotations({
|
|
45
|
+
status: annotations?.status ?? HttpApiSchema.getStatusError(schema)
|
|
46
|
+
}))),
|
|
47
|
+
annotations: this.annotations,
|
|
48
|
+
middlewares: this.middlewares
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
prefix(prefix) {
|
|
52
|
+
return makeProto({
|
|
53
|
+
groups: HashMap.map(this.groups, group => group.prefix(prefix)),
|
|
54
|
+
errorSchema: this.errorSchema,
|
|
55
|
+
annotations: this.annotations,
|
|
56
|
+
middlewares: this.middlewares
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
middleware(tag) {
|
|
60
|
+
return makeProto({
|
|
61
|
+
groups: this.groups,
|
|
62
|
+
errorSchema: HttpApiSchema.UnionUnify(this.errorSchema, tag.failure.annotations(HttpApiSchema.annotations({
|
|
63
|
+
status: HttpApiSchema.getStatusError(tag.failure)
|
|
64
|
+
}))),
|
|
65
|
+
annotations: this.annotations,
|
|
66
|
+
middlewares: HashSet.add(this.middlewares, tag)
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
annotate(tag, value) {
|
|
70
|
+
return makeProto({
|
|
71
|
+
groups: this.groups,
|
|
72
|
+
errorSchema: this.errorSchema,
|
|
73
|
+
annotations: Context.add(this.annotations, tag, value),
|
|
74
|
+
middlewares: this.middlewares
|
|
75
|
+
});
|
|
76
|
+
},
|
|
77
|
+
annotateContext(context) {
|
|
78
|
+
return makeProto({
|
|
79
|
+
groups: this.groups,
|
|
80
|
+
errorSchema: this.errorSchema,
|
|
81
|
+
annotations: Context.merge(this.annotations, context),
|
|
82
|
+
middlewares: this.middlewares
|
|
83
|
+
});
|
|
34
84
|
}
|
|
35
85
|
};
|
|
36
86
|
const makeProto = options => {
|
|
37
87
|
function HttpApi() {}
|
|
38
88
|
Object.setPrototypeOf(HttpApi, Proto);
|
|
39
|
-
|
|
89
|
+
HttpApi.groups = options.groups;
|
|
90
|
+
HttpApi.errorSchema = options.errorSchema;
|
|
91
|
+
HttpApi.annotations = options.annotations;
|
|
92
|
+
HttpApi.middlewares = options.middlewares;
|
|
93
|
+
return HttpApi;
|
|
40
94
|
};
|
|
41
95
|
/**
|
|
42
|
-
* An
|
|
96
|
+
* An `HttpApi` is a collection of `HttpApiEndpoint`s. You can use an `HttpApi` to
|
|
97
|
+
* represent a portion of your domain.
|
|
43
98
|
*
|
|
44
|
-
*
|
|
99
|
+
* The endpoints can be implemented later using the `HttpApiBuilder.make` api.
|
|
45
100
|
*
|
|
46
101
|
* @since 1.0.0
|
|
47
102
|
* @category constructors
|
|
48
103
|
*/
|
|
49
104
|
export const empty = /*#__PURE__*/makeProto({
|
|
50
|
-
groups: /*#__PURE__*/
|
|
105
|
+
groups: /*#__PURE__*/HashMap.empty(),
|
|
51
106
|
errorSchema: HttpApiDecodeError,
|
|
52
|
-
annotations: /*#__PURE__*/Context.empty()
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Add a `HttpApiGroup` to an `HttpApi`.
|
|
56
|
-
*
|
|
57
|
-
* @since 1.0.0
|
|
58
|
-
* @category constructors
|
|
59
|
-
*/
|
|
60
|
-
export const addGroup = /*#__PURE__*/dual(args => isHttpApi(args[0]), (self, ...args) => {
|
|
61
|
-
const group = args.length === 1 ? args[0] : HttpApiGroup.prefix(args[1], args[0]);
|
|
62
|
-
return makeProto({
|
|
63
|
-
errorSchema: self.errorSchema,
|
|
64
|
-
annotations: self.annotations,
|
|
65
|
-
groups: Chunk.append(self.groups, group)
|
|
66
|
-
});
|
|
107
|
+
annotations: /*#__PURE__*/Context.empty(),
|
|
108
|
+
middlewares: /*#__PURE__*/HashSet.empty()
|
|
67
109
|
});
|
|
68
|
-
/**
|
|
69
|
-
* Add an error schema to an `HttpApi`, which is shared by all endpoints in the
|
|
70
|
-
* `HttpApi`.
|
|
71
|
-
*
|
|
72
|
-
* Useful for adding error types from middleware or other shared error types.
|
|
73
|
-
*
|
|
74
|
-
* @since 1.0.0
|
|
75
|
-
* @category errors
|
|
76
|
-
*/
|
|
77
|
-
export const addError = /*#__PURE__*/dual(args => isHttpApi(args[0]), (self, schema, annotations) => makeProto({
|
|
78
|
-
groups: self.groups,
|
|
79
|
-
annotations: self.annotations,
|
|
80
|
-
errorSchema: HttpApiSchema.UnionUnify(self.errorSchema, schema.annotations(HttpApiSchema.annotations({
|
|
81
|
-
status: annotations?.status ?? HttpApiSchema.getStatusError(schema)
|
|
82
|
-
})))
|
|
83
|
-
}));
|
|
84
|
-
/**
|
|
85
|
-
* @since 1.0.0
|
|
86
|
-
* @category annotations
|
|
87
|
-
*/
|
|
88
|
-
export const annotateMerge = /*#__PURE__*/dual(2, (self, context) => makeProto({
|
|
89
|
-
groups: self.groups,
|
|
90
|
-
errorSchema: self.errorSchema,
|
|
91
|
-
annotations: Context.merge(self.annotations, context)
|
|
92
|
-
}));
|
|
93
|
-
/**
|
|
94
|
-
* @since 1.0.0
|
|
95
|
-
* @category annotations
|
|
96
|
-
*/
|
|
97
|
-
export const annotate = /*#__PURE__*/dual(3, (self, tag, value) => makeProto({
|
|
98
|
-
groups: self.groups,
|
|
99
|
-
errorSchema: self.errorSchema,
|
|
100
|
-
annotations: Context.add(self.annotations, tag, value)
|
|
101
|
-
}));
|
|
102
110
|
/**
|
|
103
111
|
* Extract metadata from an `HttpApi`, which can be used to generate documentation
|
|
104
112
|
* or other tooling.
|
|
@@ -109,49 +117,52 @@ export const annotate = /*#__PURE__*/dual(3, (self, tag, value) => makeProto({
|
|
|
109
117
|
* @category reflection
|
|
110
118
|
*/
|
|
111
119
|
export const reflect = (self, options) => {
|
|
112
|
-
const apiErrors =
|
|
120
|
+
const apiErrors = extractMembers(self.errorSchema.ast, new Map(), HttpApiSchema.getStatusErrorAST);
|
|
113
121
|
const groups = self.groups;
|
|
114
|
-
for (const group of groups) {
|
|
115
|
-
const groupErrors =
|
|
122
|
+
for (const [, group] of groups) {
|
|
123
|
+
const groupErrors = extractMembers(group.errorSchema.ast, apiErrors, HttpApiSchema.getStatusErrorAST);
|
|
116
124
|
const groupAnnotations = Context.merge(self.annotations, group.annotations);
|
|
117
125
|
options.onGroup({
|
|
118
126
|
group,
|
|
119
127
|
mergedAnnotations: groupAnnotations
|
|
120
128
|
});
|
|
121
129
|
const endpoints = group.endpoints;
|
|
122
|
-
for (const endpoint of endpoints) {
|
|
130
|
+
for (const [, endpoint] of endpoints) {
|
|
131
|
+
const errors = extractMembers(endpoint.errorSchema.ast, groupErrors, HttpApiSchema.getStatusErrorAST);
|
|
123
132
|
options.onEndpoint({
|
|
124
133
|
group,
|
|
125
134
|
endpoint,
|
|
135
|
+
middleware: HashSet.union(group.middlewares, endpoint.middlewares),
|
|
126
136
|
mergedAnnotations: Context.merge(groupAnnotations, endpoint.annotations),
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
successEncoding: HttpApiSchema.getEncoding(endpoint.successSchema.ast),
|
|
130
|
-
errors: extractErrors(endpoint.errorSchema.ast, groupErrors)
|
|
137
|
+
successes: extractMembers(endpoint.successSchema.ast, new Map(), HttpApiSchema.getStatusSuccessAST),
|
|
138
|
+
errors
|
|
131
139
|
});
|
|
132
140
|
}
|
|
133
141
|
}
|
|
134
142
|
};
|
|
135
143
|
// -------------------------------------------------------------------------------------
|
|
136
|
-
const
|
|
137
|
-
const
|
|
138
|
-
const errors = new Map(inherited);
|
|
144
|
+
const extractMembers = (topAst, inherited, getStatus) => {
|
|
145
|
+
const members = new Map(inherited);
|
|
139
146
|
function process(ast) {
|
|
140
147
|
if (ast._tag === "NeverKeyword") {
|
|
141
148
|
return;
|
|
142
149
|
}
|
|
143
|
-
|
|
150
|
+
ast = AST.annotations(ast, {
|
|
151
|
+
...topAst.annotations,
|
|
152
|
+
...ast.annotations
|
|
153
|
+
});
|
|
154
|
+
const status = getStatus(ast);
|
|
144
155
|
const emptyDecodeable = HttpApiSchema.getEmptyDecodeable(ast);
|
|
145
|
-
const current =
|
|
146
|
-
|
|
156
|
+
const current = members.get(status) ?? Option.none();
|
|
157
|
+
members.set(status, current.pipe(Option.map(current => AST.Union.make(current._tag === "Union" ? [...current.types, ast] : [current, ast])), Option.orElse(() => !emptyDecodeable && AST.encodedAST(ast)._tag === "VoidKeyword" ? Option.none() : Option.some(ast))));
|
|
147
158
|
}
|
|
148
|
-
if (
|
|
149
|
-
for (const type of
|
|
159
|
+
if (topAst._tag === "Union") {
|
|
160
|
+
for (const type of topAst.types) {
|
|
150
161
|
process(type);
|
|
151
162
|
}
|
|
152
163
|
} else {
|
|
153
|
-
process(
|
|
164
|
+
process(topAst);
|
|
154
165
|
}
|
|
155
|
-
return
|
|
166
|
+
return members;
|
|
156
167
|
};
|
|
157
168
|
//# sourceMappingURL=HttpApi.js.map
|
package/dist/esm/HttpApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpApi.js","names":["
|
|
1
|
+
{"version":3,"file":"HttpApi.js","names":["Context","HashMap","HashSet","Option","pipeArguments","Predicate","AST","HttpApiDecodeError","HttpApiSchema","TypeId","Symbol","for","isHttpApi","u","hasProperty","Api","Tag","Proto","pipe","arguments","add","group","makeProto","groups","set","identifier","errorSchema","annotations","middlewares","addError","schema","UnionUnify","status","getStatusError","prefix","map","middleware","tag","failure","annotate","value","annotateContext","context","merge","options","HttpApi","Object","setPrototypeOf","empty","reflect","self","apiErrors","extractMembers","ast","Map","getStatusErrorAST","groupErrors","groupAnnotations","onGroup","mergedAnnotations","endpoints","endpoint","errors","onEndpoint","union","successes","successSchema","getStatusSuccessAST","topAst","inherited","getStatus","members","process","_tag","emptyDecodeable","getEmptyDecodeable","current","get","none","Union","make","types","orElse","encodedAST","some","type"],"sources":["../../src/HttpApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|