effect-app 4.0.0-beta.7 → 4.0.0-beta.71
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 +313 -0
- package/dist/Config/SecretURL.js +2 -2
- package/dist/Config.d.ts +7 -0
- package/dist/Config.d.ts.map +1 -0
- package/dist/Config.js +6 -0
- package/dist/ConfigProvider.d.ts +39 -0
- package/dist/ConfigProvider.d.ts.map +1 -0
- package/dist/ConfigProvider.js +42 -0
- package/dist/Context.d.ts +40 -0
- package/dist/Context.d.ts.map +1 -0
- package/dist/Context.js +66 -0
- package/dist/Effect.d.ts +8 -7
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +3 -2
- package/dist/Layer.d.ts +5 -4
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +1 -1
- package/dist/Operations.d.ts +61 -25
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Pure.d.ts +2 -2
- package/dist/Pure.d.ts.map +1 -1
- package/dist/Pure.js +13 -13
- package/dist/Schema/Class.d.ts +39 -1
- package/dist/Schema/Class.d.ts.map +1 -1
- package/dist/Schema/Class.js +89 -12
- package/dist/Schema/SpecialJsonSchema.d.ts +21 -0
- package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
- package/dist/Schema/SpecialJsonSchema.js +59 -0
- package/dist/Schema/SpecialOpenApi.d.ts +32 -0
- package/dist/Schema/SpecialOpenApi.d.ts.map +1 -0
- package/dist/Schema/SpecialOpenApi.js +123 -0
- package/dist/Schema/brand.d.ts +8 -5
- package/dist/Schema/brand.d.ts.map +1 -1
- package/dist/Schema/brand.js +1 -1
- package/dist/Schema/email.d.ts.map +1 -1
- package/dist/Schema/email.js +9 -4
- package/dist/Schema/ext.d.ts +81 -45
- package/dist/Schema/ext.d.ts.map +1 -1
- package/dist/Schema/ext.js +94 -49
- package/dist/Schema/moreStrings.d.ts +6 -6
- package/dist/Schema/moreStrings.d.ts.map +1 -1
- package/dist/Schema/moreStrings.js +14 -9
- package/dist/Schema/numbers.d.ts +11 -11
- package/dist/Schema/numbers.d.ts.map +1 -1
- package/dist/Schema/numbers.js +10 -9
- package/dist/Schema/phoneNumber.d.ts.map +1 -1
- package/dist/Schema/phoneNumber.js +8 -3
- package/dist/Schema/strings.d.ts +4 -4
- package/dist/Schema/strings.d.ts.map +1 -1
- package/dist/Schema.d.ts +22 -55
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +43 -64
- package/dist/client/apiClientFactory.d.ts +3 -3
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/apiClientFactory.js +14 -15
- package/dist/client/errors.d.ts +17 -9
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +35 -10
- package/dist/client/makeClient.d.ts +13 -12
- package/dist/client/makeClient.d.ts.map +1 -1
- package/dist/client/makeClient.js +5 -2
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +5 -5
- package/dist/ids.d.ts +3 -3
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +3 -2
- package/dist/index.d.ts +3 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -9
- package/dist/middleware.d.ts +2 -2
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +3 -3
- package/dist/rpc/MiddlewareMaker.d.ts +4 -3
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
- package/dist/rpc/MiddlewareMaker.js +7 -6
- package/dist/rpc/RpcContextMap.d.ts +2 -2
- package/dist/rpc/RpcContextMap.d.ts.map +1 -1
- package/dist/rpc/RpcContextMap.js +4 -4
- package/dist/rpc/RpcMiddleware.d.ts +4 -3
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.js +1 -1
- package/dist/utils/gen.d.ts +1 -1
- package/dist/utils/gen.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +2 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -3
- package/dist/utils.d.ts +18 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +24 -5
- package/package.json +29 -17
- package/src/Config/SecretURL.ts +1 -1
- package/src/Config.ts +14 -0
- package/src/ConfigProvider.ts +48 -0
- package/src/{ServiceMap.ts → Context.ts} +57 -64
- package/src/Effect.ts +11 -9
- package/src/Layer.ts +5 -4
- package/src/Pure.ts +17 -18
- package/src/Schema/Class.ts +114 -16
- package/src/Schema/SpecialJsonSchema.ts +69 -0
- package/src/Schema/SpecialOpenApi.ts +130 -0
- package/src/Schema/brand.ts +13 -7
- package/src/Schema/email.ts +10 -2
- package/src/Schema/ext.ts +182 -80
- package/src/Schema/moreStrings.ts +20 -10
- package/src/Schema/numbers.ts +9 -8
- package/src/Schema/phoneNumber.ts +8 -1
- package/src/Schema.ts +79 -103
- package/src/client/apiClientFactory.ts +18 -18
- package/src/client/errors.ts +46 -12
- package/src/client/makeClient.ts +32 -12
- package/src/http/Request.ts +7 -4
- package/src/ids.ts +3 -2
- package/src/index.ts +3 -11
- package/src/middleware.ts +2 -2
- package/src/rpc/MiddlewareMaker.ts +8 -7
- package/src/rpc/RpcContextMap.ts +6 -5
- package/src/rpc/RpcMiddleware.ts +5 -4
- package/src/utils/gen.ts +1 -1
- package/src/utils/logger.ts +2 -2
- package/src/utils.ts +26 -4
- package/test/dist/moreStrings.test.d.ts.map +1 -0
- package/test/dist/rpc.test.d.ts.map +1 -1
- package/test/dist/secretURL.test.d.ts.map +1 -0
- package/test/dist/special.test.d.ts.map +1 -0
- package/test/moreStrings.test.ts +17 -0
- package/test/rpc.test.ts +26 -5
- package/test/schema.test.ts +396 -3
- package/test/secretURL.test.ts +157 -0
- package/test/special.test.ts +732 -0
- package/test/utils.test.ts +1 -1
- package/tsconfig.base.json +0 -1
- package/tsconfig.json +0 -1
- package/dist/ServiceMap.d.ts +0 -44
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js +0 -91
- package/dist/Struct.d.ts +0 -44
- package/dist/Struct.d.ts.map +0 -1
- package/dist/Struct.js +0 -29
- package/src/Struct.ts +0 -54
package/dist/utils.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-function-type */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-redundant-type-constituents */
|
|
4
|
-
import { Effect, Exit, Fiber, Option, Record } from "effect";
|
|
4
|
+
import { Cause, Effect, Exit, Fiber, Option, Record } from "effect";
|
|
5
5
|
import { dual } from "effect/Function";
|
|
6
|
-
import { isFunction } from "effect/Predicate";
|
|
6
|
+
import { isFunction, isObject } from "effect/Predicate";
|
|
7
7
|
import * as Result from "effect/Result";
|
|
8
8
|
import { identity, pipe } from "./Function.js";
|
|
9
9
|
// codegen:start {preset: barrel, include: ./utils/*.ts, nodir: false }
|
|
@@ -370,8 +370,8 @@ export const runtimeFiberAsPromise = (fiber, signal) => {
|
|
|
370
370
|
resolve(exit.value);
|
|
371
371
|
}
|
|
372
372
|
else {
|
|
373
|
-
//
|
|
374
|
-
reject(exit.cause);
|
|
373
|
+
// eslint-disable-next-line
|
|
374
|
+
reject(Cause.squash(exit.cause));
|
|
375
375
|
}
|
|
376
376
|
}));
|
|
377
377
|
};
|
|
@@ -387,4 +387,23 @@ export const wrapEffect = (m) => {
|
|
|
387
387
|
}
|
|
388
388
|
return () => Effect.succeed(m);
|
|
389
389
|
};
|
|
390
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0RBQStEO0FBQy9ELHVEQUF1RDtBQUN2RCxzRUFBc0U7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUV2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc5Qyx1RUFBdUU7QUFDdkUsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWM7QUFFZCxjQUFjLGNBQWMsQ0FBQTtBQUU1QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQW1HbkQsU0FBUyxHQUFHLENBQUMsR0FBUSxFQUFFLElBQVMsRUFBRSxZQUFZLEdBQUcsU0FBUztJQUN4RCwyRkFBMkY7SUFDM0YsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUM3QixNQUFNO1NBQ0gsU0FBUztTQUNULEtBQUs7U0FDTCxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztTQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ2YsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcs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
|
|
390
|
+
const genConstructor = (function* () { }).constructor;
|
|
391
|
+
/**
|
|
392
|
+
* @example
|
|
393
|
+
* ```ts
|
|
394
|
+
* import { Utils } from "effect"
|
|
395
|
+
*
|
|
396
|
+
* function* generatorFn() {
|
|
397
|
+
* yield 1
|
|
398
|
+
* yield 2
|
|
399
|
+
* }
|
|
400
|
+
*
|
|
401
|
+
* console.log(Utils.isGeneratorFunction(generatorFn)) // true
|
|
402
|
+
* console.log(Utils.isGeneratorFunction(() => {})) // false
|
|
403
|
+
* ```
|
|
404
|
+
*
|
|
405
|
+
* @category predicates
|
|
406
|
+
* @since 3.11.0
|
|
407
|
+
*/
|
|
408
|
+
export const isGeneratorFunction = (u) => isObject(u) && u.constructor === genConstructor;
|
|
409
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0RBQStEO0FBQy9ELHVEQUF1RDtBQUN2RCxzRUFBc0U7QUFDdEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3ZELE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBRXZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRzlDLHVFQUF1RTtBQUN2RSxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMscUJBQXFCLENBQUE7QUFDbkMsY0FBYztBQUVkLGNBQWMsY0FBYyxDQUFBO0FBRTVCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBbUduRCxTQUFTLEdBQUcsQ0FBQyxHQUFRLEVBQUUsSUFBUyxFQUFFLFlBQVksR0FBRyxTQUFTO0lBQ3hELDJGQUEyRjtJQUMzRixNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQzdCLE1BQU07U0FDSCxTQUFTO1NBQ1QsS0FBSztTQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1NBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcs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
|
package/package.json
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-app",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.71",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@tsconfig/strictest": "^2.0.8",
|
|
8
8
|
"date-fns": "^4.1.0",
|
|
9
|
-
"nanoid": "^5.1.
|
|
9
|
+
"nanoid": "^5.1.7",
|
|
10
10
|
"path-parser": "^6.1.0",
|
|
11
11
|
"query-string": "^9.3.1",
|
|
12
12
|
"ts-pattern": "^5.9.0",
|
|
13
13
|
"ts-toolbelt": "^9.6.0",
|
|
14
14
|
"uuid": "^13.0.0",
|
|
15
|
-
"validator": "^13.15.
|
|
15
|
+
"validator": "^13.15.35"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@faker-js/faker": "^8.4.1",
|
|
19
|
-
"@types/node": "25.
|
|
19
|
+
"@types/node": "25.5.2",
|
|
20
20
|
"@types/uuid": "^11.0.0",
|
|
21
21
|
"@types/validator": "^13.15.10",
|
|
22
|
-
"fast-check": "~4.
|
|
23
|
-
"typescript": "~
|
|
24
|
-
"vitest": "^4.
|
|
25
|
-
"@effect-app/eslint-shared-config": "0.5.7-beta.
|
|
22
|
+
"fast-check": "~4.6.0",
|
|
23
|
+
"typescript": "~6.0.2",
|
|
24
|
+
"vitest": "^4.1.3",
|
|
25
|
+
"@effect-app/eslint-shared-config": "0.5.7-beta.7"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"effect": "^4.0.0-beta.
|
|
28
|
+
"effect": "^4.0.0-beta.46"
|
|
29
29
|
},
|
|
30
30
|
"typesVersions": {
|
|
31
31
|
"*": {
|
|
@@ -47,10 +47,22 @@
|
|
|
47
47
|
"types": "./dist/Chunk.d.ts",
|
|
48
48
|
"default": "./dist/Chunk.js"
|
|
49
49
|
},
|
|
50
|
+
"./Config": {
|
|
51
|
+
"types": "./dist/Config.d.ts",
|
|
52
|
+
"default": "./dist/Config.js"
|
|
53
|
+
},
|
|
50
54
|
"./Config/SecretURL": {
|
|
51
55
|
"types": "./dist/Config/SecretURL.d.ts",
|
|
52
56
|
"default": "./dist/Config/SecretURL.js"
|
|
53
57
|
},
|
|
58
|
+
"./ConfigProvider": {
|
|
59
|
+
"types": "./dist/ConfigProvider.d.ts",
|
|
60
|
+
"default": "./dist/ConfigProvider.js"
|
|
61
|
+
},
|
|
62
|
+
"./Context": {
|
|
63
|
+
"types": "./dist/Context.d.ts",
|
|
64
|
+
"default": "./dist/Context.js"
|
|
65
|
+
},
|
|
54
66
|
"./Effect": {
|
|
55
67
|
"types": "./dist/Effect.d.ts",
|
|
56
68
|
"default": "./dist/Effect.js"
|
|
@@ -99,6 +111,14 @@
|
|
|
99
111
|
"types": "./dist/Schema/Methods.d.ts",
|
|
100
112
|
"default": "./dist/Schema/Methods.js"
|
|
101
113
|
},
|
|
114
|
+
"./Schema/SpecialJsonSchema": {
|
|
115
|
+
"types": "./dist/Schema/SpecialJsonSchema.d.ts",
|
|
116
|
+
"default": "./dist/Schema/SpecialJsonSchema.js"
|
|
117
|
+
},
|
|
118
|
+
"./Schema/SpecialOpenApi": {
|
|
119
|
+
"types": "./dist/Schema/SpecialOpenApi.d.ts",
|
|
120
|
+
"default": "./dist/Schema/SpecialOpenApi.js"
|
|
121
|
+
},
|
|
102
122
|
"./Schema/brand": {
|
|
103
123
|
"types": "./dist/Schema/brand.d.ts",
|
|
104
124
|
"default": "./dist/Schema/brand.js"
|
|
@@ -131,18 +151,10 @@
|
|
|
131
151
|
"types": "./dist/Schema/strings.d.ts",
|
|
132
152
|
"default": "./dist/Schema/strings.js"
|
|
133
153
|
},
|
|
134
|
-
"./ServiceMap": {
|
|
135
|
-
"types": "./dist/ServiceMap.d.ts",
|
|
136
|
-
"default": "./dist/ServiceMap.js"
|
|
137
|
-
},
|
|
138
154
|
"./Set": {
|
|
139
155
|
"types": "./dist/Set.d.ts",
|
|
140
156
|
"default": "./dist/Set.js"
|
|
141
157
|
},
|
|
142
|
-
"./Struct": {
|
|
143
|
-
"types": "./dist/Struct.d.ts",
|
|
144
|
-
"default": "./dist/Struct.js"
|
|
145
|
-
},
|
|
146
158
|
"./TypeTest": {
|
|
147
159
|
"types": "./dist/TypeTest.d.ts",
|
|
148
160
|
"default": "./dist/TypeTest.js"
|
package/src/Config/SecretURL.ts
CHANGED
|
@@ -73,5 +73,5 @@ export const value: (self: SecretURL) => string = internal.value
|
|
|
73
73
|
export const unsafeWipe: (self: SecretURL) => void = internal.unsafeWipe
|
|
74
74
|
|
|
75
75
|
export const secretURL = (name?: string): Config.Config<SecretURL> => {
|
|
76
|
-
return Config.map(Config.
|
|
76
|
+
return Config.map(Config.nonEmptyString(name), fromString)
|
|
77
77
|
}
|
package/src/Config.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type Config, make } from "effect/Config"
|
|
2
|
+
import { dual } from "effect/Function"
|
|
3
|
+
|
|
4
|
+
import * as ConfigProvider from "./ConfigProvider.js"
|
|
5
|
+
|
|
6
|
+
export const nested: {
|
|
7
|
+
(name: string): <A>(self: Config<A>) => Config<A>
|
|
8
|
+
<A>(self: Config<A>, name: string): Config<A>
|
|
9
|
+
} = dual(
|
|
10
|
+
2,
|
|
11
|
+
<A>(self: Config<A>, name: string): Config<A> => make((provider) => self.parse(ConfigProvider.nested(provider, name)))
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
export * from "effect/Config"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type ConfigProvider, make, type Path } from "effect/ConfigProvider"
|
|
2
|
+
import { dual } from "effect/Function"
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Scopes a provider so that all lookups are prefixed with the given path
|
|
6
|
+
* segments.
|
|
7
|
+
*
|
|
8
|
+
* When to use:
|
|
9
|
+
* - Namespacing config under a prefix like `"app"` or `"database"`.
|
|
10
|
+
* - Reusing the same provider shape for multiple sub-configs.
|
|
11
|
+
*
|
|
12
|
+
* Accepts a single string or a full `Path` array. The prefix is prepended
|
|
13
|
+
* *after* any `mapInput` transformation runs, so ordering matters when
|
|
14
|
+
* composing with {@link mapInput} or {@link constantCase}.
|
|
15
|
+
*
|
|
16
|
+
* Supports both data-last and data-first calling conventions.
|
|
17
|
+
*
|
|
18
|
+
* **Example** (Nesting under a prefix)
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { ConfigProvider } from "effect"
|
|
22
|
+
*
|
|
23
|
+
* const provider = ConfigProvider.fromEnv({
|
|
24
|
+
* env: { APP_HOST: "localhost", APP_PORT: "3000" }
|
|
25
|
+
* })
|
|
26
|
+
*
|
|
27
|
+
* // Lookups for ["HOST"] now resolve to ["APP", "HOST"]
|
|
28
|
+
* const scoped = ConfigProvider.nested(provider, "APP")
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @see {@link mapInput} – for arbitrary path transformations
|
|
32
|
+
*
|
|
33
|
+
* @category Combinators
|
|
34
|
+
* @since 4.0.0
|
|
35
|
+
*/
|
|
36
|
+
export const nested: {
|
|
37
|
+
(prefix: string | Path): (self: ConfigProvider) => ConfigProvider
|
|
38
|
+
(self: ConfigProvider, prefix: string | Path): ConfigProvider
|
|
39
|
+
} = dual(
|
|
40
|
+
2,
|
|
41
|
+
(self: ConfigProvider, prefix: string | Path): ConfigProvider => {
|
|
42
|
+
let path: Path = typeof prefix === "string" ? [prefix] : prefix
|
|
43
|
+
if (self.mapInput) path = self.mapInput(path)
|
|
44
|
+
return make(self.get, self.mapInput, self.prefix ? [...self.prefix, ...path] : path)
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
export * from "effect/ConfigProvider"
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
/**
|
|
3
|
-
* We're doing the long way around here with assignTag, TagBase & TagBaseTagged,
|
|
4
|
-
* because there's a typescript compiler issue where it will complain about Equal.symbol, and Hash.symbol not being accessible.
|
|
5
|
-
* https://github.com/microsoft/TypeScript/issues/52644
|
|
6
|
-
*/
|
|
7
2
|
|
|
8
3
|
import { type Effect, Layer, type Scope, type Types } from "effect"
|
|
9
|
-
import * as
|
|
10
|
-
import { Yieldable } from "./Effect.js"
|
|
4
|
+
import * as CTX from "effect/Context"
|
|
5
|
+
import { type Yieldable } from "./Effect.js"
|
|
11
6
|
|
|
12
|
-
export * from "effect/
|
|
7
|
+
export * from "effect/Context"
|
|
13
8
|
|
|
14
|
-
export interface Opaque<Self extends object, in out Shape extends object>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
export interface Opaque<Self extends object, in out Shape extends object>
|
|
10
|
+
extends CTX.Key<Self, Self>, Yieldable<Opaque<Self, Shape>, Self, never, Self>
|
|
11
|
+
{
|
|
12
|
+
of(this: void, self: Shape): Self
|
|
13
|
+
serviceMap(self: Shape): CTX.Context<Self>
|
|
18
14
|
// a version that leverages the Shape -> Self conversion
|
|
19
15
|
toLayer: <E, R>(
|
|
20
16
|
eff: Effect.Effect<Shape, E, R>
|
|
@@ -24,11 +20,11 @@ export interface Opaque<Self extends object, in out Shape extends object> extend
|
|
|
24
20
|
}
|
|
25
21
|
|
|
26
22
|
// export interface OpaqueMake<Self extends object, in out Shape extends object, E, R>
|
|
27
|
-
// extends
|
|
23
|
+
// extends CTX.Service<Self, Self>
|
|
28
24
|
// {
|
|
29
25
|
// // temp while sorting out https://github.com/Effect-TS/effect-smol/pull/1534
|
|
30
26
|
// of(self: Shape): Self
|
|
31
|
-
// serviceMap2(self: Shape):
|
|
27
|
+
// serviceMap2(self: Shape): CTX.Context<Self>
|
|
32
28
|
// // a version that leverages the Shape -> Self conversion
|
|
33
29
|
// toLayer: {
|
|
34
30
|
// <E, R>(
|
|
@@ -43,7 +39,7 @@ export function assignTag<Identifier extends object, Shape extends object = Iden
|
|
|
43
39
|
creationError?: Error
|
|
44
40
|
) {
|
|
45
41
|
return <S extends object>(cls: S): S & Opaque<Identifier, Shape> => {
|
|
46
|
-
const tag =
|
|
42
|
+
const tag = CTX.Service<Identifier, Shape>(key)
|
|
47
43
|
let fields = tag
|
|
48
44
|
if (Reflect.ownKeys(cls).includes("key")) {
|
|
49
45
|
const { key, ...rest } = tag
|
|
@@ -66,54 +62,51 @@ export function assignTag<Identifier extends object, Shape extends object = Iden
|
|
|
66
62
|
}
|
|
67
63
|
}
|
|
68
64
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
: Effect.Effect<Type[k], never, Self>
|
|
80
|
-
}
|
|
81
|
-
: {}
|
|
65
|
+
/** Accessor for a service method that returns a plain value. Wraps via `useSync`. */
|
|
66
|
+
export const accessFn = <
|
|
67
|
+
Self extends object,
|
|
68
|
+
Shape extends Record<PropertyKey, any>,
|
|
69
|
+
K extends keyof Shape
|
|
70
|
+
>(
|
|
71
|
+
Tag: Opaque<Self, Shape>,
|
|
72
|
+
key: K
|
|
73
|
+
): Shape[K] extends (...args: [...infer Args]) => infer A ? (...args: Readonly<Args>) => Effect.Effect<A, never, Self>
|
|
74
|
+
: never => ((...args: Array<any>) => Tag.useSync((s: any) => s[key](...args))) as any
|
|
82
75
|
|
|
83
|
-
/**
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if (prop === "use") {
|
|
95
|
-
// @ts-expect-error abc
|
|
96
|
-
return (body) => (Tag as any).use(body)
|
|
97
|
-
}
|
|
98
|
-
if (prop in Tag) {
|
|
99
|
-
return (Tag as any)[prop]
|
|
100
|
-
}
|
|
101
|
-
if (cache.has(prop)) {
|
|
102
|
-
return cache.get(prop)
|
|
103
|
-
}
|
|
104
|
-
const fn = (...args: Array<any>) => (Tag as any).use((s: any) => s[prop](...args))
|
|
105
|
-
const cn = (Tag as any).use((s: any) => s[prop])
|
|
106
|
-
// @effect-diagnostics effect/floatingEffect:off
|
|
107
|
-
Object.assign(fn, cn)
|
|
108
|
-
Object.setPrototypeOf(fn, Object.getPrototypeOf(cn))
|
|
109
|
-
cache.set(prop, fn)
|
|
110
|
-
return fn
|
|
111
|
-
}
|
|
112
|
-
})
|
|
113
|
-
return done
|
|
114
|
-
}
|
|
76
|
+
/** Accessor for a service method that returns an Effect. Delegates via `use`. */
|
|
77
|
+
export const accessEffectFn = <
|
|
78
|
+
Self extends object,
|
|
79
|
+
Shape extends Record<PropertyKey, any>,
|
|
80
|
+
K extends keyof Shape
|
|
81
|
+
>(
|
|
82
|
+
Tag: Opaque<Self, Shape>,
|
|
83
|
+
key: K
|
|
84
|
+
): Shape[K] extends (...args: [...infer Args]) => Effect.Effect<infer A, infer E, infer R>
|
|
85
|
+
? (...args: Readonly<Args>) => Effect.Effect<A, E, Self | R>
|
|
86
|
+
: never => ((...args: Array<any>) => Tag.use((s: any) => s[key](...args))) as any
|
|
115
87
|
|
|
116
|
-
|
|
88
|
+
/** Accessor for a service property (constant). Wraps via `useSync`. */
|
|
89
|
+
export const accessCn = <
|
|
90
|
+
Self extends object,
|
|
91
|
+
Shape extends Record<PropertyKey, any>,
|
|
92
|
+
K extends keyof Shape
|
|
93
|
+
>(
|
|
94
|
+
Tag: Opaque<Self, Shape>,
|
|
95
|
+
key: K
|
|
96
|
+
): Effect.Effect<Shape[K], never, Self> => Tag.useSync((s) => s[key]) as any
|
|
97
|
+
|
|
98
|
+
/** Accessor for a service property that is an Effect. Delegates via `use`. */
|
|
99
|
+
export const accessEffectCn = <
|
|
100
|
+
Self extends object,
|
|
101
|
+
Shape extends Record<PropertyKey, any>,
|
|
102
|
+
K extends keyof Shape
|
|
103
|
+
>(
|
|
104
|
+
Tag: Opaque<Self, Shape>,
|
|
105
|
+
key: K
|
|
106
|
+
): Shape[K] extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, Self | R>
|
|
107
|
+
: never => Tag.use((s: any) => s[key]) as any
|
|
108
|
+
|
|
109
|
+
export const TypeId = "~Context.Opaque"
|
|
117
110
|
|
|
118
111
|
// export function Opaque<const Key extends string>(key: Key) {
|
|
119
112
|
// return <Identifier extends object, Shape extends object>() => {
|
|
@@ -151,7 +144,7 @@ export const Opaque: {
|
|
|
151
144
|
id: Identifier,
|
|
152
145
|
options?: {
|
|
153
146
|
readonly make: ((...args: Args) => Effect.Effect<Shape, E, R>) | Effect.Effect<Shape, E, R> | undefined
|
|
154
|
-
}
|
|
147
|
+
}
|
|
155
148
|
) =>
|
|
156
149
|
& OpaqueClass<Self, Identifier, Shape>
|
|
157
150
|
& ([Types.unassigned] extends [R] ? unknown
|
|
@@ -178,10 +171,10 @@ export const Opaque: {
|
|
|
178
171
|
>
|
|
179
172
|
& { readonly make: Make }
|
|
180
173
|
} = () => (id: string, options: any) => {
|
|
181
|
-
const svc =
|
|
174
|
+
const svc = CTX.Service()(id, options) as any
|
|
182
175
|
return Object.assign(svc, {
|
|
183
176
|
toLayer: (eff: Effect.Effect<any, any, any>) => {
|
|
184
|
-
return Layer.effect(svc
|
|
177
|
+
return Layer.effect(svc, eff)
|
|
185
178
|
}
|
|
186
179
|
})
|
|
187
180
|
}
|
package/src/Effect.ts
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
/* eslint-disable prefer-destructuring */
|
|
3
3
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4
4
|
|
|
5
|
-
import { Effect, Option, Ref
|
|
5
|
+
import { Effect, Option, Ref } from "effect"
|
|
6
6
|
import * as Def from "effect/Deferred"
|
|
7
7
|
import * as Fiber from "effect/Fiber"
|
|
8
8
|
import type { Scope } from "effect/Scope"
|
|
9
9
|
import type { Semaphore } from "effect/Semaphore"
|
|
10
|
+
import type * as Context from "./Context.js"
|
|
10
11
|
import { curry } from "./Function.js"
|
|
11
12
|
import { typedKeysOf } from "./utils.js"
|
|
12
13
|
|
|
@@ -116,10 +117,10 @@ export function joinAll<E, A>(fibers: Iterable<Fiber.Fiber<A, E>>): Effect.Effec
|
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
type ServiceA<T> = T extends Effect.Effect<infer S, any, any> ? S
|
|
119
|
-
: T extends
|
|
120
|
+
: T extends Context.Service<any, infer S> ? S
|
|
120
121
|
: never
|
|
121
122
|
type ServiceR<T> = T extends Effect.Effect<any, any, infer R> ? R
|
|
122
|
-
: T extends
|
|
123
|
+
: T extends Context.Service<infer I, any> ? I
|
|
123
124
|
: never
|
|
124
125
|
type ServiceE<T> = T extends Effect.Effect<any, infer E, any> ? E : never
|
|
125
126
|
// type Values<T> = T extends { [s: string]: infer S } ? ServiceA<S> : never
|
|
@@ -144,24 +145,25 @@ export interface EffectUnunified<R, E, A> extends Effect.Effect<R, E, A> {}
|
|
|
144
145
|
|
|
145
146
|
export type LowerFirst<S extends PropertyKey> = S extends `${infer First}${infer Rest}` ? `${Lowercase<First>}${Rest}`
|
|
146
147
|
: S
|
|
147
|
-
export type LowerServices<T extends Record<string,
|
|
148
|
+
export type LowerServices<T extends Record<string, Context.Service<any, any> | Effect.Effect<any, any, any>>> = {
|
|
148
149
|
[key in keyof T as LowerFirst<key>]: ServiceA<T[key]>
|
|
149
150
|
}
|
|
150
151
|
|
|
151
|
-
export function allLower<T extends Record<string,
|
|
152
|
+
export function allLower<T extends Record<string, Context.Service<any, any> | Effect.Effect<any, any, any>>>(
|
|
152
153
|
services: T
|
|
153
154
|
) {
|
|
154
155
|
return Effect.all(
|
|
155
156
|
typedKeysOf(services).reduce((prev, cur) => {
|
|
156
|
-
const svc = services[cur]
|
|
157
|
-
prev[((cur as string)[0]!.toLowerCase() + (cur as string).slice(1)) as unknown as LowerFirst<typeof cur>] =
|
|
157
|
+
const svc = services[cur]!
|
|
158
|
+
prev[((cur as string)[0]!.toLowerCase() + (cur as string).slice(1)) as unknown as LowerFirst<typeof cur>] =
|
|
159
|
+
"asEffect" in svc ? svc.asEffect() : svc
|
|
158
160
|
return prev
|
|
159
161
|
}, {} as any),
|
|
160
162
|
{ concurrency: "inherit" }
|
|
161
163
|
) as any as Effect.Effect<LowerServices<T>, ValuesE<T>, ValuesR<T>>
|
|
162
164
|
}
|
|
163
165
|
|
|
164
|
-
export function allLowerWith<T extends Record<string,
|
|
166
|
+
export function allLowerWith<T extends Record<string, Context.Service<any, any> | Effect.Effect<any, any, any>>, A>(
|
|
165
167
|
services: T,
|
|
166
168
|
fn: (services: LowerServices<T>) => A
|
|
167
169
|
) {
|
|
@@ -169,7 +171,7 @@ export function allLowerWith<T extends Record<string, ServiceMap.Service<any, an
|
|
|
169
171
|
}
|
|
170
172
|
|
|
171
173
|
export function allLowerWithEffect<
|
|
172
|
-
T extends Record<string,
|
|
174
|
+
T extends Record<string, Context.Service<any, any> | Effect.Effect<any, any, any>>,
|
|
173
175
|
R,
|
|
174
176
|
E,
|
|
175
177
|
A
|
package/src/Layer.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { type Array, Effect, Layer, type Scope, type
|
|
1
|
+
import { type Array, Effect, Layer, type Scope, type Types } from "effect"
|
|
2
2
|
import { type Yieldable } from "effect/Effect"
|
|
3
3
|
import { dual } from "effect/Function"
|
|
4
|
+
import type * as Context from "./Context.js"
|
|
4
5
|
import { type EffectGenUtils } from "./utils/gen.js"
|
|
5
6
|
|
|
6
7
|
export * from "effect/Layer"
|
|
@@ -17,7 +18,7 @@ type MakeGenNo<S> = {
|
|
|
17
18
|
readonly make: () => Generator<unknown, S>
|
|
18
19
|
}
|
|
19
20
|
type MakeErr<Opts> = Opts extends { make: () => any } ? EffectGenUtils.Error<Opts["make"]> : never
|
|
20
|
-
type MakeContext<Opts> = Opts extends { make: () => any } ? EffectGenUtils.
|
|
21
|
+
type MakeContext<Opts> = Opts extends { make: () => any } ? EffectGenUtils.Context<Opts["make"]> : never
|
|
21
22
|
|
|
22
23
|
type DependenciesOpt = { dependencies?: Array.NonEmptyReadonlyArray<Layer.Any> }
|
|
23
24
|
type Dependencies = { dependencies: Array.NonEmptyReadonlyArray<Layer.Any> }
|
|
@@ -41,12 +42,12 @@ type PackedOrUnpackedLayer<I, Opts> = Opts extends Dependencies ? PackedLayers<I
|
|
|
41
42
|
|
|
42
43
|
export const make: {
|
|
43
44
|
<I, S>(
|
|
44
|
-
tag:
|
|
45
|
+
tag: Context.Service<I, S>
|
|
45
46
|
): <Opts extends Make<Types.NoInfer<S>, any, any>>(
|
|
46
47
|
options: Opts
|
|
47
48
|
) => PackedOrUnpackedLayer<I, Opts>
|
|
48
49
|
<I, S, Opts extends Make<Types.NoInfer<S>, any, any>>(
|
|
49
|
-
tag:
|
|
50
|
+
tag: Context.Service<I, S>,
|
|
50
51
|
options: Opts
|
|
51
52
|
): PackedOrUnpackedLayer<I, Opts>
|
|
52
53
|
} = dual(2, (tag, options) => {
|