@effect/platform 0.69.24 → 0.69.26
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/dist/cjs/HttpApi.js +4 -0
- package/dist/cjs/HttpApi.js.map +1 -1
- package/dist/cjs/HttpApiClient.js +83 -20
- package/dist/cjs/HttpApiClient.js.map +1 -1
- package/dist/cjs/HttpApiEndpoint.js.map +1 -1
- package/dist/cjs/HttpApiGroup.js.map +1 -1
- package/dist/cjs/OpenApi.js +14 -3
- package/dist/cjs/OpenApi.js.map +1 -1
- package/dist/dts/Error.d.ts.map +1 -1
- package/dist/dts/HttpApi.d.ts +5 -0
- package/dist/dts/HttpApi.d.ts.map +1 -1
- package/dist/dts/HttpApiBuilder.d.ts +1 -1
- package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
- package/dist/dts/HttpApiClient.d.ts +31 -6
- package/dist/dts/HttpApiClient.d.ts.map +1 -1
- package/dist/dts/HttpApiEndpoint.d.ts +5 -0
- package/dist/dts/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/dts/HttpApiGroup.d.ts +14 -4
- package/dist/dts/HttpApiGroup.d.ts.map +1 -1
- package/dist/dts/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/dts/OpenApi.d.ts +12 -0
- package/dist/dts/OpenApi.d.ts.map +1 -1
- package/dist/esm/HttpApi.js +4 -0
- package/dist/esm/HttpApi.js.map +1 -1
- package/dist/esm/HttpApiClient.js +79 -18
- package/dist/esm/HttpApiClient.js.map +1 -1
- package/dist/esm/HttpApiEndpoint.js.map +1 -1
- package/dist/esm/HttpApiGroup.js.map +1 -1
- package/dist/esm/OpenApi.js +12 -2
- package/dist/esm/OpenApi.js.map +1 -1
- package/package.json +2 -2
- package/src/HttpApi.ts +11 -0
- package/src/HttpApiBuilder.ts +1 -1
- package/src/HttpApiClient.ts +171 -23
- package/src/HttpApiEndpoint.ts +6 -0
- package/src/HttpApiGroup.ts +21 -4
- package/src/OpenApi.ts +20 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpApiGroup.js","names":["Context","pipeArguments","Predicate","Record","Schema","HttpApiSchema","TypeId","Symbol","for","isHttpApiGroup","u","hasProperty","Proto","add","endpoint","makeProto","identifier","topLevel","endpoints","name","errorSchema","annotations","middlewares","addError","schema","UnionUnify","status","getStatusError","prefix","map","middleware","failure","Set","middlewareEndpoints","annotateContext","context","merge","annotate","tag","value","annotateEndpointsContext","annotateEndpoints","pipe","arguments","options","HttpApiGroup","Object","setPrototypeOf","assign","make","empty","Never"],"sources":["../../src/HttpApiGroup.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,SAAwBC,aAAa,QAAQ,iBAAiB;AAC9D,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAIvC,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAGnD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,+BAA+B,CAAC;AAQhF;;;;AAIA,OAAO,MAAMC,cAAc,GAAIC,CAAU,IAA4BR,SAAS,CAACS,WAAW,CAACD,CAAC,EAAEJ,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpApiGroup.js","names":["Context","pipeArguments","Predicate","Record","Schema","HttpApiSchema","TypeId","Symbol","for","isHttpApiGroup","u","hasProperty","Proto","add","endpoint","makeProto","identifier","topLevel","endpoints","name","errorSchema","annotations","middlewares","addError","schema","UnionUnify","status","getStatusError","prefix","map","middleware","failure","Set","middlewareEndpoints","annotateContext","context","merge","annotate","tag","value","annotateEndpointsContext","annotateEndpoints","pipe","arguments","options","HttpApiGroup","Object","setPrototypeOf","assign","make","empty","Never"],"sources":["../../src/HttpApiGroup.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/OpenApi.js
CHANGED
|
@@ -66,6 +66,12 @@ export class Deprecated extends /*#__PURE__*/Context.Tag("@effect/platform/OpenA
|
|
|
66
66
|
* @category annotations
|
|
67
67
|
*/
|
|
68
68
|
export class Override extends /*#__PURE__*/Context.Tag("@effect/platform/OpenApi/Override")() {}
|
|
69
|
+
/**
|
|
70
|
+
* Transforms the generated OpenAPI specification
|
|
71
|
+
* @since 1.0.0
|
|
72
|
+
* @category annotations
|
|
73
|
+
*/
|
|
74
|
+
export class Transform extends /*#__PURE__*/Context.Tag("@effect/platform/OpenApi/Transform")() {}
|
|
69
75
|
const contextPartial = tags => {
|
|
70
76
|
const entries = Object.entries(tags);
|
|
71
77
|
return options => {
|
|
@@ -92,7 +98,8 @@ export const annotations = /*#__PURE__*/contextPartial({
|
|
|
92
98
|
externalDocs: ExternalDocs,
|
|
93
99
|
servers: Servers,
|
|
94
100
|
format: Format,
|
|
95
|
-
override: Override
|
|
101
|
+
override: Override,
|
|
102
|
+
transform: Transform
|
|
96
103
|
});
|
|
97
104
|
const apiCache = /*#__PURE__*/globalValue("@effect/platform/OpenApi/apiCache", () => new WeakMap());
|
|
98
105
|
/**
|
|
@@ -105,7 +112,7 @@ export const fromApi = self => {
|
|
|
105
112
|
}
|
|
106
113
|
const api = self;
|
|
107
114
|
const jsonSchemaDefs = {};
|
|
108
|
-
|
|
115
|
+
let spec = {
|
|
109
116
|
openapi: "3.0.3",
|
|
110
117
|
info: {
|
|
111
118
|
title: Context.getOrElse(api.annotations, Title, () => "Api"),
|
|
@@ -315,6 +322,9 @@ export const fromApi = self => {
|
|
|
315
322
|
spec.paths[path][method] = op;
|
|
316
323
|
}
|
|
317
324
|
});
|
|
325
|
+
Option.map(Context.getOption(api.annotations, Transform), transformFn => {
|
|
326
|
+
spec = transformFn(spec);
|
|
327
|
+
});
|
|
318
328
|
apiCache.set(self, spec);
|
|
319
329
|
return spec;
|
|
320
330
|
};
|
package/dist/esm/OpenApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApi.js","names":["Context","globalValue","Option","Schema","AST","HttpApi","HttpApiMiddleware","HttpApiSchema","HttpMethod","JsonSchema","Identifier","Tag","Title","Version","Description","License","ExternalDocs","Servers","Format","Summary","Deprecated","Override","contextPartial","tags","entries","Object","options","context","empty","key","tag","undefined","add","annotations","identifier","title","version","description","license","summary","externalDocs","servers","format","override","apiCache","WeakMap","fromApi","self","has","get","api","jsonSchemaDefs","spec","openapi","info","getOrElse","paths","components","schemas","securitySchemes","security","makeJsonSchemaOrRef","schema","makeWithDefs","defs","defsPath","registerSecurity","name","scheme","makeSecurityScheme","map","getOption","AdditionalSchemas","componentSchemas","forEach","componentSchema","assign","middlewares","middleware","isSecurity","push","reflect","onGroup","group","onEndpoint","endpoint","errors","successes","path","replace","method","toLowerCase","op","operationId","topLevel","parameters","responses","deprecated","payloadSchema","pipe","filter","hasBody","requestBody","content","getMultipart","ast","required","status","getDescriptionOrIdentifier","getEmptyDecodeable","make","isSome","pathSchema","value","properties","jsonSchema","in","includes","headersSchema","urlParamsSchema","set","meta","_tag","type","bearerFormat","getOrUndefined","to","flatMapNullable","DescriptionAnnotationId","IdentifierAnnotationId"],"sources":["../../src/OpenApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OpenApi.js","names":["Context","globalValue","Option","Schema","AST","HttpApi","HttpApiMiddleware","HttpApiSchema","HttpMethod","JsonSchema","Identifier","Tag","Title","Version","Description","License","ExternalDocs","Servers","Format","Summary","Deprecated","Override","Transform","contextPartial","tags","entries","Object","options","context","empty","key","tag","undefined","add","annotations","identifier","title","version","description","license","summary","externalDocs","servers","format","override","transform","apiCache","WeakMap","fromApi","self","has","get","api","jsonSchemaDefs","spec","openapi","info","getOrElse","paths","components","schemas","securitySchemes","security","makeJsonSchemaOrRef","schema","makeWithDefs","defs","defsPath","registerSecurity","name","scheme","makeSecurityScheme","map","getOption","AdditionalSchemas","componentSchemas","forEach","componentSchema","assign","middlewares","middleware","isSecurity","push","reflect","onGroup","group","onEndpoint","endpoint","errors","successes","path","replace","method","toLowerCase","op","operationId","topLevel","parameters","responses","deprecated","payloadSchema","pipe","filter","hasBody","requestBody","content","getMultipart","ast","required","status","getDescriptionOrIdentifier","getEmptyDecodeable","make","isSome","pathSchema","value","properties","jsonSchema","in","includes","headersSchema","urlParamsSchema","transformFn","set","meta","_tag","type","bearerFormat","getOrUndefined","to","flatMapNullable","DescriptionAnnotationId","IdentifierAnnotationId"],"sources":["../../src/OpenApi.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,SAASC,WAAW,QAAQ,oBAAoB;AAChD,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,GAAG,MAAM,kBAAkB;AAEvC,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB;AAC3D,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAC7C,OAAO,KAAKC,UAAU,MAAM,wBAAwB;AAEpD;;;;AAIA,OAAM,MAAOC,UAAW,sBAAQV,OAAO,CAACW,GAAG,CAAC,qCAAqC,CAAC,EAAsB;AAExG;;;;AAIA,OAAM,MAAOC,KAAM,sBAAQZ,OAAO,CAACW,GAAG,CAAC,gCAAgC,CAAC,EAAiB;AAEzF;;;;AAIA,OAAM,MAAOE,OAAQ,sBAAQb,OAAO,CAACW,GAAG,CAAC,kCAAkC,CAAC,EAAmB;AAE/F;;;;AAIA,OAAM,MAAOG,WAAY,sBAAQd,OAAO,CAACW,GAAG,CAAC,sCAAsC,CAAC,EAAuB;AAE3G;;;;AAIA,OAAM,MAAOI,OAAQ,sBAAQf,OAAO,CAACW,GAAG,CAAC,kCAAkC,CAAC,EAA+B;AAE3G;;;;AAIA,OAAM,MAAOK,YACX,sBAAQhB,OAAO,CAACW,GAAG,CAAC,uCAAuC,CAAC,EAAyC;AAGvG;;;;AAIA,OAAM,MAAOM,OACX,sBAAQjB,OAAO,CAACW,GAAG,CAAC,kCAAkC,CAAC,EAA6C;AAGtG;;;;AAIA,OAAM,MAAOO,MAAO,sBAAQlB,OAAO,CAACW,GAAG,CAAC,iCAAiC,CAAC,EAAkB;AAE5F;;;;AAIA,OAAM,MAAOQ,OAAQ,sBAAQnB,OAAO,CAACW,GAAG,CAAC,kCAAkC,CAAC,EAAmB;AAE/F;;;;AAIA,OAAM,MAAOS,UAAW,sBAAQpB,OAAO,CAACW,GAAG,CAAC,qCAAqC,CAAC,EAAuB;AAEzG;;;;AAIA,OAAM,MAAOU,QAAS,sBAAQrB,OAAO,CAACW,GAAG,CAAC,mCAAmC,CAAC,EAAqC;AAEnH;;;;;AAKA,OAAM,MAAOW,SACX,sBAAQtB,OAAO,CAACW,GAAG,CAAC,oCAAoC,CAAC,EAAwD;AAGnH,MAAMY,cAAc,GAAwDC,IAAU,IAIxD;EAC5B,MAAMC,OAAO,GAAGC,MAAM,CAACD,OAAO,CAACD,IAAI,CAAC;EACpC,OAAQG,OAAO,IAAI;IACjB,IAAIC,OAAO,GAAG5B,OAAO,CAAC6B,KAAK,EAAE;IAC7B,KAAK,MAAM,CAACC,GAAG,EAAEC,GAAG,CAAC,IAAIN,OAAO,EAAE;MAChC,IAAIE,OAAO,CAACG,GAAG,CAAC,KAAKE,SAAS,EAAE;QAC9BJ,OAAO,GAAG5B,OAAO,CAACiC,GAAG,CAACL,OAAO,EAAEG,GAAG,EAAEJ,OAAO,CAACG,GAAG,CAAE,CAAC;MACpD;IACF;IACA,OAAOF,OAAO;EAChB,CAAC;AACH,CAAC;AAED;;;;AAIA,OAAO,MAAMM,WAAW,gBAiBMX,cAAc,CAAC;EAC3CY,UAAU,EAAEzB,UAAU;EACtB0B,KAAK,EAAExB,KAAK;EACZyB,OAAO,EAAExB,OAAO;EAChByB,WAAW,EAAExB,WAAW;EACxByB,OAAO,EAAExB,OAAO;EAChByB,OAAO,EAAErB,OAAO;EAChBsB,YAAY,EAAEzB,YAAY;EAC1B0B,OAAO,EAAEzB,OAAO;EAChB0B,MAAM,EAAEzB,MAAM;EACd0B,QAAQ,EAAEvB,QAAQ;EAClBwB,SAAS,EAAEvB;CACZ,CAAC;AAEF,MAAMwB,QAAQ,gBAAG7C,WAAW,CAAC,mCAAmC,EAAE,MAAM,IAAI8C,OAAO,EAAoC,CAAC;AAExH;;;;AAIA,OAAO,MAAMC,OAAO,GAAmCC,IAAO,IAAiB;EAC7E,IAAIH,QAAQ,CAACI,GAAG,CAACD,IAAI,CAAC,EAAE;IACtB,OAAOH,QAAQ,CAACK,GAAG,CAACF,IAAI,CAAE;EAC5B;EACA,MAAMG,GAAG,GAAGH,IAA+C;EAC3D,MAAMI,cAAc,GAA0C,EAAE;EAChE,IAAIC,IAAI,GAA6B;IACnCC,OAAO,EAAE,OAAO;IAChBC,IAAI,EAAE;MACJpB,KAAK,EAAEpC,OAAO,CAACyD,SAAS,CAACL,GAAG,CAAClB,WAAW,EAAEtB,KAAK,EAAE,MAAM,KAAK,CAAC;MAC7DyB,OAAO,EAAErC,OAAO,CAACyD,SAAS,CAACL,GAAG,CAAClB,WAAW,EAAErB,OAAO,EAAE,MAAM,OAAO;KACnE;IACD6C,KAAK,EAAE,EAAE;IACTlC,IAAI,EAAE,EAAE;IACRmC,UAAU,EAAE;MACVC,OAAO,EAAEP,cAAc;MACvBQ,eAAe,EAAE;KAClB;IACDC,QAAQ,EAAE;GACX;EACD,SAASC,mBAAmBA,CAACC,MAAyB;IACpD,OAAOvD,UAAU,CAACwD,YAAY,CAACD,MAAa,EAAE;MAC5CE,IAAI,EAAEb,cAAc;MACpBc,QAAQ,EAAE;KACX,CAAC;EACJ;EACA,SAASC,gBAAgBA,CACvBC,IAAY,EACZP,QAAyB;IAEzB,IAAIR,IAAI,CAACK,UAAW,CAACE,eAAgB,CAACQ,IAAI,CAAC,EAAE;MAC3C;IACF;IACA,MAAMC,MAAM,GAAGC,kBAAkB,CAACT,QAAQ,CAAC;IAC3CR,IAAI,CAACK,UAAW,CAACE,eAAgB,CAACQ,IAAI,CAAC,GAAGC,MAAM;EAClD;EACApE,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACrB,GAAG,CAAClB,WAAW,EAAE7B,OAAO,CAACqE,iBAAiB,CAAC,EAAGC,gBAAgB,IAAI;IAC7FA,gBAAgB,CAACC,OAAO,CAAEC,eAAe,IAAKd,mBAAmB,CAACc,eAAe,CAAC,CAAC;EACrF,CAAC,CAAC;EACF3E,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACrB,GAAG,CAAClB,WAAW,EAAEpB,WAAW,CAAC,EAAGwB,WAAW,IAAI;IAC1EgB,IAAI,CAACE,IAAI,CAAClB,WAAW,GAAGA,WAAW;EACrC,CAAC,CAAC;EACFpC,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACrB,GAAG,CAAClB,WAAW,EAAEnB,OAAO,CAAC,EAAGwB,OAAO,IAAI;IAClEe,IAAI,CAACE,IAAI,CAACjB,OAAO,GAAGA,OAAO;EAC7B,CAAC,CAAC;EACFrC,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACrB,GAAG,CAAClB,WAAW,EAAEf,OAAO,CAAC,EAAGqB,OAAO,IAAI;IAClEc,IAAI,CAACE,IAAI,CAAChB,OAAO,GAAGA,OAAc;EACpC,CAAC,CAAC;EACFtC,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACrB,GAAG,CAAClB,WAAW,EAAEjB,OAAO,CAAC,EAAGyB,OAAO,IAAI;IAClEY,IAAI,CAACZ,OAAO,GAAGA,OAAc;EAC/B,CAAC,CAAC;EACFxC,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACrB,GAAG,CAAClB,WAAW,EAAEb,QAAQ,CAAC,EAAGuB,QAAQ,IAAI;IACpElB,MAAM,CAACoD,MAAM,CAACxB,IAAI,EAAEV,QAAQ,CAAC;EAC/B,CAAC,CAAC;EACFQ,GAAG,CAAC2B,WAAW,CAACH,OAAO,CAAEI,UAAU,IAAI;IACrC,IAAI,CAAC1E,iBAAiB,CAAC2E,UAAU,CAACD,UAAU,CAAC,EAAE;MAC7C;IACF;IACA,KAAK,MAAM,CAACX,IAAI,EAAEP,QAAQ,CAAC,IAAIpC,MAAM,CAACD,OAAO,CAACuD,UAAU,CAAClB,QAAQ,CAAC,EAAE;MAClEM,gBAAgB,CAACC,IAAI,EAAEP,QAAQ,CAAC;MAChCR,IAAI,CAACQ,QAAS,CAACoB,IAAI,CAAC;QAAE,CAACb,IAAI,GAAG;MAAE,CAAE,CAAC;IACrC;EACF,CAAC,CAAC;EACFhE,OAAO,CAAC8E,OAAO,CAAC/B,GAAU,EAAE;IAC1BgC,OAAOA,CAAC;MAAEC;IAAK,CAAE;MACf,MAAMtD,GAAG,GAA4B;QACnCsC,IAAI,EAAErE,OAAO,CAACyD,SAAS,CAAC4B,KAAK,CAACnD,WAAW,EAAEtB,KAAK,EAAE,MAAMyE,KAAK,CAAClD,UAAU;OACzE;MACDjC,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACY,KAAK,CAACnD,WAAW,EAAEpB,WAAW,CAAC,EAAGwB,WAAW,IAAI;QAC5EP,GAAG,CAACO,WAAW,GAAGA,WAAW;MAC/B,CAAC,CAAC;MACFpC,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACY,KAAK,CAACnD,WAAW,EAAElB,YAAY,CAAC,EAAGyB,YAAY,IAAI;QAC9EV,GAAG,CAACU,YAAY,GAAGA,YAAY;MACjC,CAAC,CAAC;MACFvC,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACY,KAAK,CAACnD,WAAW,EAAEb,QAAQ,CAAC,EAAGuB,QAAQ,IAAI;QACtElB,MAAM,CAACoD,MAAM,CAAC/C,GAAG,EAAEa,QAAQ,CAAC;MAC9B,CAAC,CAAC;MACFU,IAAI,CAAC9B,IAAK,CAAC0D,IAAI,CAACnD,GAAG,CAAC;IACtB,CAAC;IACDuD,UAAUA,CAAC;MAAEC,QAAQ;MAAEC,MAAM;MAAEH,KAAK;MAAEL,UAAU;MAAES;IAAS,CAAE;MAC3D,MAAMC,IAAI,GAAGH,QAAQ,CAACG,IAAI,CAACC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;MAC1D,MAAMC,MAAM,GAAGL,QAAQ,CAACK,MAAM,CAACC,WAAW,EAA2B;MACrE,MAAMC,EAAE,GAAsC;QAC5CtE,IAAI,EAAE,CAACxB,OAAO,CAACyD,SAAS,CAAC4B,KAAK,CAACnD,WAAW,EAAEtB,KAAK,EAAE,MAAMyE,KAAK,CAAClD,UAAU,CAAC,CAAC;QAC3E4D,WAAW,EAAE/F,OAAO,CAACyD,SAAS,CAC5B8B,QAAQ,CAACrD,WAAW,EACpBxB,UAAU,EACV,MAAM2E,KAAK,CAACW,QAAQ,GAAGT,QAAQ,CAAClB,IAAI,GAAG,GAAGgB,KAAK,CAAClD,UAAU,IAAIoD,QAAQ,CAAClB,IAAI,EAAE,CAC9E;QACD4B,UAAU,EAAE,EAAE;QACdnC,QAAQ,EAAE,EAAE;QACZoC,SAAS,EAAE;OACZ;MACDhG,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACc,QAAQ,CAACrD,WAAW,EAAEpB,WAAW,CAAC,EAAGwB,WAAW,IAAI;QAC/EwD,EAAE,CAACxD,WAAW,GAAGA,WAAW;MAC9B,CAAC,CAAC;MACFpC,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACc,QAAQ,CAACrD,WAAW,EAAEf,OAAO,CAAC,EAAGqB,OAAO,IAAI;QACvEsD,EAAE,CAACtD,OAAO,GAAGA,OAAO;MACtB,CAAC,CAAC;MACFtC,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACc,QAAQ,CAACrD,WAAW,EAAEd,UAAU,CAAC,EAAG+E,UAAU,IAAI;QAC7EL,EAAE,CAACK,UAAU,GAAGA,UAAU;MAC5B,CAAC,CAAC;MACFjG,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACc,QAAQ,CAACrD,WAAW,EAAElB,YAAY,CAAC,EAAGyB,YAAY,IAAI;QACjFqD,EAAE,CAACrD,YAAY,GAAGA,YAAY;MAChC,CAAC,CAAC;MACFuC,UAAU,CAACJ,OAAO,CAAEI,UAAU,IAAI;QAChC,IAAI,CAAC1E,iBAAiB,CAAC2E,UAAU,CAACD,UAAU,CAAC,EAAE;UAC7C;QACF;QACA,KAAK,MAAM,CAACX,IAAI,EAAEP,QAAQ,CAAC,IAAIpC,MAAM,CAACD,OAAO,CAACuD,UAAU,CAAClB,QAAQ,CAAC,EAAE;UAClEM,gBAAgB,CAACC,IAAI,EAAEP,QAAQ,CAAC;UAChCgC,EAAE,CAAChC,QAAS,CAACoB,IAAI,CAAC;YAAE,CAACb,IAAI,GAAG;UAAE,CAAE,CAAC;QACnC;MACF,CAAC,CAAC;MACFkB,QAAQ,CAACa,aAAa,CAACC,IAAI,CACzBnG,MAAM,CAACoG,MAAM,CAAC,MAAM9F,UAAU,CAAC+F,OAAO,CAAChB,QAAQ,CAACK,MAAM,CAAC,CAAC,EACxD1F,MAAM,CAACsE,GAAG,CAAER,MAAM,IAAI;QACpB8B,EAAE,CAACU,WAAW,GAAG;UACfC,OAAO,EAAE;YACP,CAAClG,aAAa,CAACmG,YAAY,CAAC1C,MAAM,CAAC2C,GAAG,CAAC,GAAG,qBAAqB,GAAG,kBAAkB,GAAG;cACrF3C,MAAM,EAAED,mBAAmB,CAACC,MAAM;;WAErC;UACD4C,QAAQ,EAAE;SACX;MACH,CAAC,CAAC,CACH;MACD,KAAK,MAAM,CAACC,MAAM,EAAEF,GAAG,CAAC,IAAIlB,SAAS,EAAE;QACrC,IAAIK,EAAE,CAACI,SAAU,CAACW,MAAM,CAAC,EAAE;QAC3Bf,EAAE,CAACI,SAAU,CAACW,MAAM,CAAC,GAAG;UACtBvE,WAAW,EAAEpC,MAAM,CAACuD,SAAS,CAACqD,0BAA0B,CAACH,GAAG,CAAC,EAAE,MAAM,SAAS;SAC/E;QACDA,GAAG,CAACN,IAAI,CACNnG,MAAM,CAACoG,MAAM,CAAEK,GAAG,IAAK,CAACpG,aAAa,CAACwG,kBAAkB,CAACJ,GAAG,CAAC,CAAC,EAC9DzG,MAAM,CAACsE,GAAG,CAAEmC,GAAG,IAAI;UACjBb,EAAE,CAACI,SAAU,CAACW,MAAM,CAAC,CAACJ,OAAO,GAAG;YAC9B,kBAAkB,EAAE;cAClBzC,MAAM,EAAED,mBAAmB,CAAC5D,MAAM,CAAC6G,IAAI,CAACL,GAAG,CAAC;;WAE/C;QACH,CAAC,CAAC,CACH;MACH;MACA,IAAIzG,MAAM,CAAC+G,MAAM,CAAC1B,QAAQ,CAAC2B,UAAU,CAAC,EAAE;QACtC,MAAMlD,MAAM,GAAGD,mBAAmB,CAACwB,QAAQ,CAAC2B,UAAU,CAACC,KAAK,CAAsB;QAClF,IAAI,YAAY,IAAInD,MAAM,EAAE;UAC1BtC,MAAM,CAACD,OAAO,CAACuC,MAAM,CAACoD,UAAU,CAAC,CAACxC,OAAO,CAAC,CAAC,CAACP,IAAI,EAAEgD,UAAU,CAAC,KAAI;YAC/DvB,EAAE,CAACG,UAAW,CAACf,IAAI,CAAC;cAClBb,IAAI;cACJiD,EAAE,EAAE,MAAM;cACVtD,MAAM,EAAEqD,UAAU;cAClBT,QAAQ,EAAE5C,MAAM,CAAC4C,QAAQ,CAACW,QAAQ,CAAClD,IAAI;aACxC,CAAC;UACJ,CAAC,CAAC;QACJ;MACF;MACA,IAAI,CAAC7D,UAAU,CAAC+F,OAAO,CAAChB,QAAQ,CAACK,MAAM,CAAC,IAAI1F,MAAM,CAAC+G,MAAM,CAAC1B,QAAQ,CAACa,aAAa,CAAC,EAAE;QACjF,MAAMpC,MAAM,GAAGD,mBAAmB,CAACwB,QAAQ,CAACa,aAAa,CAACe,KAAK,CAAsB;QACrF,IAAI,YAAY,IAAInD,MAAM,EAAE;UAC1BtC,MAAM,CAACD,OAAO,CAACuC,MAAM,CAACoD,UAAU,CAAC,CAACxC,OAAO,CAAC,CAAC,CAACP,IAAI,EAAEgD,UAAU,CAAC,KAAI;YAC/DvB,EAAE,CAACG,UAAW,CAACf,IAAI,CAAC;cAClBb,IAAI;cACJiD,EAAE,EAAE,OAAO;cACXtD,MAAM,EAAEqD,UAAU;cAClBT,QAAQ,EAAE5C,MAAM,CAAC4C,QAAQ,CAACW,QAAQ,CAAClD,IAAI;aACxC,CAAC;UACJ,CAAC,CAAC;QACJ;MACF;MACA,IAAInE,MAAM,CAAC+G,MAAM,CAAC1B,QAAQ,CAACiC,aAAa,CAAC,EAAE;QACzC,MAAMxD,MAAM,GAAGD,mBAAmB,CAACwB,QAAQ,CAACiC,aAAa,CAACL,KAAK,CAAsB;QACrF,IAAI,YAAY,IAAInD,MAAM,EAAE;UAC1BtC,MAAM,CAACD,OAAO,CAACuC,MAAM,CAACoD,UAAU,CAAC,CAACxC,OAAO,CAAC,CAAC,CAACP,IAAI,EAAEgD,UAAU,CAAC,KAAI;YAC/DvB,EAAE,CAACG,UAAW,CAACf,IAAI,CAAC;cAClBb,IAAI;cACJiD,EAAE,EAAE,QAAQ;cACZtD,MAAM,EAAEqD,UAAU;cAClBT,QAAQ,EAAE5C,MAAM,CAAC4C,QAAQ,CAACW,QAAQ,CAAClD,IAAI;aACxC,CAAC;UACJ,CAAC,CAAC;QACJ;MACF;MACA,IAAInE,MAAM,CAAC+G,MAAM,CAAC1B,QAAQ,CAACkC,eAAe,CAAC,EAAE;QAC3C,MAAMzD,MAAM,GAAGD,mBAAmB,CAACwB,QAAQ,CAACkC,eAAe,CAACN,KAAK,CAAsB;QACvF,IAAI,YAAY,IAAInD,MAAM,EAAE;UAC1BtC,MAAM,CAACD,OAAO,CAACuC,MAAM,CAACoD,UAAU,CAAC,CAACxC,OAAO,CAAC,CAAC,CAACP,IAAI,EAAEgD,UAAU,CAAC,KAAI;YAC/DvB,EAAE,CAACG,UAAW,CAACf,IAAI,CAAC;cAClBb,IAAI;cACJiD,EAAE,EAAE,OAAO;cACXtD,MAAM,EAAEqD,UAAU;cAClBT,QAAQ,EAAE5C,MAAM,CAAC4C,QAAQ,CAACW,QAAQ,CAAClD,IAAI;aACxC,CAAC;UACJ,CAAC,CAAC;QACJ;MACF;MACA,KAAK,MAAM,CAACwC,MAAM,EAAEF,GAAG,CAAC,IAAInB,MAAM,EAAE;QAClC,IAAIM,EAAE,CAACI,SAAU,CAACW,MAAM,CAAC,EAAE;QAC3Bf,EAAE,CAACI,SAAU,CAACW,MAAM,CAAC,GAAG;UACtBvE,WAAW,EAAEpC,MAAM,CAACuD,SAAS,CAACqD,0BAA0B,CAACH,GAAG,CAAC,EAAE,MAAM,OAAO;SAC7E;QACDA,GAAG,CAACN,IAAI,CACNnG,MAAM,CAACoG,MAAM,CAAEK,GAAG,IAAK,CAACpG,aAAa,CAACwG,kBAAkB,CAACJ,GAAG,CAAC,CAAC,EAC9DzG,MAAM,CAACsE,GAAG,CAAEmC,GAAG,IAAI;UACjBb,EAAE,CAACI,SAAU,CAACW,MAAM,CAAC,CAACJ,OAAO,GAAG;YAC9B,kBAAkB,EAAE;cAClBzC,MAAM,EAAED,mBAAmB,CAAC5D,MAAM,CAAC6G,IAAI,CAACL,GAAG,CAAC;;WAE/C;QACH,CAAC,CAAC,CACH;MACH;MACA,IAAI,CAACrD,IAAI,CAACI,KAAK,CAACgC,IAAI,CAAC,EAAE;QACrBpC,IAAI,CAACI,KAAK,CAACgC,IAAI,CAAC,GAAG,EAAE;MACvB;MACAxF,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACc,QAAQ,CAACrD,WAAW,EAAEb,QAAQ,CAAC,EAAGuB,QAAQ,IAAI;QACzElB,MAAM,CAACoD,MAAM,CAACgB,EAAE,EAAElD,QAAQ,CAAC;MAC7B,CAAC,CAAC;MACFU,IAAI,CAACI,KAAK,CAACgC,IAAI,CAAC,CAACE,MAAM,CAAC,GAAGE,EAAE;IAC/B;GACD,CAAC;EAEF5F,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACrB,GAAG,CAAClB,WAAW,EAAEZ,SAAS,CAAC,EAAGoG,WAAW,IAAI;IACxEpE,IAAI,GAAGoE,WAAW,CAACpE,IAAI,CAAC;EAC1B,CAAC,CAAC;EAEFR,QAAQ,CAAC6E,GAAG,CAAC1E,IAAI,EAAEK,IAAI,CAAC;EAExB,OAAOA,IAAI;AACb,CAAC;AAED,MAAMiB,kBAAkB,GAAIT,QAAyB,IAA2B;EAC9E,MAAM8D,IAAI,GAA4C,EAAE;EACxD1H,MAAM,CAACsE,GAAG,CAACxE,OAAO,CAACyE,SAAS,CAACX,QAAQ,CAAC5B,WAAW,EAAEpB,WAAW,CAAC,EAAGwB,WAAW,IAAI;IAC/EsF,IAAI,CAACtF,WAAW,GAAGA,WAAW;EAChC,CAAC,CAAC;EACF,QAAQwB,QAAQ,CAAC+D,IAAI;IACnB,KAAK,OAAO;MAAE;QACZ,OAAO;UACL,GAAGD,IAAI;UACPE,IAAI,EAAE,MAAM;UACZxD,MAAM,EAAE;SACT;MACH;IACA,KAAK,QAAQ;MAAE;QACb,MAAM3B,MAAM,GAAG3C,OAAO,CAACyE,SAAS,CAACX,QAAQ,CAAC5B,WAAW,EAAEhB,MAAM,CAAC,CAACmF,IAAI,CACjEnG,MAAM,CAACsE,GAAG,CAAE7B,MAAM,KAAM;UAAEoF,YAAY,EAAEpF;QAAM,CAAE,CAAC,CAAC,EAClDzC,MAAM,CAAC8H,cAAc,CACtB;QACD,OAAO;UACL,GAAGJ,IAAI;UACPE,IAAI,EAAE,MAAM;UACZxD,MAAM,EAAE,QAAQ;UAChB,GAAG3B;SACJ;MACH;IACA,KAAK,QAAQ;MAAE;QACb,OAAO;UACL,GAAGiF,IAAI;UACPE,IAAI,EAAE,QAAQ;UACdzD,IAAI,EAAEP,QAAQ,CAAChC,GAAG;UAClBwF,EAAE,EAAExD,QAAQ,CAACwD;SACd;MACH;EACF;AACF,CAAC;AAED,MAAMR,0BAA0B,GAAIH,GAAmD,IACrFA,GAAG,CAACN,IAAI,CACNnG,MAAM,CAACsE,GAAG,CAAEmC,GAAG,IACb,IAAI,IAAIA,GAAG,GACT;EACE,GAAGA,GAAG,CAACsB,EAAE,CAAC/F,WAAW;EACrB,GAAGyE,GAAG,CAACzE;CACR,GACDyE,GAAG,CAACzE,WAAW,CAClB,EACDhC,MAAM,CAACgI,eAAe,CAAEhG,WAAW,IACjCA,WAAW,CAAC9B,GAAG,CAAC+H,uBAAuB,CAAC,IAAIjG,WAAW,CAAC9B,GAAG,CAACgI,sBAAsB,CAAQ,CAC3F,CACF","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform",
|
|
3
|
-
"version": "0.69.
|
|
3
|
+
"version": "0.69.26",
|
|
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.10.
|
|
17
|
+
"effect": "^3.10.17"
|
|
18
18
|
},
|
|
19
19
|
"publishConfig": {
|
|
20
20
|
"provenance": true
|
package/src/HttpApi.ts
CHANGED
|
@@ -269,6 +269,10 @@ export const empty: HttpApi<never, HttpApiDecodeError> = makeProto({
|
|
|
269
269
|
export const reflect = <Groups extends HttpApiGroup.HttpApiGroup.Any, Error, R>(
|
|
270
270
|
self: HttpApi<Groups, Error, R>,
|
|
271
271
|
options: {
|
|
272
|
+
readonly predicate?: Predicate.Predicate<{
|
|
273
|
+
readonly endpoint: HttpApiEndpoint.HttpApiEndpoint.AnyWithProps
|
|
274
|
+
readonly group: HttpApiGroup.HttpApiGroup.AnyWithProps
|
|
275
|
+
}>
|
|
272
276
|
readonly onGroup: (options: {
|
|
273
277
|
readonly group: HttpApiGroup.HttpApiGroup.AnyWithProps
|
|
274
278
|
readonly mergedAnnotations: Context.Context<never>
|
|
@@ -294,6 +298,13 @@ export const reflect = <Groups extends HttpApiGroup.HttpApiGroup.Any, Error, R>(
|
|
|
294
298
|
})
|
|
295
299
|
const endpoints = Object.values(group.endpoints) as Iterable<HttpApiEndpoint.HttpApiEndpoint<string, HttpMethod>>
|
|
296
300
|
for (const endpoint of endpoints) {
|
|
301
|
+
if (
|
|
302
|
+
options.predicate && !options.predicate({
|
|
303
|
+
endpoint,
|
|
304
|
+
group
|
|
305
|
+
} as any)
|
|
306
|
+
) continue
|
|
307
|
+
|
|
297
308
|
const errors = extractMembers(endpoint.errorSchema.ast, groupErrors, HttpApiSchema.getStatusErrorAST)
|
|
298
309
|
options.onEndpoint({
|
|
299
310
|
group,
|
package/src/HttpApiBuilder.ts
CHANGED
|
@@ -439,7 +439,7 @@ export const group = <
|
|
|
439
439
|
HttpApiGroup.ApiGroup<Name>,
|
|
440
440
|
Handlers.Error<Return>,
|
|
441
441
|
| Handlers.Context<Return>
|
|
442
|
-
| HttpApiGroup.HttpApiGroup.
|
|
442
|
+
| HttpApiGroup.HttpApiGroup.MiddlewareWithName<Groups, Name>
|
|
443
443
|
> =>
|
|
444
444
|
Router.use((router) =>
|
|
445
445
|
Effect.gen(function*() {
|
package/src/HttpApiClient.ts
CHANGED
|
@@ -6,6 +6,7 @@ import * as Effect from "effect/Effect"
|
|
|
6
6
|
import { identity } from "effect/Function"
|
|
7
7
|
import * as Option from "effect/Option"
|
|
8
8
|
import * as ParseResult from "effect/ParseResult"
|
|
9
|
+
import type * as Predicate from "effect/Predicate"
|
|
9
10
|
import * as Schema from "effect/Schema"
|
|
10
11
|
import type * as AST from "effect/SchemaAST"
|
|
11
12
|
import type { Scope } from "effect/Scope"
|
|
@@ -27,15 +28,11 @@ import type { HttpApiMiddleware } from "./index.js"
|
|
|
27
28
|
*/
|
|
28
29
|
export type Client<Groups extends HttpApiGroup.Any, ApiError> = Simplify<
|
|
29
30
|
& {
|
|
30
|
-
readonly [Group in Extract<Groups, { readonly topLevel: false }> as HttpApiGroup.Name<Group>]:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
_GroupError
|
|
36
|
-
>
|
|
37
|
-
} :
|
|
38
|
-
never
|
|
31
|
+
readonly [Group in Extract<Groups, { readonly topLevel: false }> as HttpApiGroup.Name<Group>]: Client.Group<
|
|
32
|
+
Group,
|
|
33
|
+
Group["identifier"],
|
|
34
|
+
ApiError
|
|
35
|
+
>
|
|
39
36
|
}
|
|
40
37
|
& {
|
|
41
38
|
readonly [Method in Client.TopLevelMethods<Groups, ApiError> as Method[0]]: Method[1]
|
|
@@ -47,6 +44,21 @@ export type Client<Groups extends HttpApiGroup.Any, ApiError> = Simplify<
|
|
|
47
44
|
* @category models
|
|
48
45
|
*/
|
|
49
46
|
export declare namespace Client {
|
|
47
|
+
/**
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
* @category models
|
|
50
|
+
*/
|
|
51
|
+
export type Group<Groups extends HttpApiGroup.Any, GroupName extends Groups["identifier"], ApiError> =
|
|
52
|
+
[HttpApiGroup.WithName<Groups, GroupName>] extends
|
|
53
|
+
[HttpApiGroup<infer _GroupName, infer _Endpoints, infer _GroupError, infer _GroupErrorR>] ? {
|
|
54
|
+
readonly [Endpoint in _Endpoints as HttpApiEndpoint.Name<Endpoint>]: Method<
|
|
55
|
+
Endpoint,
|
|
56
|
+
ApiError,
|
|
57
|
+
_GroupError
|
|
58
|
+
>
|
|
59
|
+
} :
|
|
60
|
+
never
|
|
61
|
+
|
|
50
62
|
/**
|
|
51
63
|
* @since 1.0.0
|
|
52
64
|
* @category models
|
|
@@ -79,18 +91,34 @@ export declare namespace Client {
|
|
|
79
91
|
export type TopLevelMethods<Groups extends HttpApiGroup.Any, ApiError> =
|
|
80
92
|
Extract<Groups, { readonly topLevel: true }> extends
|
|
81
93
|
HttpApiGroup<infer _Id, infer _Endpoints, infer _Error, infer _ErrorR, infer _TopLevel> ?
|
|
82
|
-
_Endpoints extends infer Endpoint ? [HttpApiEndpoint.Name<Endpoint>,
|
|
94
|
+
_Endpoints extends infer Endpoint ? [HttpApiEndpoint.Name<Endpoint>, Method<Endpoint, ApiError, _Error>]
|
|
83
95
|
: never :
|
|
84
96
|
never
|
|
85
97
|
}
|
|
86
98
|
|
|
87
99
|
/**
|
|
88
|
-
* @
|
|
89
|
-
* @category constructors
|
|
100
|
+
* @internal
|
|
90
101
|
*/
|
|
91
|
-
|
|
102
|
+
const makeClient = <Groups extends HttpApiGroup.Any, ApiError, ApiR>(
|
|
92
103
|
api: HttpApi.HttpApi<Groups, ApiError, ApiR>,
|
|
93
|
-
options
|
|
104
|
+
options: {
|
|
105
|
+
readonly predicate?: Predicate.Predicate<{
|
|
106
|
+
readonly endpoint: HttpApiEndpoint.AnyWithProps
|
|
107
|
+
readonly group: HttpApiGroup.AnyWithProps
|
|
108
|
+
}>
|
|
109
|
+
readonly onGroup?: (options: {
|
|
110
|
+
readonly group: HttpApiGroup.AnyWithProps
|
|
111
|
+
readonly mergedAnnotations: Context.Context<never>
|
|
112
|
+
}) => void
|
|
113
|
+
readonly onEndpoint: (options: {
|
|
114
|
+
readonly group: HttpApiGroup.AnyWithProps
|
|
115
|
+
readonly endpoint: HttpApiEndpoint<string, HttpMethod.HttpMethod>
|
|
116
|
+
readonly mergedAnnotations: Context.Context<never>
|
|
117
|
+
readonly middleware: ReadonlySet<HttpApiMiddleware.TagClassAny>
|
|
118
|
+
readonly successes: ReadonlyMap<number, Option.Option<AST.AST>>
|
|
119
|
+
readonly errors: ReadonlyMap<number, Option.Option<AST.AST>>
|
|
120
|
+
readonly endpointFn: Function
|
|
121
|
+
}) => void
|
|
94
122
|
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined
|
|
95
123
|
readonly transformResponse?:
|
|
96
124
|
| ((effect: Effect.Effect<unknown, unknown, Scope>) => Effect.Effect<unknown, unknown, Scope>)
|
|
@@ -98,7 +126,7 @@ export const make = <Groups extends HttpApiGroup.Any, ApiError, ApiR>(
|
|
|
98
126
|
readonly baseUrl?: string | undefined
|
|
99
127
|
}
|
|
100
128
|
): Effect.Effect<
|
|
101
|
-
|
|
129
|
+
void,
|
|
102
130
|
never,
|
|
103
131
|
HttpApiMiddleware.HttpApiMiddleware.Without<ApiR | HttpApiGroup.ClientContext<Groups>> | HttpClient.HttpClient
|
|
104
132
|
> =>
|
|
@@ -108,13 +136,13 @@ export const make = <Groups extends HttpApiGroup.Any, ApiError, ApiR>(
|
|
|
108
136
|
options?.baseUrl === undefined ? identity : HttpClient.mapRequest(HttpClientRequest.prependUrl(options.baseUrl)),
|
|
109
137
|
options?.transformClient === undefined ? identity : options.transformClient
|
|
110
138
|
)
|
|
111
|
-
const client: Record<string, Record<string, any>> = {}
|
|
112
139
|
HttpApi.reflect(api as any, {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
140
|
+
predicate: options?.predicate,
|
|
141
|
+
onGroup(onGroupOptions) {
|
|
142
|
+
options.onGroup?.(onGroupOptions)
|
|
116
143
|
},
|
|
117
|
-
onEndpoint(
|
|
144
|
+
onEndpoint(onEndpointOptions) {
|
|
145
|
+
const { endpoint, errors, successes } = onEndpointOptions
|
|
118
146
|
const makeUrl = compilePath(endpoint.path)
|
|
119
147
|
const decodeMap: Record<
|
|
120
148
|
number | "orElse",
|
|
@@ -146,7 +174,7 @@ export const make = <Groups extends HttpApiGroup.Any, ApiError, ApiR>(
|
|
|
146
174
|
const encodeUrlParams = endpoint.urlParamsSchema.pipe(
|
|
147
175
|
Option.map(Schema.encodeUnknown)
|
|
148
176
|
)
|
|
149
|
-
|
|
177
|
+
const endpointFn = (request: {
|
|
150
178
|
readonly path: any
|
|
151
179
|
readonly urlParams: any
|
|
152
180
|
readonly payload: any
|
|
@@ -178,7 +206,7 @@ export const make = <Groups extends HttpApiGroup.Any, ApiError, ApiR>(
|
|
|
178
206
|
)
|
|
179
207
|
}
|
|
180
208
|
const response = yield* httpClient.execute(httpRequest)
|
|
181
|
-
const value = yield* (options
|
|
209
|
+
const value = yield* (options.transformResponse === undefined
|
|
182
210
|
? decodeResponse(response)
|
|
183
211
|
: options.transformResponse(decodeResponse(response)))
|
|
184
212
|
return request?.withResponse === true ? [value, response] : value
|
|
@@ -187,11 +215,131 @@ export const make = <Groups extends HttpApiGroup.Any, ApiError, ApiR>(
|
|
|
187
215
|
Effect.catchIf(ParseResult.isParseError, Effect.die),
|
|
188
216
|
Effect.mapInputContext((input) => Context.merge(context, input))
|
|
189
217
|
)
|
|
218
|
+
|
|
219
|
+
options.onEndpoint({
|
|
220
|
+
...onEndpointOptions,
|
|
221
|
+
endpointFn
|
|
222
|
+
})
|
|
190
223
|
}
|
|
191
224
|
})
|
|
192
|
-
return client as any
|
|
193
225
|
})
|
|
194
226
|
|
|
227
|
+
/**
|
|
228
|
+
* @since 1.0.0
|
|
229
|
+
* @category constructors
|
|
230
|
+
*/
|
|
231
|
+
export const make = <Groups extends HttpApiGroup.Any, ApiError, ApiR>(
|
|
232
|
+
api: HttpApi.HttpApi<Groups, ApiError, ApiR>,
|
|
233
|
+
options?: {
|
|
234
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined
|
|
235
|
+
readonly transformResponse?:
|
|
236
|
+
| ((effect: Effect.Effect<unknown, unknown, Scope>) => Effect.Effect<unknown, unknown, Scope>)
|
|
237
|
+
| undefined
|
|
238
|
+
readonly baseUrl?: string | undefined
|
|
239
|
+
}
|
|
240
|
+
): Effect.Effect<
|
|
241
|
+
Simplify<Client<Groups, ApiError>>,
|
|
242
|
+
never,
|
|
243
|
+
HttpApiMiddleware.HttpApiMiddleware.Without<ApiR | HttpApiGroup.ClientContext<Groups>> | HttpClient.HttpClient
|
|
244
|
+
> => {
|
|
245
|
+
const client: Record<string, Record<string, any>> = {}
|
|
246
|
+
return makeClient(api, {
|
|
247
|
+
...options,
|
|
248
|
+
onGroup({ group }) {
|
|
249
|
+
if (group.topLevel) return
|
|
250
|
+
client[group.identifier] = {}
|
|
251
|
+
},
|
|
252
|
+
onEndpoint({ endpoint, endpointFn, group }) {
|
|
253
|
+
;(group.topLevel ? client : client[group.identifier])[endpoint.name] = endpointFn
|
|
254
|
+
}
|
|
255
|
+
}).pipe(Effect.map(() => client)) as any
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* @since 1.0.0
|
|
260
|
+
* @category constructors
|
|
261
|
+
*/
|
|
262
|
+
export const group = <
|
|
263
|
+
Groups extends HttpApiGroup.Any,
|
|
264
|
+
ApiError,
|
|
265
|
+
ApiR,
|
|
266
|
+
const GroupName extends Groups["identifier"]
|
|
267
|
+
>(
|
|
268
|
+
api: HttpApi.HttpApi<Groups, ApiError, ApiR>,
|
|
269
|
+
groupId: GroupName,
|
|
270
|
+
options?: {
|
|
271
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined
|
|
272
|
+
readonly transformResponse?:
|
|
273
|
+
| ((effect: Effect.Effect<unknown, unknown, Scope>) => Effect.Effect<unknown, unknown, Scope>)
|
|
274
|
+
| undefined
|
|
275
|
+
readonly baseUrl?: string | undefined
|
|
276
|
+
}
|
|
277
|
+
): Effect.Effect<
|
|
278
|
+
Client.Group<Groups, GroupName, ApiError>,
|
|
279
|
+
never,
|
|
280
|
+
HttpApiMiddleware.HttpApiMiddleware.Without<
|
|
281
|
+
| ApiR
|
|
282
|
+
| HttpApiGroup.ClientContext<
|
|
283
|
+
HttpApiGroup.WithName<Groups, GroupName>
|
|
284
|
+
>
|
|
285
|
+
> | HttpClient.HttpClient
|
|
286
|
+
> => {
|
|
287
|
+
const client: Record<string, any> = {}
|
|
288
|
+
return makeClient(api, {
|
|
289
|
+
...options,
|
|
290
|
+
predicate: ({ group }) => group.identifier === groupId,
|
|
291
|
+
onEndpoint({ endpoint, endpointFn }) {
|
|
292
|
+
client[endpoint.name] = endpointFn
|
|
293
|
+
}
|
|
294
|
+
}).pipe(Effect.map(() => client)) as any
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* @since 1.0.0
|
|
299
|
+
* @category constructors
|
|
300
|
+
*/
|
|
301
|
+
export const endpoint = <
|
|
302
|
+
Groups extends HttpApiGroup.Any,
|
|
303
|
+
ApiError,
|
|
304
|
+
ApiR,
|
|
305
|
+
const GroupName extends HttpApiGroup.Name<Groups>,
|
|
306
|
+
const EndpointName extends HttpApiEndpoint.Name<HttpApiGroup.EndpointsWithName<Groups, GroupName>>
|
|
307
|
+
>(
|
|
308
|
+
api: HttpApi.HttpApi<Groups, ApiError, ApiR>,
|
|
309
|
+
groupName: GroupName,
|
|
310
|
+
endpointName: EndpointName,
|
|
311
|
+
options?: {
|
|
312
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined
|
|
313
|
+
readonly transformResponse?:
|
|
314
|
+
| ((effect: Effect.Effect<unknown, unknown, Scope>) => Effect.Effect<unknown, unknown, Scope>)
|
|
315
|
+
| undefined
|
|
316
|
+
readonly baseUrl?: string | undefined
|
|
317
|
+
}
|
|
318
|
+
): Effect.Effect<
|
|
319
|
+
Client.Method<
|
|
320
|
+
HttpApiEndpoint.WithName<HttpApiGroup.Endpoints<HttpApiGroup.WithName<Groups, GroupName>>, EndpointName>,
|
|
321
|
+
HttpApiGroup.Error<HttpApiGroup.WithName<Groups, GroupName>>,
|
|
322
|
+
ApiError
|
|
323
|
+
>,
|
|
324
|
+
never,
|
|
325
|
+
| HttpApiMiddleware.HttpApiMiddleware.Without<
|
|
326
|
+
| ApiR
|
|
327
|
+
| HttpApiGroup.Context<HttpApiGroup.WithName<Groups, GroupName>>
|
|
328
|
+
| HttpApiEndpoint.ContextWithName<HttpApiGroup.EndpointsWithName<Groups, GroupName>, EndpointName>
|
|
329
|
+
| HttpApiEndpoint.ErrorContextWithName<HttpApiGroup.EndpointsWithName<Groups, GroupName>, EndpointName>
|
|
330
|
+
>
|
|
331
|
+
| HttpClient.HttpClient
|
|
332
|
+
> => {
|
|
333
|
+
let client: any = undefined
|
|
334
|
+
return makeClient(api, {
|
|
335
|
+
...options,
|
|
336
|
+
predicate: ({ endpoint, group }) => group.identifier === groupName && endpoint.name === endpointName,
|
|
337
|
+
onEndpoint({ endpointFn }) {
|
|
338
|
+
client = endpointFn
|
|
339
|
+
}
|
|
340
|
+
}).pipe(Effect.map(() => client)) as any
|
|
341
|
+
}
|
|
342
|
+
|
|
195
343
|
// ----------------------------------------------------------------------------
|
|
196
344
|
|
|
197
345
|
const paramsRegex = /:(\w+)[^/]*/g
|
package/src/HttpApiEndpoint.ts
CHANGED
|
@@ -514,6 +514,12 @@ export declare namespace HttpApiEndpoint {
|
|
|
514
514
|
*/
|
|
515
515
|
export type ContextWithName<Endpoints extends Any, Name extends string> = Context<WithName<Endpoints, Name>>
|
|
516
516
|
|
|
517
|
+
/**
|
|
518
|
+
* @since 1.0.0
|
|
519
|
+
* @category models
|
|
520
|
+
*/
|
|
521
|
+
export type ErrorContextWithName<Endpoints extends Any, Name extends string> = ErrorContext<WithName<Endpoints, Name>>
|
|
522
|
+
|
|
517
523
|
/**
|
|
518
524
|
* @since 1.0.0
|
|
519
525
|
* @category models
|
package/src/HttpApiGroup.ts
CHANGED
|
@@ -66,12 +66,12 @@ export interface HttpApiGroup<
|
|
|
66
66
|
* Add an error schema to an `HttpApiGroup`, which is shared by all endpoints in the
|
|
67
67
|
* group.
|
|
68
68
|
*/
|
|
69
|
-
addError<A, I,
|
|
70
|
-
schema: Schema.Schema<A, I,
|
|
69
|
+
addError<A, I, RX>(
|
|
70
|
+
schema: Schema.Schema<A, I, RX>,
|
|
71
71
|
annotations?: {
|
|
72
72
|
readonly status?: number | undefined
|
|
73
73
|
}
|
|
74
|
-
): HttpApiGroup<Id, Endpoints, Error | A, R |
|
|
74
|
+
): HttpApiGroup<Id, Endpoints, Error | A, R | RX, TopLevel>
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
77
|
* Add a path prefix to all endpoints in an `HttpApiGroup`. Note that this will only
|
|
@@ -221,7 +221,7 @@ export declare namespace HttpApiGroup {
|
|
|
221
221
|
* @since 1.0.0
|
|
222
222
|
* @category models
|
|
223
223
|
*/
|
|
224
|
-
export type Provides<Group extends Any> = HttpApiMiddleware.HttpApiMiddleware.ExtractProvides<
|
|
224
|
+
export type Provides<Group extends Any> = HttpApiMiddleware.HttpApiMiddleware.ExtractProvides<Middleware<Group>>
|
|
225
225
|
|
|
226
226
|
/**
|
|
227
227
|
* @since 1.0.0
|
|
@@ -234,6 +234,15 @@ export declare namespace HttpApiGroup {
|
|
|
234
234
|
* @category models
|
|
235
235
|
*/
|
|
236
236
|
export type Context<Group> = Group extends
|
|
237
|
+
HttpApiGroup<infer _Name, infer _Endpoints, infer _Error, infer _R, infer _TopLevel> ?
|
|
238
|
+
HttpApiMiddleware.HttpApiMiddleware.Without<_R> :
|
|
239
|
+
never
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* @since 1.0.0
|
|
243
|
+
* @category models
|
|
244
|
+
*/
|
|
245
|
+
export type Middleware<Group> = Group extends
|
|
237
246
|
HttpApiGroup<infer _Name, infer _Endpoints, infer _Error, infer _R, infer _TopLevel> ?
|
|
238
247
|
HttpApiMiddleware.HttpApiMiddleware.Only<_R> :
|
|
239
248
|
never
|
|
@@ -263,6 +272,14 @@ export declare namespace HttpApiGroup {
|
|
|
263
272
|
* @category models
|
|
264
273
|
*/
|
|
265
274
|
export type ContextWithName<Group extends Any, Name extends string> = Context<WithName<Group, Name>>
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* @since 1.0.0
|
|
278
|
+
* @category models
|
|
279
|
+
*/
|
|
280
|
+
export type MiddlewareWithName<Group extends Any, Name extends string> = Middleware<
|
|
281
|
+
WithName<Group, Name>
|
|
282
|
+
>
|
|
266
283
|
}
|
|
267
284
|
|
|
268
285
|
const Proto = {
|
package/src/OpenApi.ts
CHANGED
|
@@ -85,6 +85,15 @@ export class Deprecated extends Context.Tag("@effect/platform/OpenApi/Deprecated
|
|
|
85
85
|
*/
|
|
86
86
|
export class Override extends Context.Tag("@effect/platform/OpenApi/Override")<Override, Record<string, unknown>>() {}
|
|
87
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Transforms the generated OpenAPI specification
|
|
90
|
+
* @since 1.0.0
|
|
91
|
+
* @category annotations
|
|
92
|
+
*/
|
|
93
|
+
export class Transform
|
|
94
|
+
extends Context.Tag("@effect/platform/OpenApi/Transform")<Transform, (openApiSpec: OpenAPISpec) => OpenAPISpec>()
|
|
95
|
+
{}
|
|
96
|
+
|
|
88
97
|
const contextPartial = <Tags extends Record<string, Context.Tag<any, any>>>(tags: Tags): (
|
|
89
98
|
options: {
|
|
90
99
|
readonly [K in keyof Tags]?: Context.Tag.Service<Tags[K]> | undefined
|
|
@@ -118,6 +127,10 @@ export const annotations: (
|
|
|
118
127
|
readonly servers?: ReadonlyArray<OpenAPISpecServer> | undefined
|
|
119
128
|
readonly format?: string | undefined
|
|
120
129
|
readonly override?: Record<string, unknown> | undefined
|
|
130
|
+
/**
|
|
131
|
+
* Transforms the generated OpenAPI specification
|
|
132
|
+
*/
|
|
133
|
+
readonly transform?: ((openApiSpec: OpenAPISpec) => OpenAPISpec) | undefined
|
|
121
134
|
}
|
|
122
135
|
) => Context.Context<never> = contextPartial({
|
|
123
136
|
identifier: Identifier,
|
|
@@ -129,7 +142,8 @@ export const annotations: (
|
|
|
129
142
|
externalDocs: ExternalDocs,
|
|
130
143
|
servers: Servers,
|
|
131
144
|
format: Format,
|
|
132
|
-
override: Override
|
|
145
|
+
override: Override,
|
|
146
|
+
transform: Transform
|
|
133
147
|
})
|
|
134
148
|
|
|
135
149
|
const apiCache = globalValue("@effect/platform/OpenApi/apiCache", () => new WeakMap<HttpApi.HttpApi.Any, OpenAPISpec>())
|
|
@@ -144,7 +158,7 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
|
|
|
144
158
|
}
|
|
145
159
|
const api = self as unknown as HttpApi.HttpApi.AnyWithProps
|
|
146
160
|
const jsonSchemaDefs: Record<string, JsonSchema.JsonSchema> = {}
|
|
147
|
-
|
|
161
|
+
let spec: DeepMutable<OpenAPISpec> = {
|
|
148
162
|
openapi: "3.0.3",
|
|
149
163
|
info: {
|
|
150
164
|
title: Context.getOrElse(api.annotations, Title, () => "Api"),
|
|
@@ -359,6 +373,10 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
|
|
|
359
373
|
}
|
|
360
374
|
})
|
|
361
375
|
|
|
376
|
+
Option.map(Context.getOption(api.annotations, Transform), (transformFn) => {
|
|
377
|
+
spec = transformFn(spec)
|
|
378
|
+
})
|
|
379
|
+
|
|
362
380
|
apiCache.set(self, spec)
|
|
363
381
|
|
|
364
382
|
return spec
|