@effect-app/infra 1.3.7 → 1.4.0
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/CHANGELOG.md +10 -0
- package/_cjs/api/routing/makeRequestHandler.cjs +5 -7
- package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -1
- package/_cjs/api/routing/match.cjs +2 -1
- package/_cjs/api/routing/match.cjs.map +1 -1
- package/_cjs/services/Operations.cjs +14 -3
- package/_cjs/services/Operations.cjs.map +1 -1
- package/dist/api/routing/makeRequestHandler.d.ts.map +1 -1
- package/dist/api/routing/makeRequestHandler.js +6 -9
- package/dist/api/routing/match.d.ts.map +1 -1
- package/dist/api/routing/match.js +3 -2
- package/dist/services/Operations.d.ts +28 -24
- package/dist/services/Operations.d.ts.map +1 -1
- package/dist/services/Operations.js +7 -4
- package/package.json +4 -4
- package/src/api/routing/makeRequestHandler.ts +153 -158
- package/src/api/routing/match.ts +3 -1
- package/src/services/Operations.ts +25 -13
- package/vitest.config.ts.timestamp-1711656440838-19c636fe320df.mjs +0 -0
- package/vitest.config.ts.timestamp-1711724061890-6ecedb0a07fdd.mjs +0 -0
- package/vitest.config.ts.timestamp-1711743489537-da8d9e5f66c9f.mjs +0 -0
- package/vitest.config.ts.timestamp-1711744615239-dcf257a844e01.mjs +0 -37
package/CHANGELOG.md
CHANGED
|
@@ -55,7 +55,7 @@ function makeRequestHandler(handler, errorHandler, middlewareLayer) {
|
|
|
55
55
|
headers: req.headers,
|
|
56
56
|
cookies: {} // req.cookies
|
|
57
57
|
}));
|
|
58
|
-
return _effectApp.Effect.
|
|
58
|
+
return _effectApp.Effect.gen(function* ($) {
|
|
59
59
|
const req = yield* $(_http.HttpServerRequest.ServerRequest);
|
|
60
60
|
const res = _http.HttpServerResponse.empty().pipe(_ => req.method === "GET" ? _http.HttpServerResponse.setHeader(_, "Cache-Control", "no-store") : _);
|
|
61
61
|
const pars = yield* $(getParams);
|
|
@@ -88,12 +88,10 @@ function makeRequestHandler(handler, errorHandler, middlewareLayer) {
|
|
|
88
88
|
prev[key] = key === "password" ? "<redacted>" : typeof value === "string" || typeof value === "number" || typeof value === "boolean" ? typeof value === "string" && value.length > 256 ? value.substring(0, 253) + "..." : value : Array.isArray(value) ? `Array[${value.length}]` : value === null || value === undefined ? `${value}` : typeof value === "object" && value ? `Object[${Object.keys(value).length}]` : typeof value;
|
|
89
89
|
return prev;
|
|
90
90
|
}, {}))), _effectApp.Effect.flatMap(parsedReq => handle(parsedReq).pipe(_effectApp.Effect.provideService(handler.Request.Tag, parsedReq), _effectApp.Effect.flatMap(encoder), _effectApp.Effect.map(r => res.pipe(_http.HttpServerResponse.setBody(_http.HttpBody.unsafeJson(r)), _http.HttpServerResponse.setStatus(r === undefined ? 204 : 200))))));
|
|
91
|
-
|
|
92
|
-
const r = req.method !== "GET" ? _effectApp.Effect.uninterruptible(handleRequest) : restore(handleRequest); // .instrument("Performance.RequestResponse")
|
|
93
|
-
const r2 = middlewareLayer ? _effectApp.Effect.provide(r, middlewareLayer)
|
|
91
|
+
const r = middlewareLayer ? _effectApp.Effect.provide(handleRequest, middlewareLayer)
|
|
94
92
|
// PR is not relevant here
|
|
95
|
-
:
|
|
96
|
-
return errorHandler(req, res,
|
|
93
|
+
: handleRequest;
|
|
94
|
+
return errorHandler(req, res, r.pipe(_effectApp.Effect.andThen(_RequestFiberSet.RequestFiberSet.register)));
|
|
97
95
|
})), _effectApp.Effect.catchAllCause(cause => _effectApp.Effect.sync(() => _http.HttpServerResponse.setStatus(res, 500)).pipe(_effectApp.Effect.tap(res => _effectApp.Effect.all([(0, _errorReporter.reportError)("request")(cause, {
|
|
98
96
|
path: req.originalUrl,
|
|
99
97
|
method: req.method
|
|
@@ -126,6 +124,6 @@ function makeRequestHandler(handler, errorHandler, middlewareLayer) {
|
|
|
126
124
|
return yield* $(eff);
|
|
127
125
|
}).pipe(_ => (0, _setupRequest.updateRequestContext)(_, (0, _utils.copy)(_ => ({
|
|
128
126
|
name: (0, _schema.NonEmptyString255)(handler.name)
|
|
129
|
-
}))))
|
|
127
|
+
}))));
|
|
130
128
|
}
|
|
131
129
|
//# sourceMappingURL=makeRequestHandler.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeRequestHandler.cjs","names":["_utils","require","_RequestFiberSet","_util","_errorReporter","_effectApp","_http","_schema","_setupRequest","_base","RequestSettings","exports","FiberRef","unsafeMake","verbose","makeRequestHandler","handler","errorHandler","middlewareLayer","Request","Response","h","handle","response","S","Void","resp","encoder","fields","encode","rt","encodedSchema","Struct","requestParsers","makeRequestParsers","parseRequest","parseRequestParams","getParams","Effect","map","all","rcx","HttpRouter","RouteContext","searchParms","HttpServerRequest","ParsedSearchParams","req","flatMap","ServerRequest","json","pipe","body","headers","params","query","cookies","
|
|
1
|
+
{"version":3,"file":"makeRequestHandler.cjs","names":["_utils","require","_RequestFiberSet","_util","_errorReporter","_effectApp","_http","_schema","_setupRequest","_base","RequestSettings","exports","FiberRef","unsafeMake","verbose","makeRequestHandler","handler","errorHandler","middlewareLayer","Request","Response","h","handle","response","S","Void","resp","encoder","fields","encode","rt","encodedSchema","Struct","requestParsers","makeRequestParsers","parseRequest","parseRequestParams","getParams","Effect","map","all","rcx","HttpRouter","RouteContext","searchParms","HttpServerRequest","ParsedSearchParams","req","flatMap","ServerRequest","json","pipe","body","headers","params","query","cookies","gen","$","res","HttpServerResponse","empty","_","method","setHeader","pars","settings","get","eff","logInfo","annotateLogs","path","originalUrl","reqPath","pretty","reqQuery","reqBody","reqCookies","reqHeaders","undefined","andThen","suspend","handleRequest","hn","Option","getOrUndefined","tap","parsedReq","annotateCurrentSpan","Object","entries","reduce","prev","key","value","length","substring","Array","isArray","keys","provideService","Tag","r","setBody","HttpBody","unsafeJson","setStatus","provide","RequestFiberSet","register","catchAllCause","cause","sync","reportError","logError","statusCode","status","toString","resHeaders","snipString","concurrency","tapErrorCause","Console","error","updateRequestContext","copy","name","NonEmptyString255"],"sources":["../../../src/api/routing/makeRequestHandler.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -24,7 +24,8 @@ function match(requestHandler, errorHandler, middleware) {
|
|
|
24
24
|
const handler = (0, _makeRequestHandler.makeRequestHandler)(requestHandler,
|
|
25
25
|
// one argument if no middleware, 2 if has middleware. TODO: clean this shit up
|
|
26
26
|
errorHandler, middlewareLayer);
|
|
27
|
-
const route = _http.HttpRouter.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler
|
|
27
|
+
const route = _http.HttpRouter.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler, undefined, requestHandler.Request.method !== "GET" // we don't want commands to be interruptible
|
|
28
|
+
);
|
|
28
29
|
// TODO
|
|
29
30
|
// rdesc.push(makeRouteDescriptor(
|
|
30
31
|
// requestHandler.Request.path,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.cjs","names":["_effectApp","require","_http","_makeRequestHandler","RouteDescriptors","exports","Context","GenericTag","match","requestHandler","errorHandler","middleware","middlewareLayer","undefined","handler","makeRequestLayer","Effect","gen","makeRequestHandler","route","HttpRouter","makeRoute","Request","method","path"],"sources":["../../../src/api/routing/match.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAOA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAGA,IAAAE,mBAAA,GAAAF,OAAA;AAGO,MAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,kBAAO,CAACC,UAAU,CAA4B,4BAA4B,CAAC;AAErG,SAAUC,KAAKA,CAoBnBC,cAeC,EACDC,YAQC,EACDC,UAkBC;EAED,IAAIC,eAAe,GAA2CC,SAAS;EACvE,IAAIF,UAAU,EAAE;IACd,MAAM;MAAEG,OAAO;MAAEC;IAAgB,CAAE,GAAGJ,UAAU,CAACF,cAAc,CAAC;IAChEA,cAAc,GAAGK,OAAc,EAAC;IAChCF,eAAe,GAAGG,gBAAgB;EACpC;EACA,OAAOC,iBAAM,CAACC,GAAG,CAAC,aAAS;IACzB;IAEA,MAAMH,OAAO,GAAG,IAAAI,sCAAkB,EAkBhCT,cAAqB;IAAE;IACvBC,YAAY,EACZE,eAAe,CAChB;IAED,MAAMO,KAAK,GAAGC,gBAAU,CAACC,SAAS,CAChCZ,cAAc,CAACa,OAAO,CAACC,MAAM,EAC7Bd,cAAc,CAACa,OAAO,CAACE,IAAI,EAC3BV,OAAO,
|
|
1
|
+
{"version":3,"file":"match.cjs","names":["_effectApp","require","_http","_makeRequestHandler","RouteDescriptors","exports","Context","GenericTag","match","requestHandler","errorHandler","middleware","middlewareLayer","undefined","handler","makeRequestLayer","Effect","gen","makeRequestHandler","route","HttpRouter","makeRoute","Request","method","path"],"sources":["../../../src/api/routing/match.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAOA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAGA,IAAAE,mBAAA,GAAAF,OAAA;AAGO,MAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,kBAAO,CAACC,UAAU,CAA4B,4BAA4B,CAAC;AAErG,SAAUC,KAAKA,CAoBnBC,cAeC,EACDC,YAQC,EACDC,UAkBC;EAED,IAAIC,eAAe,GAA2CC,SAAS;EACvE,IAAIF,UAAU,EAAE;IACd,MAAM;MAAEG,OAAO;MAAEC;IAAgB,CAAE,GAAGJ,UAAU,CAACF,cAAc,CAAC;IAChEA,cAAc,GAAGK,OAAc,EAAC;IAChCF,eAAe,GAAGG,gBAAgB;EACpC;EACA,OAAOC,iBAAM,CAACC,GAAG,CAAC,aAAS;IACzB;IAEA,MAAMH,OAAO,GAAG,IAAAI,sCAAkB,EAkBhCT,cAAqB;IAAE;IACvBC,YAAY,EACZE,eAAe,CAChB;IAED,MAAMO,KAAK,GAAGC,gBAAU,CAACC,SAAS,CAChCZ,cAAc,CAACa,OAAO,CAACC,MAAM,EAC7Bd,cAAc,CAACa,OAAO,CAACE,IAAI,EAC3BV,OAAO,EACPD,SAAS,EACTJ,cAAc,CAACa,OAAO,CAACC,MAAM,KAAK,KAAK,CAAC;KACzC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAOJ,KAAK;EACd,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -85,12 +85,23 @@ class Operations extends _effectApp.Context.TagMakeId("effect-app/Operations", m
|
|
|
85
85
|
static Live = this.CleanupLive.pipe(_effectApp.Layer.provideMerge(this.toLayer()));
|
|
86
86
|
}
|
|
87
87
|
exports.Operations = Operations;
|
|
88
|
-
const forkOperation = exports.forkOperation = (0, _Function.dual)(2, (self, title) => _effectApp.Effect.flatMap(Scope.make(), scope => Operations.register(title).pipe(Scope.extend(scope), _effectApp.Effect.
|
|
88
|
+
const forkOperation = exports.forkOperation = (0, _Function.dual)(2, (self, title) => _effectApp.Effect.flatMap(Scope.make(), scope => Operations.register(title).pipe(Scope.extend(scope), _effectApp.Effect.flatMap(id => (0, _reportError.forkDaemonReportRequestUnexpected)(Scope.use(self.pipe(_effectApp.Effect.withSpan(title)), scope)).pipe(_effectApp.Effect.map(fiber => ({
|
|
89
|
+
fiber,
|
|
90
|
+
id
|
|
91
|
+
})))))));
|
|
89
92
|
function forkOperationFunction(fnc, title) {
|
|
90
93
|
return inp => fnc(inp).pipe(_ => forkOperation(_, title));
|
|
91
94
|
}
|
|
92
|
-
const forkOperation2 = exports.forkOperation2 = (0, _Function.dual)(2, (self, title) => (0, _Effect.flatMap)(Operations, Operations => _effectApp.Effect.flatMap(Scope.make(), scope => Operations.register(title).pipe(Scope.extend(scope), _effectApp.Effect.
|
|
95
|
+
const forkOperation2 = exports.forkOperation2 = (0, _Function.dual)(2, (self, title) => (0, _Effect.flatMap)(Operations, Operations => _effectApp.Effect.flatMap(Scope.make(), scope => Operations.register(title).pipe(Scope.extend(scope), _effectApp.Effect.flatMap(id => (0, _reportError.forkDaemonReportRequestUnexpected)(Scope.use(self(id).pipe(_effectApp.Effect.withSpan(title)), scope)).pipe(_effectApp.Effect.map(fiber => ({
|
|
96
|
+
fiber,
|
|
97
|
+
id
|
|
98
|
+
}))))))));
|
|
93
99
|
function forkOperationWithEffect(self, fnc, title) {
|
|
94
|
-
return _effectApp.Effect.flatMap(Operations, Operations => _effectApp.Effect.flatMap(Scope.make(), scope => Operations.register(title).pipe(Scope.extend(scope), _effectApp.Effect.
|
|
100
|
+
return _effectApp.Effect.flatMap(Operations, Operations => _effectApp.Effect.flatMap(Scope.make(), scope => Operations.register(title).pipe(Scope.extend(scope), _effectApp.Effect.flatMap(id => (0, _reportError.forkDaemonReportRequestUnexpected)(Scope.use(self(id).pipe(_effectApp.Effect.withSpan(title)), scope)).pipe(_effectApp.Effect.map(fiber => ({
|
|
101
|
+
fiber,
|
|
102
|
+
id
|
|
103
|
+
})))), _effectApp.Effect.tap(({
|
|
104
|
+
id
|
|
105
|
+
}) => _effectApp.Effect.interruptible(fnc(id)).pipe(_effectApp.Effect.forkScoped, Scope.extend(scope))))));
|
|
95
106
|
}
|
|
96
107
|
//# sourceMappingURL=Operations.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Operations.cjs","names":["_Effect","require","_Function","_errorReporter","_schema","_dateFns","_effectApp","_Operations","_MainFiberSet","Scope","_interopRequireWildcard","_reportError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","reportAppError","reportError","make","Effect","sync","ops","Map","makeOp","OperationId","cleanup","before","subHours","Date","entries","forEach","id","op","lastChanged","Option","fromNullable","updatedAt","pipe","getOrElse","createdAt","delete","withSpan","addOp","title","Operation","findOp","finishOp","exit","flatMap","_","isNone","Error","copy","value","result","Exit","isSuccess","Success","Failure","message","Cause","isInterrupted","cause","NonEmptyString2k","isDie","failureOption","S","is","some","none","getOrNull","update","progress","register","tap","andThen","annotateLogscoped","acquireRelease","all","values","find","Operations","Context","TagMakeId","CleanupLive","use","void","schedule","Schedule","fixed","Duration","minutes","map","MainFiberSet","run","Layer","effectDiscard","provide","Live","provideMerge","toLayer","forkOperation","exports","dual","self","scope","extend","forkDaemonReportRequestUnexpected","forkOperationFunction","fnc","inp","forkOperation2","forkOperationWithEffect","
|
|
1
|
+
{"version":3,"file":"Operations.cjs","names":["_Effect","require","_Function","_errorReporter","_schema","_dateFns","_effectApp","_Operations","_MainFiberSet","Scope","_interopRequireWildcard","_reportError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","reportAppError","reportError","make","Effect","sync","ops","Map","makeOp","OperationId","cleanup","before","subHours","Date","entries","forEach","id","op","lastChanged","Option","fromNullable","updatedAt","pipe","getOrElse","createdAt","delete","withSpan","addOp","title","Operation","findOp","finishOp","exit","flatMap","_","isNone","Error","copy","value","result","Exit","isSuccess","Success","Failure","message","Cause","isInterrupted","cause","NonEmptyString2k","isDie","failureOption","S","is","some","none","getOrNull","update","progress","register","tap","andThen","annotateLogscoped","acquireRelease","all","values","find","Operations","Context","TagMakeId","CleanupLive","use","void","schedule","Schedule","fixed","Duration","minutes","map","MainFiberSet","run","Layer","effectDiscard","provide","Live","provideMerge","toLayer","forkOperation","exports","dual","self","scope","extend","forkDaemonReportRequestUnexpected","fiber","forkOperationFunction","fnc","inp","forkOperation2","forkOperationWithEffect","interruptible","forkScoped"],"sources":["../../src/services/Operations.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/api/routing/makeRequestHandler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"makeRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/api/routing/makeRequestHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,6 @@ export function makeRequestHandler(handler, errorHandler, middlewareLayer) {
|
|
|
40
40
|
cookies: {} // req.cookies
|
|
41
41
|
}));
|
|
42
42
|
return Effect
|
|
43
|
-
.uninterruptibleMask((restore) => Effect
|
|
44
43
|
.gen(function* ($) {
|
|
45
44
|
const req = yield* $(HttpServerRequest.ServerRequest);
|
|
46
45
|
const res = HttpServerResponse
|
|
@@ -92,13 +91,11 @@ export function makeRequestHandler(handler, errorHandler, middlewareLayer) {
|
|
|
92
91
|
}, {}))), Effect.flatMap((parsedReq) => handle(parsedReq)
|
|
93
92
|
.pipe(Effect.provideService(handler.Request.Tag, parsedReq), Effect.flatMap(encoder), Effect
|
|
94
93
|
.map((r) => res.pipe(HttpServerResponse.setBody(HttpBody.unsafeJson(r)), HttpServerResponse.setStatus(r === undefined ? 204 : 200))))));
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const r2 = middlewareLayer
|
|
98
|
-
? Effect.provide(r, middlewareLayer)
|
|
94
|
+
const r = middlewareLayer
|
|
95
|
+
? Effect.provide(handleRequest, middlewareLayer)
|
|
99
96
|
// PR is not relevant here
|
|
100
|
-
:
|
|
101
|
-
return errorHandler(req, res,
|
|
97
|
+
: handleRequest;
|
|
98
|
+
return errorHandler(req, res, r.pipe(Effect.andThen(RequestFiberSet.register)));
|
|
102
99
|
})), Effect
|
|
103
100
|
.catchAllCause((cause) => Effect
|
|
104
101
|
.sync(() => HttpServerResponse.setStatus(res, 500))
|
|
@@ -148,6 +145,6 @@ export function makeRequestHandler(handler, errorHandler, middlewareLayer) {
|
|
|
148
145
|
})
|
|
149
146
|
.pipe((_) => updateRequestContext(_, copy((_) => ({
|
|
150
147
|
name: NonEmptyString255(handler.name)
|
|
151
|
-
}))))
|
|
148
|
+
}))));
|
|
152
149
|
}
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVJlcXVlc3RIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9yb3V0aW5nL21ha2VSZXF1ZXN0SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBTTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRWpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBR2xFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ2pELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyxDQUFBO0FBeURGLE1BQU0sVUFBVSxrQkFBa0IsQ0FrQmhDLE9BYUMsRUFDRCxZQUkrRCxFQUMvRCxlQUE0QztJQWM1QyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFBO0lBRWhELE1BQU0sUUFBUSxHQUErQixRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../src/api/routing/match.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAS,GAAG,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEzD,eAAO,MAAM,gBAAgB,mEAA8E,CAAA;AAE3G,wBAAgB,KAAK,CACnB,CAAC,EACD,CAAC,EACD,KAAK,SAAS,MAAM,CAAC,MAAM,EAC3B,OAAO,SAAS,MAAM,CAAC,MAAM,EAC7B,MAAM,SAAS,MAAM,CAAC,MAAM,EAC5B,KAAK,SAAS,MAAM,CAAC,MAAM,EAC3B,OAAO,SAAS,MAAM,CAAC,MAAM,EAC7B,IAAI,SAAS,KAAK,GAAG,MAAM,GAAG,KAAK,EACnC,IAAI,SAAS,MAAM,CAAC,MAAM,EAC1B,IAAI,EACJ,WAAW,EACX,KAAK,SAAS,IAAI,MAAM,EAAE,EAC1B,EAAE,EACF,EAAE,EACF,IAAI,EACJ,GAAG,EACH,OAAO,EACP,MAAM,EAEN,cAAc,EAAE,cAAc,CAC5B,CAAC,EACD,CAAC,EACD,KAAK,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,GAAG,EACH,OAAO,EACP,MAAM,CACP,EACD,YAAY,EAAE,CAAC,CAAC,EACd,GAAG,EAAE,iBAAiB,CAAC,aAAa,EACpC,GAAG,EAAE,kBAAkB,CAAC,cAAc,EACtC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI,EAAE,CAAC,CAAC,KACnF,MAAM,CACT,kBAAkB,CAAC,cAAc,EACjC,KAAK,EACL,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,iBAAiB,CAAC,aAAa,GAAG,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,CACrF,EACD,UAAU,CAAC,EAAE,UAAU,CACrB,CAAC,EACD,CAAC,EACD,KAAK,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,KAAK,EACL,EAAE,EACF,EAAE,EACF,GAAG,EACH,OAAO,EACP,MAAM,CACP,
|
|
1
|
+
{"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../src/api/routing/match.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAS,GAAG,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEzD,eAAO,MAAM,gBAAgB,mEAA8E,CAAA;AAE3G,wBAAgB,KAAK,CACnB,CAAC,EACD,CAAC,EACD,KAAK,SAAS,MAAM,CAAC,MAAM,EAC3B,OAAO,SAAS,MAAM,CAAC,MAAM,EAC7B,MAAM,SAAS,MAAM,CAAC,MAAM,EAC5B,KAAK,SAAS,MAAM,CAAC,MAAM,EAC3B,OAAO,SAAS,MAAM,CAAC,MAAM,EAC7B,IAAI,SAAS,KAAK,GAAG,MAAM,GAAG,KAAK,EACnC,IAAI,SAAS,MAAM,CAAC,MAAM,EAC1B,IAAI,EACJ,WAAW,EACX,KAAK,SAAS,IAAI,MAAM,EAAE,EAC1B,EAAE,EACF,EAAE,EACF,IAAI,EACJ,GAAG,EACH,OAAO,EACP,MAAM,EAEN,cAAc,EAAE,cAAc,CAC5B,CAAC,EACD,CAAC,EACD,KAAK,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,GAAG,EACH,OAAO,EACP,MAAM,CACP,EACD,YAAY,EAAE,CAAC,CAAC,EACd,GAAG,EAAE,iBAAiB,CAAC,aAAa,EACpC,GAAG,EAAE,kBAAkB,CAAC,cAAc,EACtC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI,EAAE,CAAC,CAAC,KACnF,MAAM,CACT,kBAAkB,CAAC,cAAc,EACjC,KAAK,EACL,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,iBAAiB,CAAC,aAAa,GAAG,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,CACrF,EACD,UAAU,CAAC,EAAE,UAAU,CACrB,CAAC,EACD,CAAC,EACD,KAAK,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,KAAK,EACL,EAAE,EACF,EAAE,EACF,GAAG,EACH,OAAO,EACP,MAAM,CACP,ixBAiDF"}
|
|
@@ -13,7 +13,8 @@ export function match(requestHandler, errorHandler, middleware) {
|
|
|
13
13
|
// const rdesc = yield* $(RouteDescriptors.flatMap((_) => _.get))
|
|
14
14
|
const handler = makeRequestHandler(requestHandler, // one argument if no middleware, 2 if has middleware. TODO: clean this shit up
|
|
15
15
|
errorHandler, middlewareLayer);
|
|
16
|
-
const route = HttpRouter.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler
|
|
16
|
+
const route = HttpRouter.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler, undefined, requestHandler.Request.method !== "GET" // we don't want commands to be interruptible
|
|
17
|
+
);
|
|
17
18
|
// TODO
|
|
18
19
|
// rdesc.push(makeRouteDescriptor(
|
|
19
20
|
// requestHandler.Request.path,
|
|
@@ -23,4 +24,4 @@ export function match(requestHandler, errorHandler, middleware) {
|
|
|
23
24
|
return route;
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvbWF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRzVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQTRCLDRCQUE0QixDQUFDLENBQUE7QUFFM0csTUFBTSxVQUFVLEtBQUssQ0FvQm5CLGNBZUMsRUFDRCxZQVFDLEVBQ0QsVUFrQkM7SUFFRCxJQUFJLGVBQWUsR0FBMkMsU0FBUyxDQUFBO0lBQ3ZFLElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ2hFLGNBQWMsR0FBRyxPQUFjLENBQUEsQ0FBQyxPQUFPO1FBQ3ZDLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQTtJQUNwQyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixpRUFBaUU7UUFFakUsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBa0JoQyxjQUFxQixFQUFFLCtFQUErRTtRQUN0RyxZQUFZLEVBQ1osZUFBZSxDQUNoQixDQUFBO1FBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FDaEMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQzdCLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUMzQixPQUFPLEVBQ1AsU0FBUyxFQUNULGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyw2Q0FBNkM7U0FDdEYsQ0FBQTtRQUNELE9BQU87UUFDUCxrQ0FBa0M7UUFDbEMsaUNBQWlDO1FBQ2pDLG1DQUFtQztRQUNuQyxtQkFBbUI7UUFDbkIsS0FBSztRQUNMLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { RequestFiberSet } from "@effect-app/infra-adapters/RequestFiberSet";
|
|
2
|
-
import type { StringId } from "@effect-app/schema";
|
|
1
|
+
import type { RequestFiberSet } from "@effect-app/infra-adapters/RequestFiberSet";
|
|
3
2
|
import { NonEmptyString2k } from "@effect-app/schema";
|
|
4
|
-
import {
|
|
3
|
+
import type { Fiber } from "effect-app";
|
|
4
|
+
import { Context, Effect, Layer, Option, S } from "effect-app";
|
|
5
5
|
import type { OperationProgress } from "effect-app/Operations";
|
|
6
6
|
import { Operation, OperationId } from "effect-app/Operations";
|
|
7
7
|
import * as Scope from "effect/Scope";
|
|
8
8
|
declare const Operations_base: (abstract new (service: {
|
|
9
9
|
cleanup: Effect.Effect<void, never, never>;
|
|
10
|
-
register: (title: NonEmptyString2k) => Effect.Effect<StringId, never, Scope.Scope>;
|
|
10
|
+
register: (title: NonEmptyString2k) => Effect.Effect<S.StringId, never, Scope.Scope>;
|
|
11
11
|
all: Effect.Effect<Operation[], never, never>;
|
|
12
|
-
find: (id: StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
13
|
-
update: (id: StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
12
|
+
find: (id: S.StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
13
|
+
update: (id: S.StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
14
14
|
}) => Readonly<{
|
|
15
15
|
cleanup: Effect.Effect<void, never, never>;
|
|
16
|
-
register: (title: NonEmptyString2k) => Effect.Effect<StringId, never, Scope.Scope>;
|
|
16
|
+
register: (title: NonEmptyString2k) => Effect.Effect<S.StringId, never, Scope.Scope>;
|
|
17
17
|
all: Effect.Effect<Operation[], never, never>;
|
|
18
|
-
find: (id: StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
19
|
-
update: (id: StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
18
|
+
find: (id: S.StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
19
|
+
update: (id: S.StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
20
20
|
}> & Context.TagClassShape<"effect-app/Operations", {
|
|
21
21
|
cleanup: Effect.Effect<void, never, never>;
|
|
22
|
-
register: (title: NonEmptyString2k) => Effect.Effect<StringId, never, Scope.Scope>;
|
|
22
|
+
register: (title: NonEmptyString2k) => Effect.Effect<S.StringId, never, Scope.Scope>;
|
|
23
23
|
all: Effect.Effect<Operation[], never, never>;
|
|
24
|
-
find: (id: StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
25
|
-
update: (id: StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
24
|
+
find: (id: S.StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
25
|
+
update: (id: S.StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
26
26
|
}>) & {
|
|
27
27
|
toLayer: {
|
|
28
28
|
(): Layer<Operations, never, never>;
|
|
@@ -36,32 +36,36 @@ declare const Operations_base: (abstract new (service: {
|
|
|
36
36
|
make: Effect<Operations, never, never>;
|
|
37
37
|
} & Context.Tag<Operations, Operations> & {
|
|
38
38
|
cleanup: Effect<void, never, Operations>;
|
|
39
|
-
register: (title: NonEmptyString2k) => Effect<StringId, never, Scope.Scope | Operations>;
|
|
39
|
+
register: (title: NonEmptyString2k) => Effect<S.StringId, never, Scope.Scope | Operations>;
|
|
40
40
|
all: Effect<Operation[], never, Operations>;
|
|
41
|
-
find: (id: StringId) => Effect<Option.Option<Operation>, never, Operations>;
|
|
42
|
-
update: (id: StringId, progress: OperationProgress) => Effect<void, never, Operations>;
|
|
41
|
+
find: (id: S.StringId) => Effect<Option.Option<Operation>, never, Operations>;
|
|
42
|
+
update: (id: S.StringId, progress: OperationProgress) => Effect<void, never, Operations>;
|
|
43
43
|
} & {
|
|
44
44
|
use: <X>(body: (_: {
|
|
45
45
|
cleanup: Effect.Effect<void, never, never>;
|
|
46
|
-
register: (title: NonEmptyString2k) => Effect.Effect<StringId, never, Scope.Scope>;
|
|
46
|
+
register: (title: NonEmptyString2k) => Effect.Effect<S.StringId, never, Scope.Scope>;
|
|
47
47
|
all: Effect.Effect<Operation[], never, never>;
|
|
48
|
-
find: (id: StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
49
|
-
update: (id: StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
48
|
+
find: (id: S.StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
49
|
+
update: (id: S.StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
50
50
|
}) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5, R_5 | Operations> : Effect<X, never, Operations>;
|
|
51
51
|
};
|
|
52
52
|
export declare class Operations extends Operations_base {
|
|
53
53
|
private static readonly CleanupLive;
|
|
54
54
|
static readonly Live: Layer.Layer<Operations, never, never>;
|
|
55
55
|
}
|
|
56
|
+
export interface RunningOperation<A, E> {
|
|
57
|
+
id: OperationId;
|
|
58
|
+
fiber: Fiber.RuntimeFiber<A, E>;
|
|
59
|
+
}
|
|
56
60
|
export declare const forkOperation: {
|
|
57
|
-
(title: NonEmptyString2k): <R, E, A>(self: Effect<A, E, R>) => Effect<
|
|
58
|
-
<R, E, A>(self: Effect<A, E, R>, title: NonEmptyString2k): Effect<
|
|
61
|
+
(title: NonEmptyString2k): <R, E, A>(self: Effect<A, E, R>) => Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
|
|
62
|
+
<R, E, A>(self: Effect<A, E, R>, title: NonEmptyString2k): Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
|
|
59
63
|
};
|
|
60
|
-
export declare function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<A, E, R>, title: NonEmptyString2k): (inp: Inp) => Effect<
|
|
64
|
+
export declare function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<A, E, R>, title: NonEmptyString2k): (inp: Inp) => Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
|
|
61
65
|
export declare const forkOperation2: {
|
|
62
|
-
(title: NonEmptyString2k): <R, E, A>(self: (opId: OperationId) => Effect<A, E, R>) => Effect<
|
|
63
|
-
<R, E, A>(self: (opId: OperationId) => Effect<A, E, R>, title: NonEmptyString2k): Effect<
|
|
66
|
+
(title: NonEmptyString2k): <R, E, A>(self: (opId: OperationId) => Effect<A, E, R>) => Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
|
|
67
|
+
<R, E, A>(self: (opId: OperationId) => Effect<A, E, R>, title: NonEmptyString2k): Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
|
|
64
68
|
};
|
|
65
|
-
export declare function forkOperationWithEffect<R, R2, E, E2, A, A2>(self: (id: OperationId) => Effect<A, E, R>, fnc: (id: OperationId) => Effect<A2, E2, R2>, title: NonEmptyString2k): Effect<
|
|
69
|
+
export declare function forkOperationWithEffect<R, R2, E, E2, A, A2>(self: (id: OperationId) => Effect<A, E, R>, fnc: (id: OperationId) => Effect<A2, E2, R2>, title: NonEmptyString2k): Effect<RunningOperation<A, E>, never, Operations | RequestFiberSet | Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>>;
|
|
66
70
|
export {};
|
|
67
71
|
//# sourceMappingURL=Operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../../src/services/Operations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;
|
|
1
|
+
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../../src/services/Operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,17 +89,20 @@ export class Operations extends Context.TagMakeId("effect-app/Operations", make)
|
|
|
89
89
|
export const forkOperation = dual(2, (self, title) => Effect.flatMap(Scope.make(), (scope) => Operations
|
|
90
90
|
.register(title)
|
|
91
91
|
.pipe(Scope.extend(scope), Effect
|
|
92
|
-
.
|
|
92
|
+
.flatMap((id) => forkDaemonReportRequestUnexpected(Scope.use(self.pipe(Effect.withSpan(title)), scope))
|
|
93
|
+
.pipe(Effect.map((fiber) => ({ fiber, id })))))));
|
|
93
94
|
export function forkOperationFunction(fnc, title) {
|
|
94
95
|
return (inp) => fnc(inp).pipe((_) => forkOperation(_, title));
|
|
95
96
|
}
|
|
96
97
|
export const forkOperation2 = dual(2, (self, title) => flatMap(Operations, (Operations) => Effect.flatMap(Scope.make(), (scope) => Operations
|
|
97
98
|
.register(title)
|
|
98
99
|
.pipe(Scope.extend(scope), Effect
|
|
99
|
-
.
|
|
100
|
+
.flatMap((id) => forkDaemonReportRequestUnexpected(Scope.use(self(id).pipe(Effect.withSpan(title)), scope))
|
|
101
|
+
.pipe(Effect.map((fiber) => ({ fiber, id }))))))));
|
|
100
102
|
export function forkOperationWithEffect(self, fnc, title) {
|
|
101
103
|
return Effect.flatMap(Operations, (Operations) => Effect.flatMap(Scope.make(), (scope) => Operations
|
|
102
104
|
.register(title)
|
|
103
|
-
.pipe(Scope.extend(scope), Effect.
|
|
105
|
+
.pipe(Scope.extend(scope), Effect.flatMap((id) => forkDaemonReportRequestUnexpected(Scope.use(self(id).pipe(Effect.withSpan(title)), scope))
|
|
106
|
+
.pipe(Effect.map((fiber) => ({ fiber, id })))), Effect.tap(({ id }) => Effect.interruptible(fnc(id)).pipe(Effect.forkScoped, Scope.extend(scope))))));
|
|
104
107
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9PcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFbkMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVyRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBRXpFLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0FBRXhELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO0lBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFBO0lBQzdDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"pure-rand": "6.1.0",
|
|
20
20
|
"redlock": "^4.2.0",
|
|
21
21
|
"@effect-app/core": "1.1.3",
|
|
22
|
-
"@effect-app/schema": "1.1.3",
|
|
23
22
|
"effect-app": "1.2.3",
|
|
24
|
-
"@effect-app/infra-adapters": "1.1.3"
|
|
23
|
+
"@effect-app/infra-adapters": "1.1.3",
|
|
24
|
+
"@effect-app/schema": "1.1.3"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@babel/cli": "^7.24.5",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"express": "^4.19.2",
|
|
45
|
-
"@effect/platform": "^0.52.
|
|
45
|
+
"@effect/platform": "^0.52.3",
|
|
46
46
|
"@effect/schema": "^0.66.14",
|
|
47
47
|
"effect": "^3.1.2"
|
|
48
48
|
},
|
|
@@ -170,178 +170,173 @@ export function makeRequestHandler<
|
|
|
170
170
|
)
|
|
171
171
|
|
|
172
172
|
return Effect
|
|
173
|
-
.
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
.empty()
|
|
179
|
-
.pipe((_) => req.method === "GET" ? HttpServerResponse.setHeader(_, "Cache-Control", "no-store") : _)
|
|
173
|
+
.gen(function*($) {
|
|
174
|
+
const req = yield* $(HttpServerRequest.ServerRequest)
|
|
175
|
+
const res = HttpServerResponse
|
|
176
|
+
.empty()
|
|
177
|
+
.pipe((_) => req.method === "GET" ? HttpServerResponse.setHeader(_, "Cache-Control", "no-store") : _)
|
|
180
178
|
|
|
181
|
-
|
|
179
|
+
const pars = yield* $(getParams)
|
|
182
180
|
|
|
183
|
-
|
|
181
|
+
const settings = yield* $(FiberRef.get(RequestSettings))
|
|
184
182
|
|
|
185
|
-
|
|
186
|
-
|
|
183
|
+
const eff =
|
|
184
|
+
// TODO: we don;t have access to user id here cause context is not yet created
|
|
185
|
+
Effect
|
|
186
|
+
.logInfo("Incoming request")
|
|
187
|
+
.pipe(
|
|
188
|
+
Effect.annotateLogs({
|
|
189
|
+
method: req.method,
|
|
190
|
+
path: req.originalUrl,
|
|
191
|
+
...(settings.verbose
|
|
192
|
+
? {
|
|
193
|
+
reqPath: pretty(pars.params),
|
|
194
|
+
reqQuery: pretty(pars.query),
|
|
195
|
+
reqBody: pretty(pars.body),
|
|
196
|
+
reqCookies: pretty(pars.cookies),
|
|
197
|
+
reqHeaders: pretty(pars.headers)
|
|
198
|
+
}
|
|
199
|
+
: undefined)
|
|
200
|
+
}),
|
|
187
201
|
Effect
|
|
188
|
-
.
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
: typeof value
|
|
233
|
-
return prev
|
|
234
|
-
}, {} as Record<string, string | number | boolean>)
|
|
235
|
-
)
|
|
236
|
-
),
|
|
237
|
-
Effect.flatMap((parsedReq) =>
|
|
238
|
-
handle(parsedReq)
|
|
239
|
-
.pipe(
|
|
240
|
-
Effect.provideService(handler.Request.Tag, parsedReq as any),
|
|
241
|
-
Effect.flatMap(encoder),
|
|
242
|
-
Effect
|
|
243
|
-
.map((r) =>
|
|
244
|
-
res.pipe(
|
|
245
|
-
HttpServerResponse.setBody(HttpBody.unsafeJson(r)),
|
|
246
|
-
HttpServerResponse.setStatus(r === undefined ? 204 : 200)
|
|
247
|
-
)
|
|
248
|
-
)
|
|
202
|
+
.andThen(
|
|
203
|
+
Effect.suspend(() => {
|
|
204
|
+
const handleRequest = parseRequest(pars)
|
|
205
|
+
.pipe(
|
|
206
|
+
Effect.map(({ body, path, query }) => {
|
|
207
|
+
const hn = {
|
|
208
|
+
...body.pipe(Option.getOrUndefined) ?? {},
|
|
209
|
+
...query.pipe(Option.getOrUndefined) ?? {},
|
|
210
|
+
...path.pipe(Option.getOrUndefined) ?? {}
|
|
211
|
+
} as unknown as ReqA
|
|
212
|
+
return hn
|
|
213
|
+
}),
|
|
214
|
+
Effect.tap((parsedReq) =>
|
|
215
|
+
Effect.annotateCurrentSpan(
|
|
216
|
+
"requestInput",
|
|
217
|
+
Object.entries(parsedReq).reduce((prev, [key, value]: [string, unknown]) => {
|
|
218
|
+
prev[key] = key === "password"
|
|
219
|
+
? "<redacted>"
|
|
220
|
+
: typeof value === "string" || typeof value === "number" || typeof value === "boolean"
|
|
221
|
+
? typeof value === "string" && value.length > 256
|
|
222
|
+
? (value.substring(0, 253) + "...")
|
|
223
|
+
: value
|
|
224
|
+
: Array.isArray(value)
|
|
225
|
+
? `Array[${value.length}]`
|
|
226
|
+
: value === null || value === undefined
|
|
227
|
+
? `${value}`
|
|
228
|
+
: typeof value === "object" && value
|
|
229
|
+
? `Object[${Object.keys(value).length}]`
|
|
230
|
+
: typeof value
|
|
231
|
+
return prev
|
|
232
|
+
}, {} as Record<string, string | number | boolean>)
|
|
233
|
+
)
|
|
234
|
+
),
|
|
235
|
+
Effect.flatMap((parsedReq) =>
|
|
236
|
+
handle(parsedReq)
|
|
237
|
+
.pipe(
|
|
238
|
+
Effect.provideService(handler.Request.Tag, parsedReq as any),
|
|
239
|
+
Effect.flatMap(encoder),
|
|
240
|
+
Effect
|
|
241
|
+
.map((r) =>
|
|
242
|
+
res.pipe(
|
|
243
|
+
HttpServerResponse.setBody(HttpBody.unsafeJson(r)),
|
|
244
|
+
HttpServerResponse.setStatus(r === undefined ? 204 : 200)
|
|
245
|
+
)
|
|
249
246
|
)
|
|
250
247
|
)
|
|
251
|
-
) as Effect<
|
|
252
|
-
HttpServerResponse.ServerResponse,
|
|
253
|
-
ValidationError | ResE,
|
|
254
|
-
Exclude<R, EnforceNonEmptyRecord<M>>
|
|
255
|
-
>
|
|
256
|
-
|
|
257
|
-
// Commands should not be interruptable.
|
|
258
|
-
const r = req.method !== "GET" ? Effect.uninterruptible(handleRequest) : restore(handleRequest) // .instrument("Performance.RequestResponse")
|
|
259
|
-
const r2 = middlewareLayer
|
|
260
|
-
? Effect.provide(r, middlewareLayer)
|
|
261
|
-
// PR is not relevant here
|
|
262
|
-
: (r as Effect<
|
|
263
|
-
HttpServerResponse.ServerResponse,
|
|
264
|
-
ResE | MiddlewareE | ValidationError,
|
|
265
|
-
Exclude<Exclude<R, EnforceNonEmptyRecord<M>>, PR>
|
|
266
|
-
>)
|
|
267
|
-
return errorHandler(
|
|
268
|
-
req,
|
|
269
|
-
res,
|
|
270
|
-
r2.pipe(Effect.andThen(RequestFiberSet.register))
|
|
271
248
|
)
|
|
272
|
-
|
|
273
|
-
|
|
249
|
+
) as Effect<
|
|
250
|
+
HttpServerResponse.ServerResponse,
|
|
251
|
+
ValidationError | ResE,
|
|
252
|
+
Exclude<R, EnforceNonEmptyRecord<M>>
|
|
253
|
+
>
|
|
254
|
+
|
|
255
|
+
const r = middlewareLayer
|
|
256
|
+
? Effect.provide(handleRequest, middlewareLayer)
|
|
257
|
+
// PR is not relevant here
|
|
258
|
+
: (handleRequest as Effect<
|
|
259
|
+
HttpServerResponse.ServerResponse,
|
|
260
|
+
ResE | MiddlewareE | ValidationError,
|
|
261
|
+
Exclude<Exclude<R, EnforceNonEmptyRecord<M>>, PR>
|
|
262
|
+
>)
|
|
263
|
+
return errorHandler(
|
|
264
|
+
req,
|
|
265
|
+
res,
|
|
266
|
+
r.pipe(Effect.andThen(RequestFiberSet.register))
|
|
267
|
+
)
|
|
268
|
+
})
|
|
269
|
+
),
|
|
270
|
+
Effect
|
|
271
|
+
.catchAllCause((cause) =>
|
|
274
272
|
Effect
|
|
275
|
-
.
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
.
|
|
280
|
-
|
|
281
|
-
.
|
|
282
|
-
|
|
273
|
+
.sync(() => HttpServerResponse.setStatus(res, 500))
|
|
274
|
+
.pipe(Effect
|
|
275
|
+
.tap((res) =>
|
|
276
|
+
Effect
|
|
277
|
+
.all([
|
|
278
|
+
reportError("request")(cause, {
|
|
279
|
+
path: req.originalUrl,
|
|
280
|
+
method: req.method
|
|
281
|
+
}),
|
|
282
|
+
Effect.suspend(() => {
|
|
283
|
+
const headers = res.headers
|
|
284
|
+
return Effect
|
|
285
|
+
.logError("Finished request", cause)
|
|
286
|
+
.pipe(Effect.annotateLogs({
|
|
287
|
+
method: req.method,
|
|
283
288
|
path: req.originalUrl,
|
|
284
|
-
|
|
285
|
-
}),
|
|
286
|
-
Effect.suspend(() => {
|
|
287
|
-
const headers = res.headers
|
|
288
|
-
return Effect
|
|
289
|
-
.logError("Finished request", cause)
|
|
290
|
-
.pipe(Effect.annotateLogs({
|
|
291
|
-
method: req.method,
|
|
292
|
-
path: req.originalUrl,
|
|
293
|
-
statusCode: res.status.toString(),
|
|
289
|
+
statusCode: res.status.toString(),
|
|
294
290
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
291
|
+
reqPath: pretty(pars.params),
|
|
292
|
+
reqQuery: pretty(pars.query),
|
|
293
|
+
reqBody: pretty(pars.body),
|
|
294
|
+
reqCookies: pretty(pars.cookies),
|
|
295
|
+
reqHeaders: pretty(pars.headers),
|
|
300
296
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
)
|
|
316
|
-
),
|
|
317
|
-
Effect
|
|
318
|
-
.tap((res) =>
|
|
319
|
-
Effect
|
|
320
|
-
.logInfo("Finished request")
|
|
321
|
-
.pipe(Effect.annotateLogs({
|
|
322
|
-
method: req.method,
|
|
323
|
-
path: req.originalUrl,
|
|
324
|
-
statusCode: res.status.toString(),
|
|
325
|
-
...(settings.verbose
|
|
326
|
-
? {
|
|
327
|
-
resHeaders: pretty(res.headers)
|
|
328
|
-
}
|
|
329
|
-
: undefined)
|
|
330
|
-
}))
|
|
297
|
+
resHeaders: pretty(
|
|
298
|
+
Object
|
|
299
|
+
.entries(headers)
|
|
300
|
+
.reduce((prev, [key, value]) => {
|
|
301
|
+
prev[key] = value && typeof value === "string" ? snipString(value) : value
|
|
302
|
+
return prev
|
|
303
|
+
}, {} as Record<string, any>)
|
|
304
|
+
)
|
|
305
|
+
}))
|
|
306
|
+
})
|
|
307
|
+
], { concurrency: "inherit" })
|
|
308
|
+
))
|
|
309
|
+
.pipe(
|
|
310
|
+
Effect.tapErrorCause((cause) => Console.error("Error occurred while reporting error", cause))
|
|
331
311
|
)
|
|
312
|
+
),
|
|
313
|
+
Effect
|
|
314
|
+
.tap((res) =>
|
|
315
|
+
Effect
|
|
316
|
+
.logInfo("Finished request")
|
|
317
|
+
.pipe(Effect.annotateLogs({
|
|
318
|
+
method: req.method,
|
|
319
|
+
path: req.originalUrl,
|
|
320
|
+
statusCode: res.status.toString(),
|
|
321
|
+
...(settings.verbose
|
|
322
|
+
? {
|
|
323
|
+
resHeaders: pretty(res.headers)
|
|
324
|
+
}
|
|
325
|
+
: undefined)
|
|
326
|
+
}))
|
|
332
327
|
)
|
|
328
|
+
)
|
|
333
329
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
)
|
|
343
|
-
}))
|
|
330
|
+
return yield* $(eff)
|
|
331
|
+
})
|
|
332
|
+
.pipe((_) =>
|
|
333
|
+
updateRequestContext(
|
|
334
|
+
_,
|
|
335
|
+
copy((_) => ({
|
|
336
|
+
name: NonEmptyString255(
|
|
337
|
+
handler.name
|
|
344
338
|
)
|
|
345
|
-
)
|
|
339
|
+
}))
|
|
340
|
+
)
|
|
346
341
|
)
|
|
347
342
|
}
|
package/src/api/routing/match.ts
CHANGED
|
@@ -114,7 +114,9 @@ export function match<
|
|
|
114
114
|
const route = HttpRouter.makeRoute(
|
|
115
115
|
requestHandler.Request.method,
|
|
116
116
|
requestHandler.Request.path,
|
|
117
|
-
handler
|
|
117
|
+
handler,
|
|
118
|
+
undefined,
|
|
119
|
+
requestHandler.Request.method !== "GET" // we don't want commands to be interruptible
|
|
118
120
|
)
|
|
119
121
|
// TODO
|
|
120
122
|
// rdesc.push(makeRouteDescriptor(
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { annotateLogscoped, flatMap } from "@effect-app/core/Effect"
|
|
2
2
|
import { dual } from "@effect-app/core/Function"
|
|
3
|
-
import { RequestFiberSet } from "@effect-app/infra-adapters/RequestFiberSet"
|
|
3
|
+
import type { RequestFiberSet } from "@effect-app/infra-adapters/RequestFiberSet"
|
|
4
4
|
import { reportError } from "@effect-app/infra/errorReporter"
|
|
5
|
-
import type { StringId } from "@effect-app/schema"
|
|
6
5
|
import { NonEmptyString2k } from "@effect-app/schema"
|
|
7
6
|
import { subHours } from "date-fns"
|
|
7
|
+
import type { Fiber } from "effect-app"
|
|
8
8
|
import { Cause, Context, copy, Duration, Effect, Exit, Layer, Option, S, Schedule } from "effect-app"
|
|
9
9
|
import type { OperationProgress } from "effect-app/Operations"
|
|
10
10
|
import { Failure, Operation, OperationId, Success } from "effect-app/Operations"
|
|
@@ -122,14 +122,19 @@ export class Operations extends Context.TagMakeId("effect-app/Operations", make)
|
|
|
122
122
|
static readonly Live = this.CleanupLive.pipe(Layer.provideMerge(this.toLayer()))
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
export interface RunningOperation<A, E> {
|
|
126
|
+
id: OperationId
|
|
127
|
+
fiber: Fiber.RuntimeFiber<A, E>
|
|
128
|
+
}
|
|
129
|
+
|
|
125
130
|
export const forkOperation: {
|
|
126
131
|
(title: NonEmptyString2k): <R, E, A>(
|
|
127
132
|
self: Effect<A, E, R>
|
|
128
|
-
) => Effect<
|
|
133
|
+
) => Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>
|
|
129
134
|
<R, E, A>(
|
|
130
135
|
self: Effect<A, E, R>,
|
|
131
136
|
title: NonEmptyString2k
|
|
132
|
-
): Effect<
|
|
137
|
+
): Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>
|
|
133
138
|
} = dual(
|
|
134
139
|
2,
|
|
135
140
|
<R, E, A>(self: Effect<A, E, R>, title: NonEmptyString2k) =>
|
|
@@ -141,11 +146,12 @@ export const forkOperation: {
|
|
|
141
146
|
.pipe(
|
|
142
147
|
Scope.extend(scope),
|
|
143
148
|
Effect
|
|
144
|
-
.
|
|
149
|
+
.flatMap((id) =>
|
|
145
150
|
forkDaemonReportRequestUnexpected(Scope.use(
|
|
146
151
|
self.pipe(Effect.withSpan(title)),
|
|
147
152
|
scope
|
|
148
153
|
))
|
|
154
|
+
.pipe(Effect.map((fiber): RunningOperation<A, E> => ({ fiber, id })))
|
|
149
155
|
)
|
|
150
156
|
)
|
|
151
157
|
)
|
|
@@ -158,11 +164,11 @@ export function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<A,
|
|
|
158
164
|
export const forkOperation2: {
|
|
159
165
|
(title: NonEmptyString2k): <R, E, A>(
|
|
160
166
|
self: (opId: OperationId) => Effect<A, E, R>
|
|
161
|
-
) => Effect<
|
|
167
|
+
) => Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>
|
|
162
168
|
<R, E, A>(
|
|
163
169
|
self: (opId: OperationId) => Effect<A, E, R>,
|
|
164
170
|
title: NonEmptyString2k
|
|
165
|
-
): Effect<
|
|
171
|
+
): Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>
|
|
166
172
|
} = dual(
|
|
167
173
|
2,
|
|
168
174
|
<R, E, A>(self: (opId: OperationId) => Effect<A, E, R>, title: NonEmptyString2k) =>
|
|
@@ -175,11 +181,12 @@ export const forkOperation2: {
|
|
|
175
181
|
.pipe(
|
|
176
182
|
Scope.extend(scope),
|
|
177
183
|
Effect
|
|
178
|
-
.
|
|
184
|
+
.flatMap((id) =>
|
|
179
185
|
forkDaemonReportRequestUnexpected(Scope.use(
|
|
180
186
|
self(id).pipe(Effect.withSpan(title)),
|
|
181
187
|
scope
|
|
182
188
|
))
|
|
189
|
+
.pipe(Effect.map((fiber): RunningOperation<A, E> => ({ fiber, id })))
|
|
183
190
|
)
|
|
184
191
|
)
|
|
185
192
|
))
|
|
@@ -189,7 +196,11 @@ export function forkOperationWithEffect<R, R2, E, E2, A, A2>(
|
|
|
189
196
|
self: (id: OperationId) => Effect<A, E, R>,
|
|
190
197
|
fnc: (id: OperationId) => Effect<A2, E2, R2>,
|
|
191
198
|
title: NonEmptyString2k
|
|
192
|
-
): Effect<
|
|
199
|
+
): Effect<
|
|
200
|
+
RunningOperation<A, E>,
|
|
201
|
+
never,
|
|
202
|
+
Operations | RequestFiberSet | Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>
|
|
203
|
+
> {
|
|
193
204
|
return Effect.flatMap(Operations, (Operations) =>
|
|
194
205
|
Effect.flatMap(
|
|
195
206
|
Scope.make(),
|
|
@@ -198,14 +209,15 @@ export function forkOperationWithEffect<R, R2, E, E2, A, A2>(
|
|
|
198
209
|
.register(title)
|
|
199
210
|
.pipe(
|
|
200
211
|
Scope.extend(scope),
|
|
201
|
-
Effect.
|
|
212
|
+
Effect.flatMap((id) =>
|
|
202
213
|
forkDaemonReportRequestUnexpected(Scope.use(
|
|
203
|
-
self(
|
|
214
|
+
self(id).pipe(Effect.withSpan(title)),
|
|
204
215
|
scope
|
|
205
216
|
))
|
|
217
|
+
.pipe(Effect.map((fiber): RunningOperation<A, E> => ({ fiber, id })))
|
|
206
218
|
),
|
|
207
|
-
Effect.tap((
|
|
208
|
-
Effect.interruptible(fnc(
|
|
219
|
+
Effect.tap(({ id }) =>
|
|
220
|
+
Effect.interruptible(fnc(id)).pipe(
|
|
209
221
|
Effect.forkScoped,
|
|
210
222
|
Scope.extend(scope)
|
|
211
223
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// packages/infra/vitest.config.ts
|
|
2
|
-
import { defineConfig } from "file:///Users/patrickroza/pj/effect-app/libs/node_modules/.pnpm/vite@5.2.6_@types+node@20.11.30/node_modules/vite/dist/node/index.js";
|
|
3
|
-
|
|
4
|
-
// vite.config.base.ts
|
|
5
|
-
import path from "path";
|
|
6
|
-
import fs from "fs";
|
|
7
|
-
var __vite_injected_original_dirname = "/Users/patrickroza/pj/effect-app/libs";
|
|
8
|
-
function makeConfig(dirName) {
|
|
9
|
-
const prefix = path.resolve(__vite_injected_original_dirname, "packages");
|
|
10
|
-
const packages = fs.readdirSync(prefix).map((f) => prefix + "/" + f).filter((f) => fs.lstatSync(f).isDirectory());
|
|
11
|
-
const cfg = {
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
-
//plugins: [autoImport],
|
|
14
|
-
test: {
|
|
15
|
-
include: ["./test/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
|
|
16
|
-
reporters: "verbose",
|
|
17
|
-
globals: true
|
|
18
|
-
},
|
|
19
|
-
resolve: {
|
|
20
|
-
alias: packages.reduce((acc, cur) => {
|
|
21
|
-
acc[JSON.parse(fs.readFileSync(cur + "/package.json", "utf-8")).name] = path.resolve(cur, cur.endsWith("core") ? "dist" : "src");
|
|
22
|
-
return acc;
|
|
23
|
-
}, {})
|
|
24
|
-
// "@effect-app/core/Prelude": path.join(__dirname, "packages/core/src/Prelude.code.ts")
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
console.log(cfg);
|
|
28
|
-
return cfg;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// packages/infra/vitest.config.ts
|
|
32
|
-
var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/infra";
|
|
33
|
-
var vitest_config_default = defineConfig(makeConfig(__vite_injected_original_dirname2));
|
|
34
|
-
export {
|
|
35
|
-
vitest_config_default as default
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50cyIsICJ2aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoX19kaXJuYW1lKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSBcInVucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGVcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVzdC9jb25maWdcIlxuXG4vLyBjb25zdCBhdXRvSW1wb3J0ID0gQXV0b0ltcG9ydCh7XG4vLyAgIGR0czogXCIuL3Rlc3QvYXV0by1pbXBvcnRzLmQudHNcIixcbi8vICAgLy8gaW5jbHVkZTogW1xuLy8gICAvLyAgIC9cXC50ZXN0XFwuW3RqXXN4PyQvIC8vIC50cywgLnRzeCwgLmpzLCAuanN4XG4vLyAgIC8vIF0sXG4vLyAgIGltcG9ydHM6IFtcbi8vICAgICBcInZpdGVzdFwiXG4vLyAgIF1cbi8vIH0pXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1ha2VDb25maWcoZGlyTmFtZT86IHN0cmluZykge1xuICBjb25zdCBwcmVmaXggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcInBhY2thZ2VzXCIpXG4gIGNvbnN0IHBhY2thZ2VzID0gZnMucmVhZGRpclN5bmMocHJlZml4KS5tYXAoZiA9PiBwcmVmaXggKyBcIi9cIiArIGYpLmZpbHRlcihmID0+IGZzLmxzdGF0U3luYyhmKS5pc0RpcmVjdG9yeSgpIClcbiAgY29uc3QgY2ZnID0ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgLy9wbHVnaW5zOiBbYXV0b0ltcG9ydF0sXG4gICAgdGVzdDoge1xuICAgICAgaW5jbHVkZTogIFtcIi4vdGVzdC8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczogcGFja2FnZXMucmVkdWNlKChhY2MsIGN1cikgPT4geyAvLyB3b3JrYXJvdW5kIGZvciAvUHJlbHVkZSBpc3N1ZVxuICAgICAgYWNjW0pTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGN1ciArIFwiL3BhY2thZ2UuanNvblwiLCBcInV0Zi04XCIpKS5uYW1lXSA9IHBhdGgucmVzb2x2ZShjdXIsIGN1ci5lbmRzV2l0aChcImNvcmVcIikgPyBcImRpc3RcIiA6IFwic3JjXCIpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwgeyB9KSAvLyBcIkBlZmZlY3QtYXBwL2NvcmUvUHJlbHVkZVwiOiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcInBhY2thZ2VzL2NvcmUvc3JjL1ByZWx1ZGUuY29kZS50c1wiKVxuICB9XG4gIH1cbiAgY29uc29sZS5sb2coY2ZnKVxuICByZXR1cm4gY2ZnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixPQUFPLFVBQVU7QUFDakIsT0FBTyxRQUFRO0FBRmYsSUFBTSxtQ0FBbUM7QUFnQjFCLFNBQVIsV0FBNEIsU0FBa0I7QUFDbkQsUUFBTSxTQUFTLEtBQUssUUFBUSxrQ0FBVyxVQUFVO0FBQ2pELFFBQU0sV0FBVyxHQUFHLFlBQVksTUFBTSxFQUFFLElBQUksT0FBSyxTQUFTLE1BQU0sQ0FBQyxFQUFFLE9BQU8sT0FBSyxHQUFHLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBRTtBQUM3RyxRQUFNLE1BQU07QUFBQTtBQUFBO0FBQUEsSUFHVixNQUFNO0FBQUEsTUFDSixTQUFVLENBQUMsa0RBQWtEO0FBQUEsTUFDN0QsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLE9BQU8sU0FBUyxPQUFPLENBQUMsS0FBSyxRQUFRO0FBQ3JDLFlBQUksS0FBSyxNQUFNLEdBQUcsYUFBYSxNQUFNLGlCQUFpQixPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxRQUFRLEtBQUssSUFBSSxTQUFTLE1BQU0sSUFBSSxTQUFTLEtBQUs7QUFDL0gsZUFBTztBQUFBLE1BQ1QsR0FBRyxDQUFFLENBQUM7QUFBQTtBQUFBLElBQ1I7QUFBQSxFQUNBO0FBQ0EsVUFBUSxJQUFJLEdBQUc7QUFDZixTQUFPO0FBQ1Q7OztBRHBDQSxJQUFNQSxvQ0FBbUM7QUFJekMsSUFBTyx3QkFBUSxhQUFhLFdBQVdDLGlDQUFTLENBQUM7IiwKICAibmFtZXMiOiBbIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIiwgIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIl0KfQo=
|