@effect-app/infra 0.93.4 → 0.93.5
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
CHANGED
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.DiskStoreLive = DiskStoreLive;
|
|
7
7
|
exports.makeDiskStore = makeDiskStore;
|
|
8
8
|
var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
|
|
9
|
-
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/
|
|
10
|
-
var tsplus_module_3 = _interopRequireWildcard(require("effect/
|
|
11
|
-
var tsplus_module_4 = _interopRequireWildcard(require("effect/
|
|
9
|
+
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/prelude/schema"));
|
|
10
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Function"));
|
|
11
|
+
var tsplus_module_4 = _interopRequireWildcard(require("effect/FiberRef"));
|
|
12
|
+
var tsplus_module_5 = _interopRequireWildcard(require("effect/Layer"));
|
|
12
13
|
var fu = _interopRequireWildcard(require("@effect-app/infra-adapters/fileUtil"));
|
|
13
14
|
var _fs = _interopRequireDefault(require("fs"));
|
|
14
15
|
var _Memory = require("./Memory.cjs");
|
|
@@ -22,17 +23,21 @@ function makeDiskStoreInt(prefix, namespace, dir, name, seed) {
|
|
|
22
23
|
return tsplus_module_1.gen(function* ($) {
|
|
23
24
|
const file = dir + "/" + prefix + name + (namespace === "primary" ? "" : "-" + namespace) + ".json";
|
|
24
25
|
const fsStore = {
|
|
25
|
-
get: tsplus_module_1.withSpan(tsplus_module_1.orDie(tsplus_module_1.
|
|
26
|
+
get: tsplus_module_1.withSpan(tsplus_module_1.orDie(tsplus_module_1.flatMap(tsplus_module_1.withSpan(fu.readTextFile(file), "@effect-app/infra/Store/Disk.read.readFile"), x => tsplus_module_1.withSpan(tsplus_module_1.sync(() => JSON.parse(x)), "@effect-app/infra/Store/Disk.read.parse"))), "@effect-app/infra/Store/Disk.read", {
|
|
26
27
|
attributes: {
|
|
27
28
|
file
|
|
28
29
|
}
|
|
29
30
|
}),
|
|
30
|
-
setRaw: v => JSON.stringify([...v], undefined, 2)
|
|
31
|
+
setRaw: v => tsplus_module_1.withSpan(tsplus_module_1.flatMap(tsplus_module_1.withSpan(tsplus_module_1.sync(() => JSON.stringify([...v], undefined, 2)), "@effect-app/infra/Store/Disk.stringify", {
|
|
32
|
+
attributes: {
|
|
33
|
+
file
|
|
34
|
+
}
|
|
35
|
+
}), json => tsplus_module_1.withSpan(fu.writeTextFile(file, json), "@effect-app/infra/Store/Disk.write.writeFile")), "@effect-app/infra/Store/Disk.write", {
|
|
31
36
|
attributes: {
|
|
32
37
|
file,
|
|
33
|
-
size: json.length
|
|
38
|
+
size: tsplus_module_2.json.length
|
|
34
39
|
}
|
|
35
|
-
})
|
|
40
|
+
})
|
|
36
41
|
};
|
|
37
42
|
const store = yield* $((0, _Memory.makeMemoryStoreInt)(name, namespace, !_fs.default.existsSync(file) ? seed : fsStore.get));
|
|
38
43
|
yield* $(tsplus_module_1.flatMap(store.all, fsStore.setRaw));
|
|
@@ -42,10 +47,10 @@ function makeDiskStoreInt(prefix, namespace, dir, name, seed) {
|
|
|
42
47
|
const flushToDiskInBackground = tsplus_module_1.forkDaemon(tsplus_module_1.uninterruptible(tsplus_module_1.tapErrorCause(flushToDisk, err => tsplus_module_1.sync(() => console.error(err)))));
|
|
43
48
|
return {
|
|
44
49
|
...store,
|
|
45
|
-
batchSet:
|
|
46
|
-
bulkSet:
|
|
47
|
-
set:
|
|
48
|
-
remove:
|
|
50
|
+
batchSet: tsplus_module_3.flow(store.batchSet, t => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
|
|
51
|
+
bulkSet: tsplus_module_3.flow(store.bulkSet, t => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
|
|
52
|
+
set: tsplus_module_3.flow(store.set, t => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
|
|
53
|
+
remove: tsplus_module_3.flow(store.remove, t => tsplus_module_1.tap(t, () => flushToDiskInBackground))
|
|
49
54
|
};
|
|
50
55
|
});
|
|
51
56
|
}
|
|
@@ -66,7 +71,7 @@ function makeDiskStore({
|
|
|
66
71
|
const primary = yield* $(makeDiskStoreInt(prefix, "primary", dir, name, seed));
|
|
67
72
|
const stores = new Map([["primary", primary]]);
|
|
68
73
|
const ctx = yield* $(tsplus_module_1.context());
|
|
69
|
-
const getStore = !config?.allowNamespace ? tsplus_module_1.succeed(primary) : tsplus_module_1.flatMap(
|
|
74
|
+
const getStore = !config?.allowNamespace ? tsplus_module_1.succeed(primary) : tsplus_module_1.flatMap(tsplus_module_4.get(_Memory.storeId), namespace => {
|
|
70
75
|
const store = stores.get(namespace);
|
|
71
76
|
if (store) {
|
|
72
77
|
return tsplus_module_1.succeed(store);
|
|
@@ -96,6 +101,6 @@ function makeDiskStore({
|
|
|
96
101
|
});
|
|
97
102
|
}
|
|
98
103
|
function DiskStoreLive(config, dir) {
|
|
99
|
-
return
|
|
104
|
+
return tsplus_module_5.effect(_service.StoreMaker)(tsplus_module_1.flatMap(tsplus_module_1.config(config), _ => makeDiskStore(_, dir)));
|
|
100
105
|
}
|
|
101
106
|
//# sourceMappingURL=Disk.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Disk.cjs","names":["fu","_interopRequireWildcard","require","_fs","_interopRequireDefault","_Memory","_service","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","makeDiskStoreInt","prefix","namespace","dir","name","seed","tsplus_module_1","gen","$","file","fsStore","withSpan","orDie","
|
|
1
|
+
{"version":3,"file":"Disk.cjs","names":["fu","_interopRequireWildcard","require","_fs","_interopRequireDefault","_Memory","_service","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","makeDiskStoreInt","prefix","namespace","dir","name","seed","tsplus_module_1","gen","$","file","fsStore","withSpan","orDie","flatMap","readTextFile","x","sync","JSON","parse","attributes","setRaw","v","stringify","undefined","json","writeTextFile","size","tsplus_module_2","length","store","makeMemoryStoreInt","fs","existsSync","all","sem","unsafeMakeSemaphore","withPermit","withPermits","flushToDisk","flushToDiskInBackground","forkDaemon","uninterruptible","tapErrorCause","err","console","error","batchSet","tsplus_module_3","flow","tap","bulkSet","remove","makeDiskStore","mkdirSync","make","config","storesSem","primary","stores","Map","ctx","context","getStore","allowNamespace","succeed","tsplus_module_4","storeId","Error","suspend","existing","provide","s","_","find","args","filter","filterJoinSelect","DiskStoreLive","tsplus_module_5","effect","StoreMaker"],"sources":["../../../_src/services/Store/Disk.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -19,16 +19,21 @@ function makeDiskStoreInt<Id extends string, PM extends PersistenceModelType<Id>
|
|
|
19
19
|
const fsStore = {
|
|
20
20
|
get: fu
|
|
21
21
|
.readTextFile(file)
|
|
22
|
-
.
|
|
22
|
+
.withSpan("@effect-app/infra/Store/Disk.read.readFile")
|
|
23
|
+
.flatMap((x) => Effect.sync(() => JSON.parse(x) as PM[]).withSpan("@effect-app/infra/Store/Disk.read.parse"))
|
|
23
24
|
.orDie
|
|
24
25
|
.withSpan("@effect-app/infra/Store/Disk.read", { attributes: { file } }),
|
|
25
26
|
setRaw: (v: Iterable<PM>) =>
|
|
26
|
-
|
|
27
|
-
(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
Effect
|
|
28
|
+
.sync(() => JSON.stringify([...v], undefined, 2))
|
|
29
|
+
.withSpan("@effect-app/infra/Store/Disk.stringify", { attributes: { file } })
|
|
30
|
+
.flatMap(
|
|
31
|
+
(json) =>
|
|
32
|
+
fu
|
|
33
|
+
.writeTextFile(file, json)
|
|
34
|
+
.withSpan("@effect-app/infra/Store/Disk.write.writeFile")
|
|
35
|
+
)
|
|
36
|
+
.withSpan("@effect-app/infra/Store/Disk.write", { attributes: { file, size: json.length } })
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
const store = yield* $(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Disk.ts"],"names":[],"mappings":";;AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Disk.ts"],"names":[],"mappings":";;AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAyEzC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM;+EAOtD,MAAM,SACL,OAAO,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,WACxB,YAAY,EAAE,CAAC;GAyC/B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,6FAKvE"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "effect/Effect";
|
|
2
|
-
import * as tsplus_module_2 from "@effect-app/
|
|
3
|
-
import * as tsplus_module_3 from "effect/
|
|
4
|
-
import * as tsplus_module_4 from "effect/
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/prelude/schema";
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/core/Function";
|
|
4
|
+
import * as tsplus_module_4 from "effect/FiberRef";
|
|
5
|
+
import * as tsplus_module_5 from "effect/Layer";
|
|
5
6
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
7
|
import * as fu from "@effect-app/infra-adapters/fileUtil";
|
|
7
8
|
import fs from "fs";
|
|
@@ -11,10 +12,10 @@ function makeDiskStoreInt(prefix, namespace, dir, name, seed) {
|
|
|
11
12
|
return tsplus_module_1.gen(function* ($) {
|
|
12
13
|
const file = dir + "/" + prefix + name + (namespace === "primary" ? "" : "-" + namespace) + ".json";
|
|
13
14
|
const fsStore = {
|
|
14
|
-
get: tsplus_module_1.withSpan(tsplus_module_1.orDie(tsplus_module_1.
|
|
15
|
-
.readTextFile(file), (x) => JSON.parse(x))), "@effect-app/infra/Store/Disk.read", { attributes: { file } }),
|
|
16
|
-
setRaw: (v) => JSON.stringify([...v], undefined, 2)
|
|
17
|
-
.writeTextFile(file, json), "@effect-app/infra/Store/Disk.write", { attributes: { file, size: json.length } })
|
|
15
|
+
get: tsplus_module_1.withSpan(tsplus_module_1.orDie(tsplus_module_1.flatMap(tsplus_module_1.withSpan(fu
|
|
16
|
+
.readTextFile(file), "@effect-app/infra/Store/Disk.read.readFile"), (x) => tsplus_module_1.withSpan(tsplus_module_1.sync(() => JSON.parse(x)), "@effect-app/infra/Store/Disk.read.parse"))), "@effect-app/infra/Store/Disk.read", { attributes: { file } }),
|
|
17
|
+
setRaw: (v) => tsplus_module_1.withSpan(tsplus_module_1.flatMap(tsplus_module_1.withSpan(tsplus_module_1.sync(() => JSON.stringify([...v], undefined, 2)), "@effect-app/infra/Store/Disk.stringify", { attributes: { file } }), (json) => tsplus_module_1.withSpan(fu
|
|
18
|
+
.writeTextFile(file, json), "@effect-app/infra/Store/Disk.write.writeFile")), "@effect-app/infra/Store/Disk.write", { attributes: { file, size: tsplus_module_2.json.length } })
|
|
18
19
|
};
|
|
19
20
|
const store = yield* $(makeMemoryStoreInt(name, namespace, !fs.existsSync(file)
|
|
20
21
|
? seed
|
|
@@ -26,10 +27,10 @@ function makeDiskStoreInt(prefix, namespace, dir, name, seed) {
|
|
|
26
27
|
const flushToDiskInBackground = tsplus_module_1.forkDaemon(tsplus_module_1.uninterruptible(tsplus_module_1.tapErrorCause(flushToDisk, (err) => tsplus_module_1.sync(() => console.error(err)))));
|
|
27
28
|
return {
|
|
28
29
|
...store,
|
|
29
|
-
batchSet:
|
|
30
|
-
bulkSet:
|
|
31
|
-
set:
|
|
32
|
-
remove:
|
|
30
|
+
batchSet: tsplus_module_3.flow(store.batchSet, (t) => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
|
|
31
|
+
bulkSet: tsplus_module_3.flow(store.bulkSet, (t) => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
|
|
32
|
+
set: tsplus_module_3.flow(store.set, (t) => tsplus_module_1.tap(t, () => flushToDiskInBackground)),
|
|
33
|
+
remove: tsplus_module_3.flow(store.remove, (t) => tsplus_module_1.tap(t, () => flushToDiskInBackground))
|
|
33
34
|
};
|
|
34
35
|
});
|
|
35
36
|
}
|
|
@@ -48,7 +49,7 @@ export function makeDiskStore({ prefix }, dir) {
|
|
|
48
49
|
const primary = yield* $(makeDiskStoreInt(prefix, "primary", dir, name, seed));
|
|
49
50
|
const stores = new Map([["primary", primary]]);
|
|
50
51
|
const ctx = yield* $(tsplus_module_1.context());
|
|
51
|
-
const getStore = !config?.allowNamespace ? tsplus_module_1.succeed(primary) : tsplus_module_1.flatMap(
|
|
52
|
+
const getStore = !config?.allowNamespace ? tsplus_module_1.succeed(primary) : tsplus_module_1.flatMap(tsplus_module_4.get(storeId), (namespace) => {
|
|
52
53
|
const store = stores.get(namespace);
|
|
53
54
|
if (store) {
|
|
54
55
|
return tsplus_module_1.succeed(store);
|
|
@@ -79,6 +80,6 @@ export function makeDiskStore({ prefix }, dir) {
|
|
|
79
80
|
});
|
|
80
81
|
}
|
|
81
82
|
export function DiskStoreLive(config, dir) {
|
|
82
|
-
return
|
|
83
|
+
return tsplus_module_5.effect(StoreMaker)(tsplus_module_1.flatMap(tsplus_module_1.config(config), (_) => makeDiskStore(_, dir)));
|
|
83
84
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvRGlzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBRXpELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUVuQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFekMsU0FBUyxnQkFBZ0IsQ0FDdkIsTUFBYyxFQUNkLFNBQWlCLEVBQ2pCLEdBQVcsRUFDWCxJQUFZLEVBQ1osSUFBaUM7SUFFakMsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQzNCLE1BQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQTtRQUNuRyxNQUFNLE9BQU8sR0FBRztZQUNkLEdBQUcsRUFBRSwrQ0FBQSx3QkFBQSx5QkFBQSxFQUFFO2lCQUNKLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFDVCw0Q0FBNEMsQ0FBQyxFQUM5QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMseUJBQUEscUJBQVksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVMsQ0FBQyxFQUFVLHlDQUF5QyxDQUFDLENBQUMsR0FFbkcsbUNBQW1DLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzFFLE1BQU0sRUFBRSxDQUFDLENBQWUsRUFBRSxFQUFFLENBQzFCLHlCQUFBLHdCQUFBLHlCQUFBLHFCQUNR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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.93.
|
|
3
|
+
"version": "0.93.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"proper-lockfile": "^4.1.2",
|
|
19
19
|
"pure-rand": "6.0.4",
|
|
20
20
|
"redlock": "^4.2.0",
|
|
21
|
-
"@effect-app/schema": "0.62.4",
|
|
22
|
-
"@effect-app/prelude": "0.71.0",
|
|
23
21
|
"@effect-app/core": "0.69.0",
|
|
22
|
+
"@effect-app/prelude": "0.71.0",
|
|
23
|
+
"@effect-app/schema": "0.62.4",
|
|
24
24
|
"@effect-app/infra-adapters": "0.59.5"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|