@effect-app/infra 0.13.0 → 0.14.1
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 +25 -0
- package/_cjs/api/codec.cjs +2 -4
- package/_cjs/api/codec.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +18 -21
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.cjs +4 -4
- package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
- package/_cjs/api/express/makeOpenApiSpecs.cjs +5 -7
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +57 -56
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +22 -22
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +6 -17
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/api/routing.cjs +70 -70
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +2 -4
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +6 -8
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +11 -13
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +1 -1
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/instrument.cjs +1 -3
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +6 -8
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +12 -18
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +4 -7
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +23 -26
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +3 -5
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +28 -30
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +58 -58
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +15 -16
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +14 -16
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +22 -23
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +1 -1
- package/_cjs/services/Store/index.cjs +7 -7
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +2 -4
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +16 -17
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +23 -25
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +20 -21
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +11 -13
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +20 -22
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +25 -25
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +4 -6
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +16 -17
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/errors.ts +1 -1
- package/_src/services/simpledb/memdb.ts +1 -1
- package/dist/RequestContext.d.ts +12 -12
- package/dist/api/codec.js +3 -5
- package/dist/api/defaultErrorHandler.js +20 -21
- package/dist/api/express/makeJsonSchema.js +3 -5
- package/dist/api/express/makeOpenApiSpecs.js +5 -7
- package/dist/api/express/schema/requestHandler.d.ts +5 -5
- package/dist/api/express/schema/requestHandler.js +50 -52
- package/dist/api/express/schema/routing.js +21 -23
- package/dist/api/reportError.js +6 -18
- package/dist/api/routing.js +65 -67
- package/dist/api/setupRequest.js +3 -5
- package/dist/api/writeDocs.js +7 -9
- package/dist/errorReporter.js +10 -12
- package/dist/errors.js +2 -2
- package/dist/instrument.js +2 -4
- package/dist/rateLimit.js +7 -9
- package/dist/services/Emailer/Sendgrid.js +15 -22
- package/dist/services/Emailer/fake.js +5 -8
- package/dist/services/Emailer/service.d.ts +1 -1
- package/dist/services/Operations/live.js +24 -27
- package/dist/services/Operations/service.js +4 -6
- package/dist/services/Repository.d.ts +4 -4
- package/dist/services/Repository.js +22 -24
- package/dist/services/Store/Cosmos.d.ts +1 -1
- package/dist/services/Store/Cosmos.js +61 -63
- package/dist/services/Store/Disk.js +16 -19
- package/dist/services/Store/Memory.d.ts +1 -1
- package/dist/services/Store/Memory.js +16 -18
- package/dist/services/Store/Redis.d.ts +1 -1
- package/dist/services/Store/Redis.js +21 -24
- package/dist/services/Store/index.js +6 -8
- package/dist/services/Store/service.d.ts +1 -1
- package/dist/services/Store/service.js +3 -5
- package/dist/services/Store/utils.d.ts +2 -2
- package/dist/services/Store/utils.js +18 -19
- package/dist/services/simpledb/cosmosdb.d.ts +2 -2
- package/dist/services/simpledb/cosmosdb.js +23 -25
- package/dist/services/simpledb/diskdb.d.ts +2 -2
- package/dist/services/simpledb/diskdb.js +18 -18
- package/dist/services/simpledb/memdb.d.ts +3 -3
- package/dist/services/simpledb/memdb.js +13 -14
- package/dist/services/simpledb/mongodb.d.ts +2 -2
- package/dist/services/simpledb/mongodb.js +18 -20
- package/dist/services/simpledb/redisdb.d.ts +8 -8
- package/dist/services/simpledb/redisdb.js +21 -23
- package/dist/services/simpledb/shared.d.ts +9 -9
- package/dist/services/simpledb/shared.js +5 -7
- package/dist/services/simpledb/simpledb.d.ts +1 -1
- package/dist/services/simpledb/simpledb.js +19 -19
- package/package.json +12 -12
- package/tsconfig.json +5 -1
|
@@ -5,10 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.DiskStoreLive = DiskStoreLive;
|
|
7
7
|
exports.makeDiskStore = makeDiskStore;
|
|
8
|
-
var tracer_1 = _interopRequireWildcard(require("@effect/io/Debug"));
|
|
9
8
|
var tsplus_module_1 = _interopRequireWildcard(require("@effect/io/Effect"));
|
|
10
9
|
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/core/Function"));
|
|
11
|
-
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
12
10
|
var fu = _interopRequireWildcard(require("@effect-app/infra-adapters/fileUtil"));
|
|
13
11
|
var _fs = _interopRequireDefault(require("fs"));
|
|
14
12
|
var _Memory = require("./Memory.cjs");
|
|
@@ -16,7 +14,8 @@ var _service = require("./service.cjs");
|
|
|
16
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
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); }
|
|
18
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; }
|
|
19
|
-
|
|
17
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
|
+
|
|
20
19
|
/**
|
|
21
20
|
* The Disk-backed store, flushes writes in background, but keeps the data in memory
|
|
22
21
|
* and should therefore be as fast as the Memory Store.
|
|
@@ -24,39 +23,39 @@ const fileName_1 = "packages/infra/_src/services/Store/Disk.ts";
|
|
|
24
23
|
function makeDiskStore({
|
|
25
24
|
prefix
|
|
26
25
|
}) {
|
|
27
|
-
return
|
|
26
|
+
return tsplus_module_1.sync(() => {
|
|
28
27
|
const dir = "./.data";
|
|
29
28
|
if (!_fs.default.existsSync(dir)) {
|
|
30
29
|
_fs.default.mkdirSync(dir);
|
|
31
30
|
}
|
|
32
31
|
return {
|
|
33
|
-
make: (name, existing, _config) =>
|
|
32
|
+
make: (name, existing, _config) => tsplus_module_1.gen(function* ($) {
|
|
34
33
|
const file = dir + "/" + prefix + name + ".json";
|
|
35
34
|
const fsStore = {
|
|
36
|
-
get: tsplus_module_1.orDie(
|
|
35
|
+
get: tsplus_module_1.orDie(tsplus_module_1.map(fu.readTextFile(file), x => JSON.parse(x))),
|
|
37
36
|
setRaw: v => JSON.stringify([...v], undefined, 2)["|>"](json => fu.writeTextFile(file, json))
|
|
38
37
|
};
|
|
39
38
|
const {
|
|
40
39
|
make
|
|
41
40
|
} = (0, _Memory.makeMemoryStore)();
|
|
42
|
-
const store = yield* $(make(name, !_fs.default.existsSync(file) ? existing ??
|
|
43
|
-
yield* $(
|
|
41
|
+
const store = yield* $(make(name, !_fs.default.existsSync(file) ? existing ?? tsplus_module_1.sync(() => new Map()) : tsplus_module_1.map(fsStore.get, x => new Map(x.map(x => [x.id, x])))));
|
|
42
|
+
yield* $(tsplus_module_1.flatMap(store.all, fsStore.setRaw));
|
|
44
43
|
const sem = tsplus_module_1.unsafeMakeSemaphore(1);
|
|
45
44
|
const withPermit = sem.withPermits(1);
|
|
46
|
-
const flushToDisk = withPermit(
|
|
45
|
+
const flushToDisk = withPermit(tsplus_module_1.flatMap(store.all, fsStore.setRaw));
|
|
47
46
|
const s = {
|
|
48
47
|
...store,
|
|
49
|
-
batchSet: tsplus_module_2.flow(store.batchSet, t =>
|
|
50
|
-
bulkSet: tsplus_module_2.flow(store.bulkSet, t =>
|
|
51
|
-
set: tsplus_module_2.flow(store.set, t =>
|
|
52
|
-
remove: tsplus_module_2.flow(store.remove, t =>
|
|
48
|
+
batchSet: tsplus_module_2.flow(store.batchSet, t => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, err => tsplus_module_1.sync(() => console.error(err)))))),
|
|
49
|
+
bulkSet: tsplus_module_2.flow(store.bulkSet, t => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, err => tsplus_module_1.sync(() => console.error(err)))))),
|
|
50
|
+
set: tsplus_module_2.flow(store.set, t => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, err => tsplus_module_1.sync(() => console.error(err)))))),
|
|
51
|
+
remove: tsplus_module_2.flow(store.remove, t => tsplus_module_1.tap(t, () => tsplus_module_1.forkDaemon(tsplus_module_1.tapErrorCause(flushToDisk, err => tsplus_module_1.sync(() => console.error(err))))))
|
|
53
52
|
};
|
|
54
53
|
return s;
|
|
55
|
-
})
|
|
54
|
+
})
|
|
56
55
|
};
|
|
57
|
-
})
|
|
56
|
+
});
|
|
58
57
|
}
|
|
59
58
|
function DiskStoreLive(config) {
|
|
60
|
-
return
|
|
59
|
+
return tsplus_module_1.toLayer(tsplus_module_1.flatMap(tsplus_module_1.config(config), makeDiskStore), _service.StoreMaker);
|
|
61
60
|
}
|
|
62
61
|
//# sourceMappingURL=Disk.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Disk.cjs","mappings":"
|
|
1
|
+
{"version":3,"file":"Disk.cjs","mappings":"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","names":["makeDiskStore","prefix","tsplus_module_1","dir","fs","existsSync","mkdirSync","make","name","existing","_config","$","file","fsStore","get","readTextFile","x","JSON","parse","setRaw","v","stringify","undefined","json","fu","writeTextFile","store","Map","map","id","all","sem","withPermit","withPermits","flushToDisk","s","batchSet","tsplus_module_2","t","err","console","error","bulkSet","set","remove","DiskStoreLive","config","StoreMaker"],"sourceRoot":"","sources":["../../../_src/services/Store/Disk.ts"],"sourcesContent":[null]}
|
|
@@ -5,10 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.makeMemoryStore = exports.MemoryStoreLive = void 0;
|
|
7
7
|
exports.memFilter = memFilter;
|
|
8
|
-
var tracer_1 = _interopRequireWildcard(require("@effect/io/Debug"));
|
|
9
8
|
var tsplus_module_1 = _interopRequireWildcard(require("@fp-ts/data/Chunk"));
|
|
10
9
|
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/core/Chunk"));
|
|
11
|
-
var tsplus_module_3 = _interopRequireWildcard(require("@fp-ts/
|
|
10
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@fp-ts/core/Option"));
|
|
12
11
|
var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/Array"));
|
|
13
12
|
var tsplus_module_5 = _interopRequireWildcard(require("@effect/io/Effect"));
|
|
14
13
|
var tsplus_module_6 = _interopRequireWildcard(require("@effect/io/Ref"));
|
|
@@ -18,7 +17,6 @@ var _service = require("./service.cjs");
|
|
|
18
17
|
var _utils = require("./utils.cjs");
|
|
19
18
|
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); }
|
|
20
19
|
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; }
|
|
21
|
-
const fileName_1 = "packages/infra/_src/services/Store/Memory.ts";
|
|
22
20
|
function memFilter(filter, cursor) {
|
|
23
21
|
return c => {
|
|
24
22
|
const skip = cursor?.skip;
|
|
@@ -37,31 +35,31 @@ function memFilter(filter, cursor) {
|
|
|
37
35
|
};
|
|
38
36
|
}
|
|
39
37
|
const makeMemoryStore = () => ({
|
|
40
|
-
make: (name, existing, _config) =>
|
|
38
|
+
make: (name, existing, _config) => tsplus_module_5.gen(function* ($) {
|
|
41
39
|
const updateETag = (0, _utils.makeUpdateETag)(name);
|
|
42
|
-
const items = yield* $(existing ??
|
|
43
|
-
const store = yield* $(
|
|
40
|
+
const items = yield* $(existing ?? tsplus_module_5.sync(() => new Map()));
|
|
41
|
+
const store = yield* $(tsplus_module_6.make(new Map([...items.entries()].map(([id, e]) => [id, (0, _utils.makeETag)(e)]))));
|
|
44
42
|
const sem = tsplus_module_5.unsafeMakeSemaphore(1);
|
|
45
43
|
const withPermit = sem.withPermits(1);
|
|
46
|
-
const values =
|
|
47
|
-
const all =
|
|
48
|
-
const batchSet = items => withPermit(
|
|
44
|
+
const values = tsplus_module_5.map(tsplus_module_6.get(store), s => s.values());
|
|
45
|
+
const all = tsplus_module_5.map(values, tsplus_module_1.fromIterable);
|
|
46
|
+
const batchSet = items => withPermit(tsplus_module_5.map(tsplus_module_5.tap(tsplus_module_7.ext_forEach(items, i => tsplus_module_5.flatMap(s.find(i.id), current => updateETag(i, current))), items => tsplus_module_5.flatMap(tsplus_module_5.map(tsplus_module_6.get(store), m => {
|
|
49
47
|
const mut = m;
|
|
50
48
|
items.forEach(e => mut.set(e.id, e));
|
|
51
49
|
return mut;
|
|
52
|
-
})
|
|
50
|
+
}), _ => tsplus_module_6.set(store, _))), _ => _.toReadonlyArray()));
|
|
53
51
|
const s = {
|
|
54
52
|
all,
|
|
55
|
-
find: id =>
|
|
56
|
-
filter: (filter, cursor) =>
|
|
57
|
-
filterJoinSelect: filter =>
|
|
58
|
-
set: e => withPermit(
|
|
53
|
+
find: id => tsplus_module_5.map(tsplus_module_6.get(store), _ => tsplus_module_3.fromNullable(_.get(id))),
|
|
54
|
+
filter: (filter, cursor) => tsplus_module_5.map(all, memFilter(filter, cursor)),
|
|
55
|
+
filterJoinSelect: filter => tsplus_module_5.map(all, c => c.flatMap((0, _utils.codeFilterJoinSelect)(filter))),
|
|
56
|
+
set: e => withPermit(tsplus_module_5.tap(tsplus_module_5.flatMap(s.find(e.id), current => updateETag(e, current)), e => tsplus_module_5.flatMap(tsplus_module_5.map(tsplus_module_6.get(store), _ => new Map([..._, [e.id, e]])), _ => tsplus_module_6.set(store, _)))),
|
|
59
57
|
batchSet,
|
|
60
58
|
bulkSet: batchSet,
|
|
61
|
-
remove: e => withPermit(
|
|
59
|
+
remove: e => withPermit(tsplus_module_5.flatMap(tsplus_module_5.map(tsplus_module_6.get(store), _ => new Map([..._].filter(([_]) => _ !== e.id))), _ => tsplus_module_6.set(store, _)))
|
|
62
60
|
};
|
|
63
61
|
return s;
|
|
64
|
-
})
|
|
62
|
+
})
|
|
65
63
|
});
|
|
66
64
|
exports.makeMemoryStore = makeMemoryStore;
|
|
67
65
|
const MemoryStoreLive = tsplus_module_8.makeLayer(_service.StoreMaker, makeMemoryStore());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Memory.cjs","mappings":"
|
|
1
|
+
{"version":3,"file":"Memory.cjs","mappings":"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","names":["memFilter","filter","cursor","c","skip","limit","tsplus_module_3","tsplus_module_1","r","undefined","makeMemoryStore","make","name","existing","_config","tsplus_module_5","$","updateETag","items","Map","store","tsplus_module_6","entries","map","id","e","sem","withPermit","withPermits","values","s","all","batchSet","i","find","current","m","mut","forEach","set","_","toReadonlyArray","get","filterJoinSelect","flatMap","bulkSet","remove","MemoryStoreLive","tsplus_module_8"],"sourceRoot":"","sources":["../../../_src/services/Store/Memory.ts"],"sourcesContent":[null]}
|
|
@@ -5,13 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.RedisStoreLive = RedisStoreLive;
|
|
7
7
|
exports.makeRedisStore = makeRedisStore;
|
|
8
|
-
var tracer_1 = _interopRequireWildcard(require("@effect/io/Debug"));
|
|
9
8
|
var tsplus_module_1 = _interopRequireWildcard(require("@effect/io/Effect"));
|
|
10
|
-
var tsplus_module_2 = _interopRequireWildcard(require("@fp-ts/
|
|
9
|
+
var tsplus_module_2 = _interopRequireWildcard(require("@fp-ts/core/Option"));
|
|
11
10
|
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/prelude/_ext/Prelude.ext"));
|
|
12
11
|
var tsplus_module_4 = _interopRequireWildcard(require("@fp-ts/data/Chunk"));
|
|
13
12
|
var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/fluent/_ext/awesome/_files/Iterable"));
|
|
14
|
-
var tsplus_module_6 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
15
13
|
var RedisClient = _interopRequireWildcard(require("@effect-app/infra-adapters/redis-client"));
|
|
16
14
|
var _errors = require("../../errors.cjs");
|
|
17
15
|
var _Memory = require("./Memory.cjs");
|
|
@@ -19,53 +17,54 @@ var _service = require("./service.cjs");
|
|
|
19
17
|
var _utils = require("./utils.cjs");
|
|
20
18
|
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); }
|
|
21
19
|
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; }
|
|
22
|
-
|
|
20
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
21
|
+
|
|
23
22
|
function makeRedisStore({
|
|
24
23
|
prefix
|
|
25
24
|
}) {
|
|
26
|
-
return
|
|
25
|
+
return tsplus_module_1.gen(function* ($) {
|
|
27
26
|
const redis = yield* $(tsplus_module_1.service(RedisClient.RedisClient));
|
|
28
27
|
return {
|
|
29
|
-
make: (name, existing, _config) =>
|
|
28
|
+
make: (name, existing, _config) => tsplus_module_1.gen(function* ($) {
|
|
30
29
|
const updateETag = (0, _utils.makeUpdateETag)(name);
|
|
31
30
|
// Very naive implementation of course.
|
|
32
31
|
const key = `${prefix}${name}`;
|
|
33
|
-
const current = yield* $(
|
|
32
|
+
const current = yield* $(tsplus_module_1.provideService(tsplus_module_1.orDie(RedisClient.get(key)), RedisClient.RedisClient, redis));
|
|
34
33
|
if (!tsplus_module_2.isSome(current)) {
|
|
35
|
-
const m = yield* $(existing ??
|
|
36
|
-
yield* $(
|
|
34
|
+
const m = yield* $(existing ?? tsplus_module_1.sync(() => new Map()));
|
|
35
|
+
yield* $(tsplus_module_1.provideService(tsplus_module_1.orDie(RedisClient.set(key, JSON.stringify({
|
|
37
36
|
data: [...m.values()].map(e => (0, _utils.makeETag)(e))
|
|
38
|
-
})))));
|
|
37
|
+
}))), RedisClient.RedisClient, redis));
|
|
39
38
|
}
|
|
40
|
-
const get =
|
|
39
|
+
const get = tsplus_module_1.provideService(tsplus_module_1.map(tsplus_module_1.map(tsplus_module_1.orDie(tsplus_module_1.flatMap(RedisClient.get(key), x => tsplus_module_3.encaseMaybeInEffect_(x, () => new _errors.NotFoundError("data", "")))), x => JSON.parse(x)), _ => _.data), RedisClient.RedisClient, redis);
|
|
41
40
|
const set = i => tsplus_module_1.orDie(RedisClient.set(key, JSON.stringify({
|
|
42
41
|
data: [...i.values()]
|
|
43
42
|
})));
|
|
44
43
|
const sem = tsplus_module_1.unsafeMakeSemaphore(1);
|
|
45
44
|
const withPermit = sem.withPermits(1);
|
|
46
|
-
const asMap =
|
|
47
|
-
const all =
|
|
48
|
-
const batchSet = items =>
|
|
45
|
+
const asMap = tsplus_module_1.map(get, x => new Map(x.map(x => [x.id, x])));
|
|
46
|
+
const all = tsplus_module_1.map(get, tsplus_module_4.fromIterable);
|
|
47
|
+
const batchSet = items => tsplus_module_1.provideService(withPermit(tsplus_module_1.map(tsplus_module_1.tap(tsplus_module_5.ext_forEach(items, e => tsplus_module_1.flatMap(s.find(e.id), current => updateETag(e, current))), items => tsplus_module_1.flatMap(tsplus_module_1.map(asMap, m => {
|
|
49
48
|
const mut = m;
|
|
50
49
|
items.forEach(e => mut.set(e.id, e));
|
|
51
50
|
return mut;
|
|
52
|
-
}))
|
|
51
|
+
}), set)), _ => _.toReadonlyArray())), RedisClient.RedisClient, redis);
|
|
53
52
|
const s = {
|
|
54
53
|
all,
|
|
55
|
-
filter: (filter, cursor) =>
|
|
56
|
-
filterJoinSelect: filter =>
|
|
57
|
-
find: id =>
|
|
58
|
-
set: e =>
|
|
54
|
+
filter: (filter, cursor) => tsplus_module_1.map(all, (0, _Memory.memFilter)(filter, cursor)),
|
|
55
|
+
filterJoinSelect: filter => tsplus_module_1.map(all, c => c.flatMap((0, _utils.codeFilterJoinSelect)(filter))),
|
|
56
|
+
find: id => tsplus_module_1.map(asMap, _ => tsplus_module_2.fromNullable(_.get(id))),
|
|
57
|
+
set: e => tsplus_module_1.provideService(withPermit(tsplus_module_1.tap(tsplus_module_1.flatMap(s.find(e.id), current => updateETag(e, current)), e => tsplus_module_1.flatMap(tsplus_module_1.map(asMap, _ => new Map([..._, [e.id, e]])), set))), RedisClient.RedisClient, redis),
|
|
59
58
|
batchSet,
|
|
60
59
|
bulkSet: batchSet,
|
|
61
|
-
remove: e =>
|
|
60
|
+
remove: e => tsplus_module_1.provideService(withPermit(tsplus_module_1.flatMap(tsplus_module_1.map(asMap, _ => new Map([..._].filter(([_]) => _ !== e.id))), set)), RedisClient.RedisClient, redis)
|
|
62
61
|
};
|
|
63
62
|
return s;
|
|
64
|
-
})
|
|
63
|
+
})
|
|
65
64
|
};
|
|
66
|
-
})
|
|
65
|
+
});
|
|
67
66
|
}
|
|
68
67
|
function RedisStoreLive(config) {
|
|
69
|
-
return
|
|
68
|
+
return tsplus_module_1.toLayer(tsplus_module_1.flatMap(tsplus_module_1.config(config), makeRedisStore), _service.StoreMaker);
|
|
70
69
|
}
|
|
71
70
|
//# sourceMappingURL=Redis.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Redis.cjs","mappings":"
|
|
1
|
+
{"version":3,"file":"Redis.cjs","mappings":"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","names":["makeRedisStore","prefix","tsplus_module_1","$","redis","RedisClient","make","name","existing","_config","updateETag","key","current","get","tsplus_module_2","m","Map","set","JSON","stringify","data","values","map","e","x","tsplus_module_3","NotFoundError","parse","_","i","sem","withPermit","withPermits","asMap","id","all","batchSet","items","find","mut","forEach","toReadonlyArray","s","filter","cursor","filterJoinSelect","c","flatMap","bulkSet","remove","RedisStoreLive","config","StoreMaker"],"sourceRoot":"","sources":["../../../_src/services/Store/Redis.ts"],"sourcesContent":[null]}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.makeSomethingFilter_ = makeSomethingFilter_;
|
|
7
7
|
exports.somethingsWhere = somethingsWhere;
|
|
8
|
-
var tsplus_module_1 = _interopRequireWildcard(require("@fp-ts/
|
|
8
|
+
var tsplus_module_1 = _interopRequireWildcard(require("@fp-ts/core/ReadonlyArray"));
|
|
9
9
|
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/core/Array"));
|
|
10
10
|
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/infra/filter"));
|
|
11
11
|
var _vitest = require("vitest");
|
|
@@ -7,7 +7,6 @@ var _exportNames = {
|
|
|
7
7
|
StoreMakerLive: true
|
|
8
8
|
};
|
|
9
9
|
exports.StoreMakerLive = StoreMakerLive;
|
|
10
|
-
var tracer_1 = _interopRequireWildcard(require("@effect/io/Debug"));
|
|
11
10
|
var tsplus_module_1 = _interopRequireWildcard(require("@effect/io/Config/Secret"));
|
|
12
11
|
var tsplus_module_2 = _interopRequireWildcard(require("@effect/io/Effect"));
|
|
13
12
|
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
@@ -32,16 +31,17 @@ Object.keys(_service).forEach(function (key) {
|
|
|
32
31
|
});
|
|
33
32
|
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); }
|
|
34
33
|
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; }
|
|
35
|
-
|
|
34
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
35
|
+
|
|
36
36
|
/**
|
|
37
37
|
* @tsplus static StoreMaker.Ops Live
|
|
38
38
|
*/
|
|
39
39
|
function StoreMakerLive(config) {
|
|
40
|
-
return tsplus_module_3.toScopedLayer(
|
|
40
|
+
return tsplus_module_3.toScopedLayer(tsplus_module_2.flatMap(tsplus_module_2.config(config), cfg => {
|
|
41
41
|
const storageUrl = tsplus_module_1.value(cfg.url);
|
|
42
42
|
if (storageUrl.startsWith("mem://")) {
|
|
43
43
|
console.log("Using in memory store");
|
|
44
|
-
return
|
|
44
|
+
return tsplus_module_2.sync(() => (0, _Memory.makeMemoryStore)());
|
|
45
45
|
}
|
|
46
46
|
if (storageUrl.startsWith("disk://")) {
|
|
47
47
|
console.log("Using disk store at ./.data");
|
|
@@ -49,11 +49,11 @@ function StoreMakerLive(config) {
|
|
|
49
49
|
}
|
|
50
50
|
if (storageUrl.startsWith("redis://")) {
|
|
51
51
|
console.log("Using Redis store");
|
|
52
|
-
return
|
|
52
|
+
return tsplus_module_2.flatMap(RedisClient.makeRedisClient(makeRedis(storageUrl)), client => tsplus_module_2.provideService((0, _Redis.makeRedisStore)(cfg), RedisClient.RedisClient, client));
|
|
53
53
|
}
|
|
54
54
|
console.log("Using Cosmos DB store");
|
|
55
|
-
return
|
|
56
|
-
})
|
|
55
|
+
return tsplus_module_2.flatMap(CosmosClient.makeCosmosClient(storageUrl, cfg.dbName), client => tsplus_module_2.provideService((0, _Cosmos.makeCosmosStore)(cfg), CosmosClient.CosmosClient, client));
|
|
56
|
+
}), _service.StoreMaker);
|
|
57
57
|
}
|
|
58
58
|
function makeRedis(storageUrl) {
|
|
59
59
|
const url = new URL(storageUrl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","mappings":";;;;;;;;;;;;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAmDA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAA4B;AAAA;AA7D5B;;AAYA;;;AAGM,SAAUA,cAAc,CAACC,MAA6B;EAC1D,OAAOC,mFAAM,GAAgBC,GAAG,IAAG;IACjC,MAAMC,UAAU,yBAAGD,GAAG,CAACE,GAAG,CAAM;IAChC,IAAID,UAAU,CAACE,UAAU,CAAC,QAAQ,CAAC,EAAE;MACnCC,OAAO,CAACC,GAAG,CAAC,uBAAuB,CAAC;MACpC,OAAOC,2BAAO,2BAAe,GAAE,CAAC;;IAElC,IAAIL,UAAU,CAACE,UAAU,CAAC,SAAS,CAAC,EAAE;MACpCC,OAAO,CAACC,GAAG,CAAC,6BAA6B,CAAC;MAC1C,OAAO,uBAAa,EAACL,GAAG,CAAC;;IAE3B,IAAIC,UAAU,CAACE,UAAU,CAAC,UAAU,CAAC,EAAE;MACrCC,OAAO,CAACC,GAAG,CAAC,mBAAmB,CAAC;MAChC,OAAOC,mCAAW,CAACC,eAAe,CAACC,SAAS,CAACP,UAAU,CAAC,CAAC,EAASQ,MAAM,IACtEH,wDAAc,EAACN,GAAG,CAAC,EACjBU,WAAW,CAACA,WAAW,EACvBD,MAAM,CACP,CACF;;IAGHL,OAAO,CAACC,GAAG,CAAC,uBAAuB,CAAC;IACpC,OAAOC,oCAAY,CAACK,gBAAgB,CAACV,UAAU,EAAED,GAAG,CAACY,MAAM,CAAC,EAASH,MAAM,IACzEH,0DAAe,EAACN,GAAG,CAAC,EAAgBa,YAAY,CAACA,YAAY,EAAEJ,MAAM,CAAC,CACvE;EACH,CAAC,CAAC,EACeK,mBAAU,CAAC;AAC9B;AAEA,SAASN,SAAS,CAACP,UAAkB;EACnC,MAAMC,GAAG,GAAG,IAAIa,GAAG,CAACd,UAAU,CAAC;EAC/B,MAAMe,QAAQ,GAAGd,GAAG,CAACc,QAAQ;EAC7B,MAAMC,QAAQ,GAAGf,GAAG,CAACe,QAAQ;EAC7B,OAAO,MACL,uBAAY,EACVhB,UAAU,KAAK,UAAU,GACpB;IACDiB,IAAI,EAAEF,QAAQ;IACdG,IAAI,EAAE,IAAI;IACVC,SAAS,EAAEH,QAAQ;IACnBI,GAAG,EAAE;MAAEC,UAAU,EAAEN;IAAQ;GACpB,GACNf,UAAkB,CACxB;AACL","names":["StoreMakerLive","config","tsplus_module_3","cfg","storageUrl","url","startsWith","console","log","tsplus_module_2","makeRedisClient","makeRedis","client","RedisClient","makeCosmosClient","dbName","CosmosClient","StoreMaker","URL","hostname","password","host","port","auth_pass","tls","servername"],"sourceRoot":"","sources":["../../../_src/services/Store/index.ts"],"sourcesContent":[null]}
|
|
@@ -4,18 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.makeMap = exports.StoreMaker = exports.ContextMap = void 0;
|
|
7
|
-
var tracer_1 = _interopRequireWildcard(require("@effect/io/Debug"));
|
|
8
7
|
var tsplus_module_1 = _interopRequireWildcard(require("@fp-ts/data/Context"));
|
|
9
8
|
var tsplus_module_2 = _interopRequireWildcard(require("@effect/io/Effect"));
|
|
10
9
|
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); }
|
|
11
10
|
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; }
|
|
12
|
-
const fileName_1 = "packages/infra/_src/services/Store/service.ts";
|
|
13
11
|
const StoreMaker = tsplus_module_1.Tag();
|
|
14
12
|
/**
|
|
15
13
|
* @tsplus static ContextMap.Ops Make
|
|
16
14
|
*/
|
|
17
15
|
exports.StoreMaker = StoreMaker;
|
|
18
|
-
const makeMap =
|
|
16
|
+
const makeMap = tsplus_module_2.sync(() => {
|
|
19
17
|
const etags = new Map();
|
|
20
18
|
const getEtag = id => etags.get(id);
|
|
21
19
|
const setEtag = (id, eTag) => {
|
|
@@ -64,7 +62,7 @@ const makeMap = tracer_1.withCallTrace(fileName_1 + ":94:24")(tsplus_module_2.sy
|
|
|
64
62
|
set: setEtag,
|
|
65
63
|
parserEnv
|
|
66
64
|
};
|
|
67
|
-
})
|
|
65
|
+
});
|
|
68
66
|
exports.makeMap = makeMap;
|
|
69
67
|
const ContextMap = tsplus_module_1.Tag();
|
|
70
68
|
exports.ContextMap = ContextMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.cjs","mappings":"
|
|
1
|
+
{"version":3,"file":"service.cjs","mappings":";;;;;;;;;;AAwFO,MAAMA,UAAU,GAAkBC,mBAAG,EAAc;AAE1D;;;AAAA;AAGO,MAAMC,OAAO,GAAGC,qBAAO,MAAK;EACjC,MAAMC,KAAK,GAAG,IAAIC,GAAG,EAAkB;EACvC,MAAMC,OAAO,GAAIC,EAAU,IAAKH,KAAK,CAACI,GAAG,CAACD,EAAE,CAAC;EAC7C,MAAME,OAAO,GAAG,CAACF,EAAU,EAAEG,IAAwB,KAAI;IACvDA,IAAI,KAAKC,SAAS,GAAGP,KAAK,CAACQ,MAAM,CAACL,EAAE,CAAC,GAAGH,KAAK,CAACS,GAAG,CAACN,EAAE,EAAEG,IAAI,CAAC;EAC7D,CAAC;EAED,MAAMI,WAAW,GAAG,IAAIT,GAAG,EAGxB;EAEH,MAAMU,WAAW,GAAG,IAAIV,GAAG,EAGxB;EAEH,MAAMW,YAAY,GAAG,CACnBC,CAAkB,EAClBC,EAA+B,KAC7B;IACFH,WAAW,CAACF,GAAG,CAACI,CAAC,EAAEC,EAAE,CAAC;IACtB,OAAOA,EAAE;EACX,CAAC;EAED,MAAMC,SAAS,GAAc;IAC3B;IACA;IACAC,GAAG,EAAE,KAAK;IACVC,KAAK,EAAE;MACLC,cAAc,EAAEL,CAAC,IAAIF,WAAW,CAACP,GAAG,CAACS,CAAC,CAAC,IAAID,YAAY,CAACC,CAAC,EAAEM,CAAC,IAAIJ,SAAS,CAACE,KAAM,CAACG,QAAQ,CAACD,CAAC,EAAEN,CAAC,CAAC,CAAC;MAChGQ,eAAe,EAAEC,OAAO,IAAG;QACzB,OAAOC,MAAM,CAACC,OAAO,CAACF,OAAO,CAAC,CAACG,MAAM,CAAC,CAACC,IAAI,EAAE,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAI;UACrDF,IAAI,CAACC,CAAC,CAAC,GAAGZ,SAAS,CAACE,KAAM,CAACC,cAAc,CAACU,CAAC,CAAC;UAC5C,OAAOF,IAAI;QACb,CAAC,EAAE,EAAS,CAAC;MACf,CAAC;MACDN,QAAQ,EAAE,CAACD,CAAC,EAAEU,KAAK,KAAS;QAC1B,MAAMC,CAAC,GAAGpB,WAAW,CAACN,GAAG,CAACyB,KAAK,CAAC;QAChC,IAAIC,CAAC,EAAE;UACL,MAAMC,CAAC,GAAGD,CAAC,CAAC1B,GAAG,CAACe,CAAC,CAAC;UAClB,IAAIY,CAAC,EAAE;YACL;YACA,OAAOA,CAAC;WACT,MAAM;YACL,MAAMC,EAAE,GAAGH,KAAK,CAACV,CAAC,EAAEJ,SAAS,CAAC;YAC9Be,CAAC,CAACrB,GAAG,CAACU,CAAC,EAAEa,EAAE,CAAC;YACZ,OAAOA,EAAE;;SAEZ,MAAM;UACL,MAAMA,EAAE,GAAGH,KAAK,CAACV,CAAC,EAAEJ,SAAS,CAAC;UAC9BL,WAAW,CAACD,GAAG,CAACoB,KAAK,EAAE,IAAI5B,GAAG,CAAC,CAAC,CAACkB,CAAC,EAAEa,EAAE,CAAC,CAAC,CAAC,CAAC;UAC1C,OAAOA,EAAE;;MAEb;;GAEH;EAED,OAAO;IACL5B,GAAG,EAAEF,OAAO;IACZO,GAAG,EAAEJ,OAAO;IACZU;GACD;AACH,CAAC,CAAC;AAAA;AAMK,MAAMkB,UAAU,GAAkBpC,mBAAG,EAAc;AAAA","names":["StoreMaker","tsplus_module_1","makeMap","tsplus_module_2","etags","Map","getEtag","id","get","setEtag","eTag","undefined","delete","set","parsedCache","parserCache","setAndReturn","p","np","parserEnv","lax","cache","getOrSetParser","i","getOrSet","getOrSetParsers","parsers","Object","entries","reduce","prev","k","v","parse","c","f","nf","ContextMap"],"sourceRoot":"","sources":["../../../_src/services/Store/service.ts"],"sourcesContent":[null]}
|
|
@@ -6,18 +6,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.codeFilter = codeFilter;
|
|
7
7
|
exports.codeFilterJoinSelect = codeFilterJoinSelect;
|
|
8
8
|
exports.makeUpdateETag = exports.makeETag = void 0;
|
|
9
|
-
var
|
|
10
|
-
var tsplus_module_1 = _interopRequireWildcard(require("@fp-ts/data/Option"));
|
|
9
|
+
var tsplus_module_1 = _interopRequireWildcard(require("@fp-ts/core/Option"));
|
|
11
10
|
var tsplus_module_2 = _interopRequireWildcard(require("@effect/io/Effect"));
|
|
12
|
-
var tsplus_module_3 = _interopRequireWildcard(require("@
|
|
13
|
-
var tsplus_module_4 = _interopRequireWildcard(require("@
|
|
11
|
+
var tsplus_module_3 = _interopRequireWildcard(require("@effect-app/core/Option"));
|
|
12
|
+
var tsplus_module_4 = _interopRequireWildcard(require("@fp-ts/core/ReadonlyArray"));
|
|
13
|
+
var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/Array"));
|
|
14
14
|
var _utils = require("@effect-app/prelude/utils");
|
|
15
15
|
var _errors = require("../../errors.cjs");
|
|
16
16
|
var _objectHash = _interopRequireDefault(require("object-hash"));
|
|
17
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
18
|
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); }
|
|
19
19
|
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; }
|
|
20
|
-
const fileName_1 = "packages/infra/_src/services/Store/utils.ts";
|
|
21
20
|
const makeETag = ({
|
|
22
21
|
_etag,
|
|
23
22
|
...e
|
|
@@ -26,44 +25,44 @@ const makeETag = ({
|
|
|
26
25
|
_etag: (0, _objectHash.default)(e)
|
|
27
26
|
});
|
|
28
27
|
exports.makeETag = makeETag;
|
|
29
|
-
const makeUpdateETag = name => (e, current) =>
|
|
28
|
+
const makeUpdateETag = name => (e, current) => tsplus_module_2.gen(function* ($) {
|
|
30
29
|
if (tsplus_module_1.isSome(current) && current.value._etag !== e._etag) {
|
|
31
|
-
return yield* $(
|
|
30
|
+
return yield* $(tsplus_module_2.fail(new _errors.OptimisticConcurrencyException(name, current.value.id, current.value._etag, e._etag)));
|
|
32
31
|
}
|
|
33
32
|
const newE = makeETag(e);
|
|
34
33
|
return newE;
|
|
35
|
-
})
|
|
34
|
+
});
|
|
36
35
|
exports.makeUpdateETag = makeUpdateETag;
|
|
37
36
|
function codeFilter(filter) {
|
|
38
37
|
return x => filter.type === "startsWith"
|
|
39
38
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
-
? lowercaseIfString(x[filter.by]).startsWith(filter.value.toLowerCase()) ? tsplus_module_1.some(x) :
|
|
39
|
+
? lowercaseIfString(x[filter.by]).startsWith(filter.value.toLowerCase()) ? tsplus_module_1.some(x) : tsplus_module_3.none : filter.type === "endsWith"
|
|
41
40
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
|
-
? lowercaseIfString(x[filter.by]).endsWith(filter.value.toLowerCase()) ? tsplus_module_1.some(x) :
|
|
41
|
+
? lowercaseIfString(x[filter.by]).endsWith(filter.value.toLowerCase()) ? tsplus_module_1.some(x) : tsplus_module_3.none : filter.type === "contains"
|
|
43
42
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
44
43
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
45
|
-
? lowercaseIfString(x[filter.by]).includes(filter.value.toLowerCase()) ? tsplus_module_1.some(x) :
|
|
44
|
+
? lowercaseIfString(x[filter.by]).includes(filter.value.toLowerCase()) ? tsplus_module_1.some(x) : tsplus_module_3.none : filter.type === "join_find" ? filter.keys.some(k => {
|
|
46
45
|
const value = (0, _utils.get)(x, k);
|
|
47
46
|
// we mimic the behavior of cosmosdb; if the shape in db does not match what we're looking for, we imagine false hit
|
|
48
47
|
return value && value.some(v => compareCaseInsensitive(v[filter.valueKey], filter.value));
|
|
49
|
-
}) ? tsplus_module_1.some(x) :
|
|
48
|
+
}) ? tsplus_module_1.some(x) : tsplus_module_3.none
|
|
50
49
|
// TODO: support mixed or/and
|
|
51
|
-
: filter.mode === "or" ? filter.where.some(p => p.t === "in" ? p.value.includes((0, _utils.get)(x, p.key)) : p.t === "not-in" ? !p.value.includes((0, _utils.get)(x, p.key)) : p.t === "not-eq" ? !compareCaseInsensitive((0, _utils.get)(x, p.key), p.value) : compareCaseInsensitive((0, _utils.get)(x, p.key), p.value)) ? tsplus_module_1.some(x) :
|
|
50
|
+
: filter.mode === "or" ? filter.where.some(p => p.t === "in" ? p.value.includes((0, _utils.get)(x, p.key)) : p.t === "not-in" ? !p.value.includes((0, _utils.get)(x, p.key)) : p.t === "not-eq" ? !compareCaseInsensitive((0, _utils.get)(x, p.key), p.value) : compareCaseInsensitive((0, _utils.get)(x, p.key), p.value)) ? tsplus_module_1.some(x) : tsplus_module_3.none : filter.where.every(p => p.t === "in" ? p.value.includes((0, _utils.get)(x, p.key)) : p.t === "not-in" ? !p.value.includes((0, _utils.get)(x, p.key)) : p.t === "not-eq" ? p.key.includes(".-1.") ? (0, _utils.get)(x, p.key.split(".-1.")[0])
|
|
52
51
|
// TODO: or vs and
|
|
53
52
|
.every(_ => !compareCaseInsensitive((0, _utils.get)(_, p.key.split(".-1.")[1]), p.value)) : !compareCaseInsensitive((0, _utils.get)(x, p.key), p.value) : p.key.includes(".-1.") ? (0, _utils.get)(x, p.key.split(".-1.")[0])
|
|
54
53
|
// TODO: or vs and
|
|
55
|
-
.some(_ => compareCaseInsensitive((0, _utils.get)(_, p.key.split(".-1.")[1]), p.value)) : compareCaseInsensitive((0, _utils.get)(x, p.key), p.value)) ? tsplus_module_1.some(x) :
|
|
54
|
+
.some(_ => compareCaseInsensitive((0, _utils.get)(_, p.key.split(".-1.")[1]), p.value)) : compareCaseInsensitive((0, _utils.get)(x, p.key), p.value)) ? tsplus_module_1.some(x) : tsplus_module_3.none;
|
|
56
55
|
}
|
|
57
56
|
function codeFilterJoinSelect(filter) {
|
|
58
|
-
return x =>
|
|
57
|
+
return x => tsplus_module_5.ext_itToChunk(tsplus_module_4.filterMap(k => {
|
|
59
58
|
const value = (0, _utils.get)(x, k);
|
|
60
59
|
// we mimic the behavior of cosmosdb; if the shape in db does not match what we're looking for, we imagine false hit
|
|
61
|
-
return value ? tsplus_module_1.some(
|
|
60
|
+
return value ? tsplus_module_1.some(tsplus_module_4.filterMap(v =>
|
|
62
61
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
62
|
compareCaseInsensitive(v[filter.valueKey], filter.value) ? tsplus_module_1.some({
|
|
64
63
|
...v,
|
|
65
64
|
_rootId: x.id
|
|
66
|
-
}) :
|
|
65
|
+
}) : tsplus_module_3.none)(value)) : tsplus_module_3.none;
|
|
67
66
|
})(filter.keys).flatMap(_ => _));
|
|
68
67
|
}
|
|
69
68
|
function lowercaseIfString(val) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","mappings":";;;;;;;;;;;;;AAAA;AAEA;AAIA;AAAoC;AAAA;AAAA
|
|
1
|
+
{"version":3,"file":"utils.cjs","mappings":"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","names":["makeETag","_etag","e","makeUpdateETag","name","current","tsplus_module_2","$","tsplus_module_1","value","OptimisticConcurrencyException","id","newE","codeFilter","filter","x","type","lowercaseIfString","by","startsWith","toLowerCase","tsplus_module_3","endsWith","includes","keys","some","k","v","compareCaseInsensitive","valueKey","mode","where","p","t","key","every","split","_","codeFilterJoinSelect","tsplus_module_5","tsplus_module_4","_rootId","flatMap","val","valA","valB"],"sourceRoot":"","sources":["../../../_src/services/Store/utils.ts"],"sourcesContent":[null]}
|