@effect/platform 0.13.13 → 0.13.15
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/Error.d.ts +1 -1
- package/Error.d.ts.map +1 -1
- package/Http/ClientResponse.d.ts +12 -0
- package/Http/ClientResponse.d.ts.map +1 -1
- package/Http/ClientResponse.js +7 -0
- package/Http/ClientResponse.js.map +1 -1
- package/KeyValueStore.d.ts +160 -0
- package/KeyValueStore.d.ts.map +1 -0
- package/KeyValueStore.js +58 -0
- package/KeyValueStore.js.map +1 -0
- package/internal/http/clientResponse.js +12 -1
- package/internal/http/clientResponse.js.map +1 -1
- package/internal/keyValueStore.d.ts +2 -0
- package/internal/keyValueStore.d.ts.map +1 -0
- package/internal/keyValueStore.js +129 -0
- package/internal/keyValueStore.js.map +1 -0
- package/mjs/Http/ClientResponse.mjs +5 -0
- package/mjs/Http/ClientResponse.mjs.map +1 -1
- package/mjs/KeyValueStore.mjs +42 -0
- package/mjs/KeyValueStore.mjs.map +1 -0
- package/mjs/internal/http/clientResponse.mjs +10 -0
- package/mjs/internal/http/clientResponse.mjs.map +1 -1
- package/mjs/internal/keyValueStore.mjs +113 -0
- package/mjs/internal/keyValueStore.mjs.map +1 -0
- package/package.json +1 -1
- package/src/Error.ts +1 -1
- package/src/Http/ClientResponse.ts +19 -0
- package/src/KeyValueStore.ts +207 -0
- package/src/internal/http/clientResponse.ts +24 -0
- package/src/internal/keyValueStore.ts +176 -0
package/Error.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export declare namespace PlatformError {
|
|
|
28
28
|
interface Base extends Data.Case {
|
|
29
29
|
readonly [PlatformErrorTypeId]: typeof PlatformErrorTypeId;
|
|
30
30
|
readonly _tag: string;
|
|
31
|
-
readonly module: "Command" | "FileSystem" | "Path";
|
|
31
|
+
readonly module: "Command" | "FileSystem" | "Path" | "KeyValueStore";
|
|
32
32
|
readonly method: string;
|
|
33
33
|
readonly message: string;
|
|
34
34
|
}
|
package/Error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["./src/Error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,mBAAmB,CAAA;AAG9C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAqC,CAAA;AAE9E;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW,CAAA;AAErD;;GAEG;AACH,yBAAiB,aAAa,CAAC;IAC7B;;;OAGG;IACH,UAAiB,IAAK,SAAQ,IAAI,CAAC,IAAI;QACrC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAA;QAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["./src/Error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,mBAAmB,CAAA;AAG9C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAqC,CAAA;AAE9E;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW,CAAA;AAErD;;GAEG;AACH,yBAAiB,aAAa,CAAC;IAC7B;;;OAGG;IACH,UAAiB,IAAK,SAAQ,IAAI,CAAC,IAAI;QACrC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAA;QAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,eAAe,CAAA;QACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KACzB;IAED;;OAEG;IACH,KAAY,cAAc,GAAG,mBAAmB,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAA;CAC5E;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,IAAI;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,WAAkC,CAAA;AAExH;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,aAAa,GACb,MAAM,GACN,aAAa,GACb,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,eAAe,GACf,SAAS,GACT,YAAY,GACZ,WAAW,CAAA;AAEf;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,IAAI;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3C;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,WAAkC,CAAA"}
|
package/Http/ClientResponse.d.ts
CHANGED
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
import type * as Effect from "@effect/io/Effect";
|
|
5
5
|
import type * as Error from "@effect/platform/Http/ClientError";
|
|
6
6
|
import type * as ClientRequest from "@effect/platform/Http/ClientRequest";
|
|
7
|
+
import type * as Headers from "@effect/platform/Http/Headers";
|
|
7
8
|
import type * as IncomingMessage from "@effect/platform/Http/IncomingMessage";
|
|
9
|
+
import type * as ParseResult from "@effect/schema/ParseResult";
|
|
10
|
+
import type * as Schema from "@effect/schema/Schema";
|
|
8
11
|
export {
|
|
9
12
|
/**
|
|
10
13
|
* @since 1.0.0
|
|
@@ -45,4 +48,13 @@ export interface ClientResponse extends IncomingMessage.IncomingMessage<Error.Re
|
|
|
45
48
|
* @category constructors
|
|
46
49
|
*/
|
|
47
50
|
export declare const fromWeb: (request: ClientRequest.ClientRequest, source: Response) => ClientResponse;
|
|
51
|
+
/**
|
|
52
|
+
* @since 1.0.0
|
|
53
|
+
* @category schema
|
|
54
|
+
*/
|
|
55
|
+
export declare const schemaJson: <I extends {
|
|
56
|
+
readonly status?: number;
|
|
57
|
+
readonly headers?: Headers.Headers;
|
|
58
|
+
readonly body?: unknown;
|
|
59
|
+
}, A>(schema: Schema.Schema<I, A>) => (self: ClientResponse) => Effect.Effect<never, Error.ResponseError | ParseResult.ParseError, A>;
|
|
48
60
|
//# sourceMappingURL=ClientResponse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientResponse.d.ts","sourceRoot":"","sources":["../src/Http/ClientResponse.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,KAAK,KAAK,MAAM,mCAAmC,CAAA;AAC/D,OAAO,KAAK,KAAK,aAAa,MAAM,qCAAqC,CAAA;AACzE,OAAO,KAAK,KAAK,eAAe,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"ClientResponse.d.ts","sourceRoot":"","sources":["../src/Http/ClientResponse.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,KAAK,KAAK,MAAM,mCAAmC,CAAA;AAC/D,OAAO,KAAK,KAAK,aAAa,MAAM,qCAAqC,CAAA;AACzE,OAAO,KAAK,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,KAAK,eAAe,MAAM,uCAAuC,CAAA;AAE7E,OAAO,KAAK,KAAK,WAAW,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAEpD,OAAO;AACL;;;GAGG;AACH,cAAc;AACd;;;GAGG;AACH,mBAAmB;AACnB;;;GAGG;AACH,aAAa,EACd,MAAM,uCAAuC,CAAA;AAE9C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAwB,CAAA;AAEpD;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC;IAC1F,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;CACvE;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,KAAK,cAAiC,CAAA;AAEnH;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,CACvB,CAAC,SAAS;IACR,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB,EACD,CAAC,EAED,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KACxB,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,CAC9E,CAAA"}
|
package/Http/ClientResponse.js
CHANGED
|
@@ -22,6 +22,7 @@ Object.defineProperty(exports, "schemaHeaders", {
|
|
|
22
22
|
return _IncomingMessage.schemaHeaders;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
+
exports.schemaJson = void 0;
|
|
25
26
|
var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/internal/http/clientResponse"));
|
|
26
27
|
var _IncomingMessage = /*#__PURE__*/require("@effect/platform/Http/IncomingMessage");
|
|
27
28
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -37,5 +38,11 @@ const TypeId = internal.TypeId;
|
|
|
37
38
|
*/
|
|
38
39
|
exports.TypeId = TypeId;
|
|
39
40
|
const fromWeb = internal.fromWeb;
|
|
41
|
+
/**
|
|
42
|
+
* @since 1.0.0
|
|
43
|
+
* @category schema
|
|
44
|
+
*/
|
|
40
45
|
exports.fromWeb = fromWeb;
|
|
46
|
+
const schemaJson = internal.schemaJson;
|
|
47
|
+
exports.schemaJson = schemaJson;
|
|
41
48
|
//# sourceMappingURL=ClientResponse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientResponse.js","names":["internal","_interopRequireWildcard","require","_IncomingMessage","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","exports","fromWeb"],"sources":["../src/Http/ClientResponse.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"ClientResponse.js","names":["internal","_interopRequireWildcard","require","_IncomingMessage","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","exports","fromWeb","schemaJson"],"sources":["../src/Http/ClientResponse.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAIA,IAAAC,gBAAA,gBAAAD,OAAA;AAgB8C,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAE9C;;;;AAIO,MAAMW,MAAM,GAAkB1B,QAAQ,CAAC0B,MAAM;AAkBpD;;;;AAAAC,OAAA,CAAAD,MAAA,GAAAA,MAAA;AAIO,MAAME,OAAO,GAA+E5B,QAAQ,CAAC4B,OAAO;AAEnH;;;;AAAAD,OAAA,CAAAC,OAAA,GAAAA,OAAA;AAIO,MAAMC,UAAU,GAUrB7B,QAAQ,CAAC6B,UAAU;AAAAF,OAAA,CAAAE,UAAA,GAAAA,UAAA"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Context from "@effect/data/Context";
|
|
5
|
+
import type * as Option from "@effect/data/Option";
|
|
6
|
+
import type * as Effect from "@effect/io/Effect";
|
|
7
|
+
import type * as Layer from "@effect/io/Layer";
|
|
8
|
+
import type * as PlatformError from "@effect/platform/Error";
|
|
9
|
+
import type * as FileSystem from "@effect/platform/FileSystem";
|
|
10
|
+
import type * as Path from "@effect/platform/Path";
|
|
11
|
+
import type * as ParseResult from "@effect/schema/ParseResult";
|
|
12
|
+
import type * as Schema from "@effect/schema/Schema";
|
|
13
|
+
/**
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category type id
|
|
16
|
+
*/
|
|
17
|
+
export declare const TypeId: unique symbol;
|
|
18
|
+
/**
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
* @category type id
|
|
21
|
+
*/
|
|
22
|
+
export type TypeId = typeof TypeId;
|
|
23
|
+
/**
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
* @category models
|
|
26
|
+
*/
|
|
27
|
+
export interface KeyValueStore {
|
|
28
|
+
readonly [TypeId]: TypeId;
|
|
29
|
+
/**
|
|
30
|
+
* Returns the value of the specified key if it exists.
|
|
31
|
+
*/
|
|
32
|
+
readonly get: (key: string) => Effect.Effect<never, PlatformError.PlatformError, Option.Option<string>>;
|
|
33
|
+
/**
|
|
34
|
+
* Sets the value of the specified key.
|
|
35
|
+
*/
|
|
36
|
+
readonly set: (key: string, value: string) => Effect.Effect<never, PlatformError.PlatformError, void>;
|
|
37
|
+
/**
|
|
38
|
+
* Removes the specified key.
|
|
39
|
+
*/
|
|
40
|
+
readonly remove: (key: string) => Effect.Effect<never, PlatformError.PlatformError, void>;
|
|
41
|
+
/**
|
|
42
|
+
* Removes all entries.
|
|
43
|
+
*/
|
|
44
|
+
readonly clear: Effect.Effect<never, PlatformError.PlatformError, void>;
|
|
45
|
+
/**
|
|
46
|
+
* Returns the number of entries.
|
|
47
|
+
*/
|
|
48
|
+
readonly size: Effect.Effect<never, PlatformError.PlatformError, number>;
|
|
49
|
+
/**
|
|
50
|
+
* Updates the value of the specified key if it exists.
|
|
51
|
+
*/
|
|
52
|
+
readonly modify: (key: string, f: (value: string) => string) => Effect.Effect<never, PlatformError.PlatformError, Option.Option<string>>;
|
|
53
|
+
/**
|
|
54
|
+
* Returns true if the KeyValueStore contains the specified key.
|
|
55
|
+
*/
|
|
56
|
+
readonly has: (key: string) => Effect.Effect<never, PlatformError.PlatformError, boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Checks if the KeyValueStore contains any entries.
|
|
59
|
+
*/
|
|
60
|
+
readonly isEmpty: Effect.Effect<never, PlatformError.PlatformError, boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* Create a SchemaStore for the specified schema.
|
|
63
|
+
*/
|
|
64
|
+
readonly forSchema: <I, A>(schema: Schema.Schema<I, A>) => SchemaStore<A>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @since 1.0.0
|
|
68
|
+
*/
|
|
69
|
+
export declare namespace KeyValueStore {
|
|
70
|
+
/**
|
|
71
|
+
* @since 1.0.0
|
|
72
|
+
*/
|
|
73
|
+
type AnyStore = KeyValueStore | SchemaStore<any>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @since 1.0.0
|
|
77
|
+
* @category tags
|
|
78
|
+
*/
|
|
79
|
+
export declare const KeyValueStore: Context.Tag<KeyValueStore, KeyValueStore>;
|
|
80
|
+
/**
|
|
81
|
+
* @since 1.0.0
|
|
82
|
+
* @category constructors
|
|
83
|
+
*/
|
|
84
|
+
export declare const make: (impl: Omit<KeyValueStore, typeof TypeId | "has" | "modify" | "isEmpty" | "forSchema"> & Partial<KeyValueStore>) => KeyValueStore;
|
|
85
|
+
/**
|
|
86
|
+
* @since 1.0.0
|
|
87
|
+
* @category combinators
|
|
88
|
+
*/
|
|
89
|
+
export declare const prefix: {
|
|
90
|
+
(prefix: string): <S extends KeyValueStore.AnyStore>(self: S) => S;
|
|
91
|
+
<S extends KeyValueStore.AnyStore>(self: S, prefix: string): S;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* @since 1.0.0
|
|
95
|
+
* @category layers
|
|
96
|
+
*/
|
|
97
|
+
export declare const layerMemory: Layer.Layer<never, never, KeyValueStore>;
|
|
98
|
+
/**
|
|
99
|
+
* @since 1.0.0
|
|
100
|
+
* @category layers
|
|
101
|
+
*/
|
|
102
|
+
export declare const layerFileSystem: (directory: string) => Layer.Layer<FileSystem.FileSystem | Path.Path, PlatformError.PlatformError, KeyValueStore>;
|
|
103
|
+
/**
|
|
104
|
+
* @since 1.0.0
|
|
105
|
+
* @category type id
|
|
106
|
+
*/
|
|
107
|
+
export declare const SchemaStoreTypeId: unique symbol;
|
|
108
|
+
/**
|
|
109
|
+
* @since 1.0.0
|
|
110
|
+
* @category type id
|
|
111
|
+
*/
|
|
112
|
+
export type SchemaStoreTypeId = typeof SchemaStoreTypeId;
|
|
113
|
+
/**
|
|
114
|
+
* @since 1.0.0
|
|
115
|
+
* @category models
|
|
116
|
+
*/
|
|
117
|
+
export interface SchemaStore<A> {
|
|
118
|
+
readonly [SchemaStoreTypeId]: SchemaStoreTypeId;
|
|
119
|
+
/**
|
|
120
|
+
* Returns the value of the specified key if it exists.
|
|
121
|
+
*/
|
|
122
|
+
readonly get: (key: string) => Effect.Effect<never, PlatformError.PlatformError | ParseResult.ParseError, Option.Option<A>>;
|
|
123
|
+
/**
|
|
124
|
+
* Sets the value of the specified key.
|
|
125
|
+
*/
|
|
126
|
+
readonly set: (key: string, value: A) => Effect.Effect<never, PlatformError.PlatformError | ParseResult.ParseError, void>;
|
|
127
|
+
/**
|
|
128
|
+
* Removes the specified key.
|
|
129
|
+
*/
|
|
130
|
+
readonly remove: (key: string) => Effect.Effect<never, PlatformError.PlatformError, void>;
|
|
131
|
+
/**
|
|
132
|
+
* Removes all entries.
|
|
133
|
+
*/
|
|
134
|
+
readonly clear: Effect.Effect<never, PlatformError.PlatformError, void>;
|
|
135
|
+
/**
|
|
136
|
+
* Returns the number of entries.
|
|
137
|
+
*/
|
|
138
|
+
readonly size: Effect.Effect<never, PlatformError.PlatformError, number>;
|
|
139
|
+
/**
|
|
140
|
+
* Updates the value of the specified key if it exists.
|
|
141
|
+
*/
|
|
142
|
+
readonly modify: (key: string, f: (value: A) => A) => Effect.Effect<never, PlatformError.PlatformError | ParseResult.ParseError, Option.Option<A>>;
|
|
143
|
+
/**
|
|
144
|
+
* Returns true if the KeyValueStore contains the specified key.
|
|
145
|
+
*/
|
|
146
|
+
readonly has: (key: string) => Effect.Effect<never, PlatformError.PlatformError, boolean>;
|
|
147
|
+
/**
|
|
148
|
+
* Checks if the KeyValueStore contains any entries.
|
|
149
|
+
*/
|
|
150
|
+
readonly isEmpty: Effect.Effect<never, PlatformError.PlatformError, boolean>;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* @since 1.0.0
|
|
154
|
+
* @category layers
|
|
155
|
+
*/
|
|
156
|
+
export declare const layerSchema: <I, A>(schema: Schema.Schema<I, A>, tagIdentifier?: unknown) => {
|
|
157
|
+
readonly tag: Context.Tag<SchemaStore<A>, SchemaStore<A>>;
|
|
158
|
+
readonly layer: Layer.Layer<KeyValueStore, never, SchemaStore<A>>;
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=KeyValueStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyValueStore.d.ts","sourceRoot":"","sources":["./src/KeyValueStore.ts"],"names":[],"mappings":"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"}
|
package/KeyValueStore.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.prefix = exports.make = exports.layerSchema = exports.layerMemory = exports.layerFileSystem = exports.TypeId = exports.SchemaStoreTypeId = exports.KeyValueStore = void 0;
|
|
7
|
+
var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/internal/keyValueStore"));
|
|
8
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
9
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @category type id
|
|
13
|
+
*/
|
|
14
|
+
const TypeId = internal.TypeId;
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category tags
|
|
18
|
+
*/
|
|
19
|
+
exports.TypeId = TypeId;
|
|
20
|
+
const KeyValueStore = internal.keyValueStoreTag;
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category constructors
|
|
24
|
+
*/
|
|
25
|
+
exports.KeyValueStore = KeyValueStore;
|
|
26
|
+
const make = internal.make;
|
|
27
|
+
/**
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category combinators
|
|
30
|
+
*/
|
|
31
|
+
exports.make = make;
|
|
32
|
+
const prefix = internal.prefix;
|
|
33
|
+
/**
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
* @category layers
|
|
36
|
+
*/
|
|
37
|
+
exports.prefix = prefix;
|
|
38
|
+
const layerMemory = internal.layerMemory;
|
|
39
|
+
/**
|
|
40
|
+
* @since 1.0.0
|
|
41
|
+
* @category layers
|
|
42
|
+
*/
|
|
43
|
+
exports.layerMemory = layerMemory;
|
|
44
|
+
const layerFileSystem = internal.layerFileSystem;
|
|
45
|
+
/**
|
|
46
|
+
* @since 1.0.0
|
|
47
|
+
* @category type id
|
|
48
|
+
*/
|
|
49
|
+
exports.layerFileSystem = layerFileSystem;
|
|
50
|
+
const SchemaStoreTypeId = internal.SchemaStoreTypeId;
|
|
51
|
+
/**
|
|
52
|
+
* @since 1.0.0
|
|
53
|
+
* @category layers
|
|
54
|
+
*/
|
|
55
|
+
exports.SchemaStoreTypeId = SchemaStoreTypeId;
|
|
56
|
+
const layerSchema = internal.layerSchema;
|
|
57
|
+
exports.layerSchema = layerSchema;
|
|
58
|
+
//# sourceMappingURL=KeyValueStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyValueStore.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","exports","KeyValueStore","keyValueStoreTag","make","prefix","layerMemory","layerFileSystem","SchemaStoreTypeId","layerSchema"],"sources":["./src/KeyValueStore.ts"],"sourcesContent":[null],"mappings":";;;;;;AASA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAmE,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAKnE;;;;AAIO,MAAMW,MAAM,GAAkBzB,QAAQ,CAACyB,MAAM;AAyEpD;;;;AAAAC,OAAA,CAAAD,MAAA,GAAAA,MAAA;AAIO,MAAME,aAAa,GAA8C3B,QAAQ,CAAC4B,gBAAgB;AAEjG;;;;AAAAF,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAIO,MAAME,IAAI,GAEI7B,QAAQ,CAAC6B,IAAI;AAElC;;;;AAAAH,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAIO,MAAMC,MAAM,GAGf9B,QAAQ,CAAC8B,MAAM;AAEnB;;;;AAAAJ,OAAA,CAAAI,MAAA,GAAAA,MAAA;AAIO,MAAMC,WAAW,GAA6C/B,QAAQ,CAAC+B,WAAW;AAEzF;;;;AAAAL,OAAA,CAAAK,WAAA,GAAAA,WAAA;AAIO,MAAMC,eAAe,GAG1BhC,QAAQ,CAACgC,eAAe;AAE1B;;;;AAAAN,OAAA,CAAAM,eAAA,GAAAA,eAAA;AAIO,MAAMC,iBAAiB,GAAkBjC,QAAQ,CAACiC,iBAAiB;AA+D1E;;;;AAAAP,OAAA,CAAAO,iBAAA,GAAAA,iBAAA;AAIO,MAAMC,WAAW,GAMpBlC,QAAQ,CAACkC,WAAW;AAAAR,OAAA,CAAAQ,WAAA,GAAAA,WAAA"}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.fromWeb = exports.TypeId = void 0;
|
|
6
|
+
exports.schemaJson = exports.fromWeb = exports.TypeId = void 0;
|
|
7
7
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Effect"));
|
|
8
8
|
var Headers = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/Headers"));
|
|
9
9
|
var IncomingMessage = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/IncomingMessage"));
|
|
10
10
|
var UrlParams = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/UrlParams"));
|
|
11
11
|
var internalError = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/internal/http/clientError"));
|
|
12
|
+
var Schema = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/Schema"));
|
|
12
13
|
var Stream = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/stream/Stream"));
|
|
13
14
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -101,4 +102,14 @@ class ClientResponseImpl {
|
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
IncomingMessage.TypeId;
|
|
105
|
+
/** @internal */
|
|
106
|
+
const schemaJson = schema => {
|
|
107
|
+
const parse = Schema.parse(schema);
|
|
108
|
+
return self => Effect.flatMap(self.json, body => parse({
|
|
109
|
+
status: self.status,
|
|
110
|
+
headers: self.headers,
|
|
111
|
+
body
|
|
112
|
+
}));
|
|
113
|
+
};
|
|
114
|
+
exports.schemaJson = schemaJson;
|
|
104
115
|
//# sourceMappingURL=clientResponse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientResponse.js","names":["Effect","_interopRequireWildcard","require","Headers","IncomingMessage","UrlParams","internalError","Stream","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","Symbol","for","exports","fromWeb","request","source","ClientResponseImpl","constructor","status","headers","fromInput","stream","body","fromReadableStream","_","responseError","response","reason","error","fail","json","tryPromise","try","catch","text","urlParamsBody","flatMap","URLSearchParams","formData","arrayBuffer"],"sources":["../../src/internal/http/clientResponse.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,MAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAIA,IAAAC,OAAA,gBAAAF,uBAAA,eAAAC,OAAA;AACA,IAAAE,eAAA,gBAAAH,uBAAA,eAAAC,OAAA;AACA,IAAAG,SAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AACA,IAAAI,aAAA,gBAAAL,uBAAA,eAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"clientResponse.js","names":["Effect","_interopRequireWildcard","require","Headers","IncomingMessage","UrlParams","internalError","Schema","Stream","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","Symbol","for","exports","fromWeb","request","source","ClientResponseImpl","constructor","status","headers","fromInput","stream","body","fromReadableStream","_","responseError","response","reason","error","fail","json","tryPromise","try","catch","text","urlParamsBody","flatMap","URLSearchParams","formData","arrayBuffer","schemaJson","schema","parse","self"],"sources":["../../src/internal/http/clientResponse.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyValueStore.d.ts","sourceRoot":"","sources":["../src/internal/keyValueStore.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.prefix = exports.make = exports.layerSchema = exports.layerMemory = exports.layerFileSystem = exports.keyValueStoreTag = exports.TypeId = exports.SchemaStoreTypeId = void 0;
|
|
7
|
+
var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Context"));
|
|
8
|
+
var _Function = /*#__PURE__*/require("@effect/data/Function");
|
|
9
|
+
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Option"));
|
|
10
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Effect"));
|
|
11
|
+
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Layer"));
|
|
12
|
+
var FileSystem = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/FileSystem"));
|
|
13
|
+
var Path = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Path"));
|
|
14
|
+
var Schema = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/Schema"));
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
/** @internal */
|
|
18
|
+
const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore");
|
|
19
|
+
/** @internal */
|
|
20
|
+
exports.TypeId = TypeId;
|
|
21
|
+
const keyValueStoreTag = /*#__PURE__*/Context.Tag(TypeId);
|
|
22
|
+
/** @internal */
|
|
23
|
+
exports.keyValueStoreTag = keyValueStoreTag;
|
|
24
|
+
const make = impl => keyValueStoreTag.of({
|
|
25
|
+
[TypeId]: TypeId,
|
|
26
|
+
has: key => Effect.map(impl.get(key), Option.isSome),
|
|
27
|
+
isEmpty: Effect.map(impl.size, size => size === 0),
|
|
28
|
+
modify: (key, f) => Effect.flatMap(impl.get(key), o => {
|
|
29
|
+
if (Option.isNone(o)) {
|
|
30
|
+
return Effect.succeedNone;
|
|
31
|
+
}
|
|
32
|
+
const newValue = f(o.value);
|
|
33
|
+
return Effect.as(impl.set(key, newValue), Option.some(newValue));
|
|
34
|
+
}),
|
|
35
|
+
forSchema(schema) {
|
|
36
|
+
return makeSchemaStore(this, schema);
|
|
37
|
+
},
|
|
38
|
+
...impl
|
|
39
|
+
});
|
|
40
|
+
/** @internal */
|
|
41
|
+
exports.make = make;
|
|
42
|
+
const prefix = /*#__PURE__*/(0, _Function.dual)(2, (self, prefix) => ({
|
|
43
|
+
...self,
|
|
44
|
+
get: key => self.get(`${prefix}${key}`),
|
|
45
|
+
set: (key, value) => self.set(`${prefix}${key}`, value),
|
|
46
|
+
remove: key => self.remove(`${prefix}${key}`),
|
|
47
|
+
has: key => self.has(`${prefix}${key}`),
|
|
48
|
+
modify: (key, f) => self.modify(`${prefix}${key}`, f)
|
|
49
|
+
}));
|
|
50
|
+
/** @internal */
|
|
51
|
+
exports.prefix = prefix;
|
|
52
|
+
const SchemaStoreTypeId = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore/SchemaStore");
|
|
53
|
+
/** @internal */
|
|
54
|
+
exports.SchemaStoreTypeId = SchemaStoreTypeId;
|
|
55
|
+
const makeSchemaStore = (store, schema) => {
|
|
56
|
+
const jsonSchema = Schema.compose(Schema.ParseJson, schema);
|
|
57
|
+
const parse = Schema.parse(jsonSchema);
|
|
58
|
+
const encode = Schema.encode(jsonSchema);
|
|
59
|
+
const get = key => Effect.flatMap(store.get(key), Option.match({
|
|
60
|
+
onNone: () => Effect.succeedNone,
|
|
61
|
+
onSome: value => Effect.asSome(parse(value))
|
|
62
|
+
}));
|
|
63
|
+
const set = (key, value) => Effect.flatMap(encode(value), json => store.set(key, json));
|
|
64
|
+
const modify = (key, f) => Effect.flatMap(get(key), o => {
|
|
65
|
+
if (Option.isNone(o)) {
|
|
66
|
+
return Effect.succeedNone;
|
|
67
|
+
}
|
|
68
|
+
const newValue = f(o.value);
|
|
69
|
+
return Effect.as(set(key, newValue), Option.some(newValue));
|
|
70
|
+
});
|
|
71
|
+
return {
|
|
72
|
+
[SchemaStoreTypeId]: SchemaStoreTypeId,
|
|
73
|
+
get,
|
|
74
|
+
set,
|
|
75
|
+
modify,
|
|
76
|
+
remove: store.remove,
|
|
77
|
+
clear: store.clear,
|
|
78
|
+
size: store.size,
|
|
79
|
+
has: store.has,
|
|
80
|
+
isEmpty: store.isEmpty
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
/** @internal */
|
|
84
|
+
const layerMemory = /*#__PURE__*/Layer.sync(keyValueStoreTag, () => {
|
|
85
|
+
const store = new Map();
|
|
86
|
+
return make({
|
|
87
|
+
get: key => Effect.sync(() => Option.fromNullable(store.get(key))),
|
|
88
|
+
set: (key, value) => Effect.sync(() => store.set(key, value)),
|
|
89
|
+
remove: key => Effect.sync(() => store.delete(key)),
|
|
90
|
+
clear: Effect.sync(() => store.clear()),
|
|
91
|
+
size: Effect.sync(() => store.size)
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
/** @internal */
|
|
95
|
+
exports.layerMemory = layerMemory;
|
|
96
|
+
const layerFileSystem = directory => Layer.effect(keyValueStoreTag, Effect.gen(function* (_) {
|
|
97
|
+
const fs = yield* _(FileSystem.FileSystem);
|
|
98
|
+
const path = yield* _(Path.Path);
|
|
99
|
+
const keyPath = key => path.join(directory, encodeURIComponent(key));
|
|
100
|
+
if (!(yield* _(fs.exists(directory)))) {
|
|
101
|
+
yield* _(fs.makeDirectory(directory, {
|
|
102
|
+
recursive: true
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
return make({
|
|
106
|
+
get: key => Effect.catchTag("SystemError", sysError => sysError.reason === "NotFound" ? Effect.succeed(Option.none()) : Effect.fail(sysError))(Effect.map(fs.readFileString(keyPath(key)), Option.some)),
|
|
107
|
+
set: (key, value) => fs.writeFileString(keyPath(key), value),
|
|
108
|
+
remove: key => fs.remove(keyPath(key)),
|
|
109
|
+
has: key => fs.exists(keyPath(key)),
|
|
110
|
+
clear: Effect.zipRight(fs.remove(directory, {
|
|
111
|
+
recursive: true
|
|
112
|
+
}), fs.makeDirectory(directory, {
|
|
113
|
+
recursive: true
|
|
114
|
+
})),
|
|
115
|
+
size: Effect.map(fs.readDirectory(directory), files => files.length)
|
|
116
|
+
});
|
|
117
|
+
}));
|
|
118
|
+
/** @internal */
|
|
119
|
+
exports.layerFileSystem = layerFileSystem;
|
|
120
|
+
const layerSchema = (schema, tagIdentifier) => {
|
|
121
|
+
const tag = Context.Tag(tagIdentifier);
|
|
122
|
+
const layer = Layer.effect(tag, Effect.map(keyValueStoreTag, store => store.forSchema(schema)));
|
|
123
|
+
return {
|
|
124
|
+
tag,
|
|
125
|
+
layer
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
exports.layerSchema = layerSchema;
|
|
129
|
+
//# sourceMappingURL=keyValueStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyValueStore.js","names":["Context","_interopRequireWildcard","require","_Function","Option","Effect","Layer","FileSystem","Path","Schema","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","Symbol","for","exports","keyValueStoreTag","Tag","make","impl","of","map","isSome","isEmpty","size","modify","f","flatMap","o","isNone","succeedNone","newValue","value","as","some","forSchema","schema","makeSchemaStore","prefix","dual","self","remove","SchemaStoreTypeId","store","jsonSchema","compose","ParseJson","parse","encode","match","onNone","onSome","asSome","json","clear","layerMemory","sync","Map","fromNullable","delete","layerFileSystem","directory","effect","gen","_","fs","path","keyPath","join","encodeURIComponent","exists","makeDirectory","recursive","catchTag","sysError","reason","succeed","none","fail","readFileString","writeFileString","zipRight","readDirectory","files","length","layerSchema","tagIdentifier","tag","layer"],"sources":["../src/internal/keyValueStore.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -25,4 +25,9 @@ export const TypeId = internal.TypeId;
|
|
|
25
25
|
* @category constructors
|
|
26
26
|
*/
|
|
27
27
|
export const fromWeb = internal.fromWeb;
|
|
28
|
+
/**
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
* @category schema
|
|
31
|
+
*/
|
|
32
|
+
export const schemaJson = internal.schemaJson;
|
|
28
33
|
//# sourceMappingURL=ClientResponse.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientResponse.mjs","names":["internal","schemaBodyJson","schemaBodyUrlParams","schemaHeaders","TypeId","fromWeb"],"sources":["../../src/Http/ClientResponse.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"ClientResponse.mjs","names":["internal","schemaBodyJson","schemaBodyUrlParams","schemaHeaders","TypeId","fromWeb","schemaJson"],"sources":["../../src/Http/ClientResponse.ts"],"sourcesContent":[null],"mappings":"AAQA,OAAO,KAAKA,QAAQ,MAAM,+CAA+C;AAIzE;AACE;;;;AAIAC,cAAc;AACd;;;;AAIAC,mBAAmB;AACnB;;;;AAIAC,aAAa,QACR,uCAAuC;AAE9C;;;;AAIA,OAAO,MAAMC,MAAM,GAAkBJ,QAAQ,CAACI,MAAM;AAkBpD;;;;AAIA,OAAO,MAAMC,OAAO,GAA+EL,QAAQ,CAACK,OAAO;AAEnH;;;;AAIA,OAAO,MAAMC,UAAU,GAUrBN,QAAQ,CAACM,UAAU"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as internal from "@effect/platform/internal/keyValueStore";
|
|
2
|
+
/**
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
* @category type id
|
|
5
|
+
*/
|
|
6
|
+
export const TypeId = internal.TypeId;
|
|
7
|
+
/**
|
|
8
|
+
* @since 1.0.0
|
|
9
|
+
* @category tags
|
|
10
|
+
*/
|
|
11
|
+
export const KeyValueStore = internal.keyValueStoreTag;
|
|
12
|
+
/**
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
* @category constructors
|
|
15
|
+
*/
|
|
16
|
+
export const make = internal.make;
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category combinators
|
|
20
|
+
*/
|
|
21
|
+
export const prefix = internal.prefix;
|
|
22
|
+
/**
|
|
23
|
+
* @since 1.0.0
|
|
24
|
+
* @category layers
|
|
25
|
+
*/
|
|
26
|
+
export const layerMemory = internal.layerMemory;
|
|
27
|
+
/**
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category layers
|
|
30
|
+
*/
|
|
31
|
+
export const layerFileSystem = internal.layerFileSystem;
|
|
32
|
+
/**
|
|
33
|
+
* @since 1.0.0
|
|
34
|
+
* @category type id
|
|
35
|
+
*/
|
|
36
|
+
export const SchemaStoreTypeId = internal.SchemaStoreTypeId;
|
|
37
|
+
/**
|
|
38
|
+
* @since 1.0.0
|
|
39
|
+
* @category layers
|
|
40
|
+
*/
|
|
41
|
+
export const layerSchema = internal.layerSchema;
|
|
42
|
+
//# sourceMappingURL=KeyValueStore.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyValueStore.mjs","names":["internal","TypeId","KeyValueStore","keyValueStoreTag","make","prefix","layerMemory","layerFileSystem","SchemaStoreTypeId","layerSchema"],"sources":["../src/KeyValueStore.ts"],"sourcesContent":[null],"mappings":"AASA,OAAO,KAAKA,QAAQ,MAAM,yCAAyC;AAKnE;;;;AAIA,OAAO,MAAMC,MAAM,GAAkBD,QAAQ,CAACC,MAAM;AAyEpD;;;;AAIA,OAAO,MAAMC,aAAa,GAA8CF,QAAQ,CAACG,gBAAgB;AAEjG;;;;AAIA,OAAO,MAAMC,IAAI,GAEIJ,QAAQ,CAACI,IAAI;AAElC;;;;AAIA,OAAO,MAAMC,MAAM,GAGfL,QAAQ,CAACK,MAAM;AAEnB;;;;AAIA,OAAO,MAAMC,WAAW,GAA6CN,QAAQ,CAACM,WAAW;AAEzF;;;;AAIA,OAAO,MAAMC,eAAe,GAG1BP,QAAQ,CAACO,eAAe;AAE1B;;;;AAIA,OAAO,MAAMC,iBAAiB,GAAkBR,QAAQ,CAACQ,iBAAiB;AA+D1E;;;;AAIA,OAAO,MAAMC,WAAW,GAMpBT,QAAQ,CAACS,WAAW"}
|
|
@@ -3,6 +3,7 @@ import * as Headers from "@effect/platform/Http/Headers";
|
|
|
3
3
|
import * as IncomingMessage from "@effect/platform/Http/IncomingMessage";
|
|
4
4
|
import * as UrlParams from "@effect/platform/Http/UrlParams";
|
|
5
5
|
import * as internalError from "@effect/platform/internal/http/clientError";
|
|
6
|
+
import * as Schema from "@effect/schema/Schema";
|
|
6
7
|
import * as Stream from "@effect/stream/Stream";
|
|
7
8
|
/** @internal */
|
|
8
9
|
export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/ClientResponse");
|
|
@@ -91,4 +92,13 @@ class ClientResponseImpl {
|
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
94
|
IncomingMessage.TypeId;
|
|
95
|
+
/** @internal */
|
|
96
|
+
export const schemaJson = schema => {
|
|
97
|
+
const parse = Schema.parse(schema);
|
|
98
|
+
return self => Effect.flatMap(self.json, body => parse({
|
|
99
|
+
status: self.status,
|
|
100
|
+
headers: self.headers,
|
|
101
|
+
body
|
|
102
|
+
}));
|
|
103
|
+
};
|
|
94
104
|
//# sourceMappingURL=clientResponse.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientResponse.mjs","names":["Effect","Headers","IncomingMessage","UrlParams","internalError","Stream","TypeId","Symbol","for","fromWeb","request","source","ClientResponseImpl","constructor","status","headers","fromInput","stream","body","fromReadableStream","_","responseError","response","reason","error","fail","json","tryPromise","try","catch","text","urlParamsBody","flatMap","URLSearchParams","formData","arrayBuffer"],"sources":["../../../src/internal/http/clientResponse.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,mBAAmB;AAI3C,OAAO,KAAKC,OAAO,MAAM,+BAA+B;AACxD,OAAO,KAAKC,eAAe,MAAM,uCAAuC;AACxE,OAAO,KAAKC,SAAS,MAAM,iCAAiC;AAC5D,OAAO,KAAKC,aAAa,MAAM,4CAA4C;
|
|
1
|
+
{"version":3,"file":"clientResponse.mjs","names":["Effect","Headers","IncomingMessage","UrlParams","internalError","Schema","Stream","TypeId","Symbol","for","fromWeb","request","source","ClientResponseImpl","constructor","status","headers","fromInput","stream","body","fromReadableStream","_","responseError","response","reason","error","fail","json","tryPromise","try","catch","text","urlParamsBody","flatMap","URLSearchParams","formData","arrayBuffer","schemaJson","schema","parse","self"],"sources":["../../../src/internal/http/clientResponse.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import * as Context from "@effect/data/Context";
|
|
2
|
+
import { dual } from "@effect/data/Function";
|
|
3
|
+
import * as Option from "@effect/data/Option";
|
|
4
|
+
import * as Effect from "@effect/io/Effect";
|
|
5
|
+
import * as Layer from "@effect/io/Layer";
|
|
6
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
7
|
+
import * as Path from "@effect/platform/Path";
|
|
8
|
+
import * as Schema from "@effect/schema/Schema";
|
|
9
|
+
/** @internal */
|
|
10
|
+
export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore");
|
|
11
|
+
/** @internal */
|
|
12
|
+
export const keyValueStoreTag = /*#__PURE__*/Context.Tag(TypeId);
|
|
13
|
+
/** @internal */
|
|
14
|
+
export const make = impl => keyValueStoreTag.of({
|
|
15
|
+
[TypeId]: TypeId,
|
|
16
|
+
has: key => Effect.map(impl.get(key), Option.isSome),
|
|
17
|
+
isEmpty: Effect.map(impl.size, size => size === 0),
|
|
18
|
+
modify: (key, f) => Effect.flatMap(impl.get(key), o => {
|
|
19
|
+
if (Option.isNone(o)) {
|
|
20
|
+
return Effect.succeedNone;
|
|
21
|
+
}
|
|
22
|
+
const newValue = f(o.value);
|
|
23
|
+
return Effect.as(impl.set(key, newValue), Option.some(newValue));
|
|
24
|
+
}),
|
|
25
|
+
forSchema(schema) {
|
|
26
|
+
return makeSchemaStore(this, schema);
|
|
27
|
+
},
|
|
28
|
+
...impl
|
|
29
|
+
});
|
|
30
|
+
/** @internal */
|
|
31
|
+
export const prefix = /*#__PURE__*/dual(2, (self, prefix) => ({
|
|
32
|
+
...self,
|
|
33
|
+
get: key => self.get(`${prefix}${key}`),
|
|
34
|
+
set: (key, value) => self.set(`${prefix}${key}`, value),
|
|
35
|
+
remove: key => self.remove(`${prefix}${key}`),
|
|
36
|
+
has: key => self.has(`${prefix}${key}`),
|
|
37
|
+
modify: (key, f) => self.modify(`${prefix}${key}`, f)
|
|
38
|
+
}));
|
|
39
|
+
/** @internal */
|
|
40
|
+
export const SchemaStoreTypeId = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore/SchemaStore");
|
|
41
|
+
/** @internal */
|
|
42
|
+
const makeSchemaStore = (store, schema) => {
|
|
43
|
+
const jsonSchema = Schema.compose(Schema.ParseJson, schema);
|
|
44
|
+
const parse = Schema.parse(jsonSchema);
|
|
45
|
+
const encode = Schema.encode(jsonSchema);
|
|
46
|
+
const get = key => Effect.flatMap(store.get(key), Option.match({
|
|
47
|
+
onNone: () => Effect.succeedNone,
|
|
48
|
+
onSome: value => Effect.asSome(parse(value))
|
|
49
|
+
}));
|
|
50
|
+
const set = (key, value) => Effect.flatMap(encode(value), json => store.set(key, json));
|
|
51
|
+
const modify = (key, f) => Effect.flatMap(get(key), o => {
|
|
52
|
+
if (Option.isNone(o)) {
|
|
53
|
+
return Effect.succeedNone;
|
|
54
|
+
}
|
|
55
|
+
const newValue = f(o.value);
|
|
56
|
+
return Effect.as(set(key, newValue), Option.some(newValue));
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
[SchemaStoreTypeId]: SchemaStoreTypeId,
|
|
60
|
+
get,
|
|
61
|
+
set,
|
|
62
|
+
modify,
|
|
63
|
+
remove: store.remove,
|
|
64
|
+
clear: store.clear,
|
|
65
|
+
size: store.size,
|
|
66
|
+
has: store.has,
|
|
67
|
+
isEmpty: store.isEmpty
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
/** @internal */
|
|
71
|
+
export const layerMemory = /*#__PURE__*/Layer.sync(keyValueStoreTag, () => {
|
|
72
|
+
const store = new Map();
|
|
73
|
+
return make({
|
|
74
|
+
get: key => Effect.sync(() => Option.fromNullable(store.get(key))),
|
|
75
|
+
set: (key, value) => Effect.sync(() => store.set(key, value)),
|
|
76
|
+
remove: key => Effect.sync(() => store.delete(key)),
|
|
77
|
+
clear: Effect.sync(() => store.clear()),
|
|
78
|
+
size: Effect.sync(() => store.size)
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
/** @internal */
|
|
82
|
+
export const layerFileSystem = directory => Layer.effect(keyValueStoreTag, Effect.gen(function* (_) {
|
|
83
|
+
const fs = yield* _(FileSystem.FileSystem);
|
|
84
|
+
const path = yield* _(Path.Path);
|
|
85
|
+
const keyPath = key => path.join(directory, encodeURIComponent(key));
|
|
86
|
+
if (!(yield* _(fs.exists(directory)))) {
|
|
87
|
+
yield* _(fs.makeDirectory(directory, {
|
|
88
|
+
recursive: true
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
return make({
|
|
92
|
+
get: key => Effect.catchTag("SystemError", sysError => sysError.reason === "NotFound" ? Effect.succeed(Option.none()) : Effect.fail(sysError))(Effect.map(fs.readFileString(keyPath(key)), Option.some)),
|
|
93
|
+
set: (key, value) => fs.writeFileString(keyPath(key), value),
|
|
94
|
+
remove: key => fs.remove(keyPath(key)),
|
|
95
|
+
has: key => fs.exists(keyPath(key)),
|
|
96
|
+
clear: Effect.zipRight(fs.remove(directory, {
|
|
97
|
+
recursive: true
|
|
98
|
+
}), fs.makeDirectory(directory, {
|
|
99
|
+
recursive: true
|
|
100
|
+
})),
|
|
101
|
+
size: Effect.map(fs.readDirectory(directory), files => files.length)
|
|
102
|
+
});
|
|
103
|
+
}));
|
|
104
|
+
/** @internal */
|
|
105
|
+
export const layerSchema = (schema, tagIdentifier) => {
|
|
106
|
+
const tag = Context.Tag(tagIdentifier);
|
|
107
|
+
const layer = Layer.effect(tag, Effect.map(keyValueStoreTag, store => store.forSchema(schema)));
|
|
108
|
+
return {
|
|
109
|
+
tag,
|
|
110
|
+
layer
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=keyValueStore.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyValueStore.mjs","names":["Context","dual","Option","Effect","Layer","FileSystem","Path","Schema","TypeId","Symbol","for","keyValueStoreTag","Tag","make","impl","of","has","key","map","get","isSome","isEmpty","size","modify","f","flatMap","o","isNone","succeedNone","newValue","value","as","set","some","forSchema","schema","makeSchemaStore","prefix","self","remove","SchemaStoreTypeId","store","jsonSchema","compose","ParseJson","parse","encode","match","onNone","onSome","asSome","json","clear","layerMemory","sync","Map","fromNullable","delete","layerFileSystem","directory","effect","gen","_","fs","path","keyPath","join","encodeURIComponent","exists","makeDirectory","recursive","catchTag","sysError","reason","succeed","none","fail","readFileString","writeFileString","zipRight","readDirectory","files","length","layerSchema","tagIdentifier","tag","layer"],"sources":["../../src/internal/keyValueStore.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Error.ts
CHANGED
|
@@ -33,7 +33,7 @@ export namespace PlatformError {
|
|
|
33
33
|
export interface Base extends Data.Case {
|
|
34
34
|
readonly [PlatformErrorTypeId]: typeof PlatformErrorTypeId
|
|
35
35
|
readonly _tag: string
|
|
36
|
-
readonly module: "Command" | "FileSystem" | "Path"
|
|
36
|
+
readonly module: "Command" | "FileSystem" | "Path" | "KeyValueStore"
|
|
37
37
|
readonly method: string
|
|
38
38
|
readonly message: string
|
|
39
39
|
}
|
|
@@ -4,8 +4,11 @@
|
|
|
4
4
|
import type * as Effect from "@effect/io/Effect"
|
|
5
5
|
import type * as Error from "@effect/platform/Http/ClientError"
|
|
6
6
|
import type * as ClientRequest from "@effect/platform/Http/ClientRequest"
|
|
7
|
+
import type * as Headers from "@effect/platform/Http/Headers"
|
|
7
8
|
import type * as IncomingMessage from "@effect/platform/Http/IncomingMessage"
|
|
8
9
|
import * as internal from "@effect/platform/internal/http/clientResponse"
|
|
10
|
+
import type * as ParseResult from "@effect/schema/ParseResult"
|
|
11
|
+
import type * as Schema from "@effect/schema/Schema"
|
|
9
12
|
|
|
10
13
|
export {
|
|
11
14
|
/**
|
|
@@ -52,3 +55,19 @@ export interface ClientResponse extends IncomingMessage.IncomingMessage<Error.Re
|
|
|
52
55
|
* @category constructors
|
|
53
56
|
*/
|
|
54
57
|
export const fromWeb: (request: ClientRequest.ClientRequest, source: Response) => ClientResponse = internal.fromWeb
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @since 1.0.0
|
|
61
|
+
* @category schema
|
|
62
|
+
*/
|
|
63
|
+
export const schemaJson: <
|
|
64
|
+
I extends {
|
|
65
|
+
readonly status?: number
|
|
66
|
+
readonly headers?: Headers.Headers
|
|
67
|
+
readonly body?: unknown
|
|
68
|
+
},
|
|
69
|
+
A
|
|
70
|
+
>(
|
|
71
|
+
schema: Schema.Schema<I, A>
|
|
72
|
+
) => (self: ClientResponse) => Effect.Effect<never, Error.ResponseError | ParseResult.ParseError, A> =
|
|
73
|
+
internal.schemaJson
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Context from "@effect/data/Context"
|
|
5
|
+
import type * as Option from "@effect/data/Option"
|
|
6
|
+
import type * as Effect from "@effect/io/Effect"
|
|
7
|
+
import type * as Layer from "@effect/io/Layer"
|
|
8
|
+
import type * as PlatformError from "@effect/platform/Error"
|
|
9
|
+
import type * as FileSystem from "@effect/platform/FileSystem"
|
|
10
|
+
import * as internal from "@effect/platform/internal/keyValueStore"
|
|
11
|
+
import type * as Path from "@effect/platform/Path"
|
|
12
|
+
import type * as ParseResult from "@effect/schema/ParseResult"
|
|
13
|
+
import type * as Schema from "@effect/schema/Schema"
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category type id
|
|
18
|
+
*/
|
|
19
|
+
export const TypeId: unique symbol = internal.TypeId
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category type id
|
|
24
|
+
*/
|
|
25
|
+
export type TypeId = typeof TypeId
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category models
|
|
30
|
+
*/
|
|
31
|
+
export interface KeyValueStore {
|
|
32
|
+
readonly [TypeId]: TypeId
|
|
33
|
+
/**
|
|
34
|
+
* Returns the value of the specified key if it exists.
|
|
35
|
+
*/
|
|
36
|
+
readonly get: (key: string) => Effect.Effect<never, PlatformError.PlatformError, Option.Option<string>>
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Sets the value of the specified key.
|
|
40
|
+
*/
|
|
41
|
+
readonly set: (key: string, value: string) => Effect.Effect<never, PlatformError.PlatformError, void>
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Removes the specified key.
|
|
45
|
+
*/
|
|
46
|
+
readonly remove: (key: string) => Effect.Effect<never, PlatformError.PlatformError, void>
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Removes all entries.
|
|
50
|
+
*/
|
|
51
|
+
readonly clear: Effect.Effect<never, PlatformError.PlatformError, void>
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Returns the number of entries.
|
|
55
|
+
*/
|
|
56
|
+
readonly size: Effect.Effect<never, PlatformError.PlatformError, number>
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Updates the value of the specified key if it exists.
|
|
60
|
+
*/
|
|
61
|
+
readonly modify: (
|
|
62
|
+
key: string,
|
|
63
|
+
f: (value: string) => string
|
|
64
|
+
) => Effect.Effect<never, PlatformError.PlatformError, Option.Option<string>>
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Returns true if the KeyValueStore contains the specified key.
|
|
68
|
+
*/
|
|
69
|
+
readonly has: (key: string) => Effect.Effect<never, PlatformError.PlatformError, boolean>
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Checks if the KeyValueStore contains any entries.
|
|
73
|
+
*/
|
|
74
|
+
readonly isEmpty: Effect.Effect<never, PlatformError.PlatformError, boolean>
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Create a SchemaStore for the specified schema.
|
|
78
|
+
*/
|
|
79
|
+
readonly forSchema: <I, A>(schema: Schema.Schema<I, A>) => SchemaStore<A>
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @since 1.0.0
|
|
84
|
+
*/
|
|
85
|
+
export namespace KeyValueStore {
|
|
86
|
+
/**
|
|
87
|
+
* @since 1.0.0
|
|
88
|
+
*/
|
|
89
|
+
export type AnyStore = KeyValueStore | SchemaStore<any>
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* @since 1.0.0
|
|
94
|
+
* @category tags
|
|
95
|
+
*/
|
|
96
|
+
export const KeyValueStore: Context.Tag<KeyValueStore, KeyValueStore> = internal.keyValueStoreTag
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @since 1.0.0
|
|
100
|
+
* @category constructors
|
|
101
|
+
*/
|
|
102
|
+
export const make: (
|
|
103
|
+
impl: Omit<KeyValueStore, typeof TypeId | "has" | "modify" | "isEmpty" | "forSchema"> & Partial<KeyValueStore>
|
|
104
|
+
) => KeyValueStore = internal.make
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* @since 1.0.0
|
|
108
|
+
* @category combinators
|
|
109
|
+
*/
|
|
110
|
+
export const prefix: {
|
|
111
|
+
(prefix: string): <S extends KeyValueStore.AnyStore>(self: S) => S
|
|
112
|
+
<S extends KeyValueStore.AnyStore>(self: S, prefix: string): S
|
|
113
|
+
} = internal.prefix
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* @since 1.0.0
|
|
117
|
+
* @category layers
|
|
118
|
+
*/
|
|
119
|
+
export const layerMemory: Layer.Layer<never, never, KeyValueStore> = internal.layerMemory
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @since 1.0.0
|
|
123
|
+
* @category layers
|
|
124
|
+
*/
|
|
125
|
+
export const layerFileSystem: (
|
|
126
|
+
directory: string
|
|
127
|
+
) => Layer.Layer<FileSystem.FileSystem | Path.Path, PlatformError.PlatformError, KeyValueStore> =
|
|
128
|
+
internal.layerFileSystem
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* @since 1.0.0
|
|
132
|
+
* @category type id
|
|
133
|
+
*/
|
|
134
|
+
export const SchemaStoreTypeId: unique symbol = internal.SchemaStoreTypeId
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* @since 1.0.0
|
|
138
|
+
* @category type id
|
|
139
|
+
*/
|
|
140
|
+
export type SchemaStoreTypeId = typeof SchemaStoreTypeId
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* @since 1.0.0
|
|
144
|
+
* @category models
|
|
145
|
+
*/
|
|
146
|
+
export interface SchemaStore<A> {
|
|
147
|
+
readonly [SchemaStoreTypeId]: SchemaStoreTypeId
|
|
148
|
+
/**
|
|
149
|
+
* Returns the value of the specified key if it exists.
|
|
150
|
+
*/
|
|
151
|
+
readonly get: (
|
|
152
|
+
key: string
|
|
153
|
+
) => Effect.Effect<never, PlatformError.PlatformError | ParseResult.ParseError, Option.Option<A>>
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Sets the value of the specified key.
|
|
157
|
+
*/
|
|
158
|
+
readonly set: (
|
|
159
|
+
key: string,
|
|
160
|
+
value: A
|
|
161
|
+
) => Effect.Effect<never, PlatformError.PlatformError | ParseResult.ParseError, void>
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Removes the specified key.
|
|
165
|
+
*/
|
|
166
|
+
readonly remove: (key: string) => Effect.Effect<never, PlatformError.PlatformError, void>
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Removes all entries.
|
|
170
|
+
*/
|
|
171
|
+
readonly clear: Effect.Effect<never, PlatformError.PlatformError, void>
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Returns the number of entries.
|
|
175
|
+
*/
|
|
176
|
+
readonly size: Effect.Effect<never, PlatformError.PlatformError, number>
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Updates the value of the specified key if it exists.
|
|
180
|
+
*/
|
|
181
|
+
readonly modify: (
|
|
182
|
+
key: string,
|
|
183
|
+
f: (value: A) => A
|
|
184
|
+
) => Effect.Effect<never, PlatformError.PlatformError | ParseResult.ParseError, Option.Option<A>>
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Returns true if the KeyValueStore contains the specified key.
|
|
188
|
+
*/
|
|
189
|
+
readonly has: (key: string) => Effect.Effect<never, PlatformError.PlatformError, boolean>
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Checks if the KeyValueStore contains any entries.
|
|
193
|
+
*/
|
|
194
|
+
readonly isEmpty: Effect.Effect<never, PlatformError.PlatformError, boolean>
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* @since 1.0.0
|
|
199
|
+
* @category layers
|
|
200
|
+
*/
|
|
201
|
+
export const layerSchema: <I, A>(
|
|
202
|
+
schema: Schema.Schema<I, A>,
|
|
203
|
+
tagIdentifier?: unknown
|
|
204
|
+
) => {
|
|
205
|
+
readonly tag: Context.Tag<SchemaStore<A>, SchemaStore<A>>
|
|
206
|
+
readonly layer: Layer.Layer<KeyValueStore, never, SchemaStore<A>>
|
|
207
|
+
} = internal.layerSchema
|
|
@@ -6,6 +6,8 @@ import * as Headers from "@effect/platform/Http/Headers"
|
|
|
6
6
|
import * as IncomingMessage from "@effect/platform/Http/IncomingMessage"
|
|
7
7
|
import * as UrlParams from "@effect/platform/Http/UrlParams"
|
|
8
8
|
import * as internalError from "@effect/platform/internal/http/clientError"
|
|
9
|
+
import type * as ParseResult from "@effect/schema/ParseResult"
|
|
10
|
+
import * as Schema from "@effect/schema/Schema"
|
|
9
11
|
import * as Stream from "@effect/stream/Stream"
|
|
10
12
|
|
|
11
13
|
/** @internal */
|
|
@@ -120,3 +122,25 @@ class ClientResponseImpl implements ClientResponse.ClientResponse {
|
|
|
120
122
|
})
|
|
121
123
|
}
|
|
122
124
|
}
|
|
125
|
+
|
|
126
|
+
/** @internal */
|
|
127
|
+
export const schemaJson = <
|
|
128
|
+
I extends {
|
|
129
|
+
readonly status?: number
|
|
130
|
+
readonly headers?: Headers.Headers
|
|
131
|
+
readonly body?: unknown
|
|
132
|
+
},
|
|
133
|
+
A
|
|
134
|
+
>(schema: Schema.Schema<I, A>) => {
|
|
135
|
+
const parse = Schema.parse(schema)
|
|
136
|
+
return (self: ClientResponse.ClientResponse): Effect.Effect<never, Error.ResponseError | ParseResult.ParseError, A> =>
|
|
137
|
+
Effect.flatMap(
|
|
138
|
+
self.json,
|
|
139
|
+
(body) =>
|
|
140
|
+
parse({
|
|
141
|
+
status: self.status,
|
|
142
|
+
headers: self.headers,
|
|
143
|
+
body
|
|
144
|
+
})
|
|
145
|
+
)
|
|
146
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import * as Context from "@effect/data/Context"
|
|
2
|
+
import { dual, pipe } from "@effect/data/Function"
|
|
3
|
+
import * as Option from "@effect/data/Option"
|
|
4
|
+
import * as Effect from "@effect/io/Effect"
|
|
5
|
+
import * as Layer from "@effect/io/Layer"
|
|
6
|
+
import * as FileSystem from "@effect/platform/FileSystem"
|
|
7
|
+
import type * as KeyValueStore from "@effect/platform/KeyValueStore"
|
|
8
|
+
import * as Path from "@effect/platform/Path"
|
|
9
|
+
import * as Schema from "@effect/schema/Schema"
|
|
10
|
+
|
|
11
|
+
/** @internal */
|
|
12
|
+
export const TypeId: KeyValueStore.TypeId = Symbol.for(
|
|
13
|
+
"@effect/platform/KeyValueStore"
|
|
14
|
+
) as KeyValueStore.TypeId
|
|
15
|
+
|
|
16
|
+
/** @internal */
|
|
17
|
+
export const keyValueStoreTag = Context.Tag<KeyValueStore.KeyValueStore>(TypeId)
|
|
18
|
+
|
|
19
|
+
/** @internal */
|
|
20
|
+
export const make: (
|
|
21
|
+
impl:
|
|
22
|
+
& Omit<KeyValueStore.KeyValueStore, KeyValueStore.TypeId | "has" | "modify" | "isEmpty" | "forSchema">
|
|
23
|
+
& Partial<KeyValueStore.KeyValueStore>
|
|
24
|
+
) => KeyValueStore.KeyValueStore = (impl) =>
|
|
25
|
+
keyValueStoreTag.of({
|
|
26
|
+
[TypeId]: TypeId,
|
|
27
|
+
has: (key) => Effect.map(impl.get(key), Option.isSome),
|
|
28
|
+
isEmpty: Effect.map(impl.size, (size) => size === 0),
|
|
29
|
+
modify: (key, f) =>
|
|
30
|
+
Effect.flatMap(
|
|
31
|
+
impl.get(key),
|
|
32
|
+
(o) => {
|
|
33
|
+
if (Option.isNone(o)) {
|
|
34
|
+
return Effect.succeedNone
|
|
35
|
+
}
|
|
36
|
+
const newValue = f(o.value)
|
|
37
|
+
return Effect.as(
|
|
38
|
+
impl.set(key, newValue),
|
|
39
|
+
Option.some(newValue)
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
forSchema(schema) {
|
|
44
|
+
return makeSchemaStore(this, schema)
|
|
45
|
+
},
|
|
46
|
+
...impl
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
/** @internal */
|
|
50
|
+
export const prefix = dual<
|
|
51
|
+
(prefix: string) => <S extends KeyValueStore.KeyValueStore.AnyStore>(self: S) => S,
|
|
52
|
+
<S extends KeyValueStore.KeyValueStore.AnyStore>(self: S, prefix: string) => S
|
|
53
|
+
>(
|
|
54
|
+
2,
|
|
55
|
+
((self: KeyValueStore.KeyValueStore, prefix: string): KeyValueStore.KeyValueStore => ({
|
|
56
|
+
...self,
|
|
57
|
+
get: (key) => self.get(`${prefix}${key}`),
|
|
58
|
+
set: (key, value) => self.set(`${prefix}${key}`, value),
|
|
59
|
+
remove: (key) => self.remove(`${prefix}${key}`),
|
|
60
|
+
has: (key) => self.has(`${prefix}${key}`),
|
|
61
|
+
modify: (key, f) => self.modify(`${prefix}${key}`, f)
|
|
62
|
+
})) as any
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
/** @internal */
|
|
66
|
+
export const SchemaStoreTypeId: KeyValueStore.SchemaStoreTypeId = Symbol.for(
|
|
67
|
+
"@effect/platform/KeyValueStore/SchemaStore"
|
|
68
|
+
) as KeyValueStore.SchemaStoreTypeId
|
|
69
|
+
|
|
70
|
+
/** @internal */
|
|
71
|
+
const makeSchemaStore = <I, A>(
|
|
72
|
+
store: KeyValueStore.KeyValueStore,
|
|
73
|
+
schema: Schema.Schema<I, A>
|
|
74
|
+
): KeyValueStore.SchemaStore<A> => {
|
|
75
|
+
const jsonSchema = Schema.compose(Schema.ParseJson, schema)
|
|
76
|
+
const parse = Schema.parse(jsonSchema)
|
|
77
|
+
const encode = Schema.encode(jsonSchema)
|
|
78
|
+
|
|
79
|
+
const get = (key: string) =>
|
|
80
|
+
Effect.flatMap(
|
|
81
|
+
store.get(key),
|
|
82
|
+
Option.match({
|
|
83
|
+
onNone: () => Effect.succeedNone,
|
|
84
|
+
onSome: (value) => Effect.asSome(parse(value))
|
|
85
|
+
})
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
const set = (key: string, value: A) => Effect.flatMap(encode(value), (json) => store.set(key, json))
|
|
89
|
+
|
|
90
|
+
const modify = (key: string, f: (value: A) => A) =>
|
|
91
|
+
Effect.flatMap(
|
|
92
|
+
get(key),
|
|
93
|
+
(o) => {
|
|
94
|
+
if (Option.isNone(o)) {
|
|
95
|
+
return Effect.succeedNone
|
|
96
|
+
}
|
|
97
|
+
const newValue = f(o.value)
|
|
98
|
+
return Effect.as(
|
|
99
|
+
set(key, newValue),
|
|
100
|
+
Option.some(newValue)
|
|
101
|
+
)
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
return {
|
|
106
|
+
[SchemaStoreTypeId]: SchemaStoreTypeId,
|
|
107
|
+
get,
|
|
108
|
+
set,
|
|
109
|
+
modify,
|
|
110
|
+
remove: store.remove,
|
|
111
|
+
clear: store.clear,
|
|
112
|
+
size: store.size,
|
|
113
|
+
has: store.has,
|
|
114
|
+
isEmpty: store.isEmpty
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/** @internal */
|
|
119
|
+
export const layerMemory = Layer.sync(keyValueStoreTag, () => {
|
|
120
|
+
const store = new Map<string, string>()
|
|
121
|
+
|
|
122
|
+
return make({
|
|
123
|
+
get: (key: string) => Effect.sync(() => Option.fromNullable(store.get(key))),
|
|
124
|
+
set: (key: string, value: string) => Effect.sync(() => store.set(key, value)),
|
|
125
|
+
remove: (key: string) => Effect.sync(() => store.delete(key)),
|
|
126
|
+
clear: Effect.sync(() => store.clear()),
|
|
127
|
+
size: Effect.sync(() => store.size)
|
|
128
|
+
})
|
|
129
|
+
})
|
|
130
|
+
|
|
131
|
+
/** @internal */
|
|
132
|
+
export const layerFileSystem = (directory: string) =>
|
|
133
|
+
Layer.effect(
|
|
134
|
+
keyValueStoreTag,
|
|
135
|
+
Effect.gen(function*(_) {
|
|
136
|
+
const fs = yield* _(FileSystem.FileSystem)
|
|
137
|
+
const path = yield* _(Path.Path)
|
|
138
|
+
const keyPath = (key: string) => path.join(directory, encodeURIComponent(key))
|
|
139
|
+
|
|
140
|
+
if (!(yield* _(fs.exists(directory)))) {
|
|
141
|
+
yield* _(fs.makeDirectory(directory, { recursive: true }))
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return make({
|
|
145
|
+
get: (key: string) =>
|
|
146
|
+
pipe(
|
|
147
|
+
Effect.map(fs.readFileString(keyPath(key)), Option.some),
|
|
148
|
+
Effect.catchTag(
|
|
149
|
+
"SystemError",
|
|
150
|
+
(sysError) => sysError.reason === "NotFound" ? Effect.succeed(Option.none()) : Effect.fail(sysError)
|
|
151
|
+
)
|
|
152
|
+
),
|
|
153
|
+
set: (key: string, value: string) => fs.writeFileString(keyPath(key), value),
|
|
154
|
+
remove: (key: string) => fs.remove(keyPath(key)),
|
|
155
|
+
has: (key: string) => fs.exists(keyPath(key)),
|
|
156
|
+
clear: Effect.zipRight(
|
|
157
|
+
fs.remove(directory, { recursive: true }),
|
|
158
|
+
fs.makeDirectory(directory, { recursive: true })
|
|
159
|
+
),
|
|
160
|
+
size: Effect.map(
|
|
161
|
+
fs.readDirectory(directory),
|
|
162
|
+
(files) => files.length
|
|
163
|
+
)
|
|
164
|
+
})
|
|
165
|
+
})
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
/** @internal */
|
|
169
|
+
export const layerSchema = <I, A>(
|
|
170
|
+
schema: Schema.Schema<I, A>,
|
|
171
|
+
tagIdentifier?: unknown
|
|
172
|
+
) => {
|
|
173
|
+
const tag = Context.Tag<KeyValueStore.SchemaStore<A>>(tagIdentifier)
|
|
174
|
+
const layer = Layer.effect(tag, Effect.map(keyValueStoreTag, (store) => store.forSchema(schema)))
|
|
175
|
+
return { tag, layer } as const
|
|
176
|
+
}
|