@effect-app/infra 0.21.7 → 0.22.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 +24 -0
- package/_cjs/_ext/Array.cjs +3 -2
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/codec.cjs +1 -1
- package/_cjs/api/codec.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +18 -17
- 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 +2 -2
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +40 -40
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +15 -15
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +2 -2
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/api/routing.cjs +49 -49
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +2 -2
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +6 -6
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +4 -4
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/instrument.cjs +1 -1
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +4 -4
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +8 -7
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +5 -4
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +8 -8
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +3 -3
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +3 -3
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +11 -10
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +5 -5
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +21 -21
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +38 -38
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +10 -9
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +12 -12
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +15 -14
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/index.cjs +4 -4
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +18 -18
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +17 -17
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +8 -8
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +14 -14
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +19 -19
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +9 -9
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/dist/_ext/Array.js +4 -3
- package/dist/api/codec.js +2 -2
- package/dist/api/defaultErrorHandler.js +18 -18
- package/dist/api/express/makeJsonSchema.js +5 -5
- package/dist/api/express/makeOpenApiSpecs.js +2 -2
- package/dist/api/express/schema/requestHandler.js +36 -36
- package/dist/api/express/schema/routing.js +16 -16
- package/dist/api/reportError.js +4 -4
- package/dist/api/routing.js +58 -58
- package/dist/api/setupRequest.js +3 -3
- package/dist/api/writeDocs.js +7 -7
- package/dist/errorReporter.js +3 -3
- package/dist/instrument.js +2 -2
- package/dist/rateLimit.js +5 -5
- package/dist/services/Emailer/Sendgrid.js +9 -8
- package/dist/services/Emailer/fake.js +6 -5
- package/dist/services/Operations/live.js +9 -9
- package/dist/services/Operations/service.js +4 -4
- package/dist/services/QueueMaker/errors.js +4 -4
- package/dist/services/QueueMaker/memQueue.js +10 -10
- package/dist/services/QueueMaker/sbqueue.js +5 -5
- package/dist/services/Repository.js +15 -15
- package/dist/services/Store/Cosmos.js +40 -40
- package/dist/services/Store/Disk.js +12 -11
- package/dist/services/Store/Memory.js +14 -14
- package/dist/services/Store/Redis.js +16 -15
- package/dist/services/Store/index.js +5 -5
- package/dist/services/simpledb/cosmosdb.js +18 -18
- package/dist/services/simpledb/diskdb.js +14 -14
- package/dist/services/simpledb/memdb.js +9 -9
- package/dist/services/simpledb/mongodb.js +13 -13
- package/dist/services/simpledb/redisdb.js +16 -16
- package/dist/services/simpledb/simpledb.js +12 -12
- package/package.json +11 -11
|
@@ -16,20 +16,20 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
16
16
|
// prev[cur] = 1
|
|
17
17
|
// return prev
|
|
18
18
|
// }, {} as Record<string, number>)
|
|
19
|
-
const setup = (type, indexes) => tsplus_module_1.flatMap(
|
|
19
|
+
const setup = (type, indexes) => tsplus_module_1.flatMap(db => tsplus_module_1.tryPromise(() => db.collection(type).createIndexes(indexes)))(tsplus_module_1.tap(db => tsplus_module_1.tryPromise(() => db.createCollection(type).catch(err => console.warn(err))))(Mongo.db));
|
|
20
20
|
function createContext() {
|
|
21
21
|
return (type, encode, decode,
|
|
22
22
|
// schemaVersion: string,
|
|
23
23
|
indexes) => {
|
|
24
|
-
return tsplus_module_1.map(
|
|
24
|
+
return tsplus_module_1.map(() => ({
|
|
25
25
|
find: simpledb.find(find, decode, type),
|
|
26
26
|
findBy,
|
|
27
27
|
save: simpledb.storeDirectly(store, type)
|
|
28
|
-
}));
|
|
28
|
+
}))(setup(type, indexes));
|
|
29
29
|
function find(id) {
|
|
30
|
-
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(
|
|
30
|
+
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_2.fromNullable)(tsplus_module_1.flatMap(db => tsplus_module_1.tryPromise(() => db.collection(type).findOne({
|
|
31
31
|
_id: id
|
|
32
|
-
})))
|
|
32
|
+
})))(Mongo.db)), ({
|
|
33
33
|
data,
|
|
34
34
|
version
|
|
35
35
|
}) => ({
|
|
@@ -38,11 +38,11 @@ function createContext() {
|
|
|
38
38
|
}));
|
|
39
39
|
}
|
|
40
40
|
function findBy(keys) {
|
|
41
|
-
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_1.flatMap(
|
|
41
|
+
return tsplus_module_3.mapOption(tsplus_module_1.map(tsplus_module_2.fromNullable)(tsplus_module_1.flatMap(db => tsplus_module_1.tryPromise(() => db.collection(type).findOne(keys, {
|
|
42
42
|
projection: {
|
|
43
43
|
_id: 1
|
|
44
44
|
}
|
|
45
|
-
})))
|
|
45
|
+
})))(Mongo.db)), ({
|
|
46
46
|
_id
|
|
47
47
|
}) => _id);
|
|
48
48
|
}
|
|
@@ -58,7 +58,12 @@ function createContext() {
|
|
|
58
58
|
data
|
|
59
59
|
}, {
|
|
60
60
|
checkKeys: false // support for keys with `.` and `$`. NOTE: you can write them, read them, but NOT query for them.
|
|
61
|
-
})))), currentVersion => tsplus_module_1.flatMap(
|
|
61
|
+
})))), currentVersion => tsplus_module_1.flatMap(x => {
|
|
62
|
+
if (!x.modifiedCount) {
|
|
63
|
+
return tsplus_module_1.fail(new _shared.OptimisticLockException(type, record.id));
|
|
64
|
+
}
|
|
65
|
+
return tsplus_module_3.unit;
|
|
66
|
+
})(tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => db.collection(type).replaceOne({
|
|
62
67
|
_id: record.id,
|
|
63
68
|
version: currentVersion
|
|
64
69
|
}, {
|
|
@@ -67,12 +72,7 @@ function createContext() {
|
|
|
67
72
|
data
|
|
68
73
|
}, {
|
|
69
74
|
upsert: false
|
|
70
|
-
})))
|
|
71
|
-
if (!x.modifiedCount) {
|
|
72
|
-
return tsplus_module_1.fail(new _shared.OptimisticLockException(type, record.id));
|
|
73
|
-
}
|
|
74
|
-
return tsplus_module_3.unit;
|
|
75
|
-
}))(currentVersion));
|
|
75
|
+
})))))(currentVersion));
|
|
76
76
|
return {
|
|
77
77
|
version,
|
|
78
78
|
data: record
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.cjs","mappings":";;;;;;;;;AAEA;AAEA;AACA;AAAyC;AAAA;AAGzC;AACA;AACA;AACA;AAEA,MAAMA,KAAK,GAAG,CAACC,IAAY,EAAEC,OAA2B,KACtDC,
|
|
1
|
+
{"version":3,"file":"mongodb.cjs","mappings":"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","names":["setup","type","indexes","tsplus_module_1","db","collection","createIndexes","createCollection","catch","err","console","warn","Mongo","createContext","encode","decode","find","simpledb","findBy","save","storeDirectly","store","id","tsplus_module_3","findOne","_id","data","version","keys","projection","record","currentVersion","$","tsplus_module_2","cv","parseInt","toString","insertOne","timestamp","Date","checkKeys","x","modifiedCount","OptimisticLockException","replaceOne","upsert"],"sourceRoot":"","sources":["../../../_src/services/simpledb/mongodb.ts"],"sourcesContent":[null]}
|
|
@@ -20,40 +20,40 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
20
20
|
const ttl = 10 * 1000;
|
|
21
21
|
function createContext() {
|
|
22
22
|
return (type, encode, decode, schemaVersion, makeIndexKey) => {
|
|
23
|
-
const getData = (0, _Function.flow)(encode, _ => tsplus_module_1.map(
|
|
23
|
+
const getData = (0, _Function.flow)(encode, _ => tsplus_module_1.map(JSON.stringify)(_));
|
|
24
24
|
return {
|
|
25
25
|
find: simpledb.find(find, decode, type),
|
|
26
26
|
findByIndex: getIdx,
|
|
27
27
|
save: simpledb.store(find, store, lockRedisRecord, type)
|
|
28
28
|
};
|
|
29
29
|
function find(id) {
|
|
30
|
-
return tsplus_module_1.orDie(tsplus_module_2.flatMapOption(RED.hmgetAll(getKey(id)), v => tsplus_module_1.mapError(
|
|
30
|
+
return tsplus_module_1.orDie(tsplus_module_2.flatMapOption(RED.hmgetAll(getKey(id)), v => tsplus_module_1.mapError(e => new _shared.ConnectionException(new Error(e.toString())))(tsplus_module_1.map(({
|
|
31
31
|
data,
|
|
32
32
|
version
|
|
33
33
|
}) => ({
|
|
34
34
|
data: JSON.parse(data),
|
|
35
35
|
version
|
|
36
|
-
})),
|
|
36
|
+
}))((0, _Function.pipe)(RedisSerializedDBRecord.Parser, MO.condemnFail)(v)))));
|
|
37
37
|
}
|
|
38
38
|
function store(record, currentVersion) {
|
|
39
39
|
const version = tsplus_module_3.getOrElse(() => "1")(tsplus_module_3.map(cv => (parseInt(cv) + 1).toString())(currentVersion));
|
|
40
|
-
return tsplus_module_3.match(() => tsplus_module_1.scoped(tsplus_module_1.zipRight(
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
return tsplus_module_3.match(() => tsplus_module_1.scoped(tsplus_module_1.zipRight(tsplus_module_1.map(() => ({
|
|
41
|
+
version,
|
|
42
|
+
data: record
|
|
43
|
+
}))(tsplus_module_1.orDie(tsplus_module_1.zipRight(setIndex(record))(tsplus_module_1.flatMap(data => hmSetRec(getKey(record.id), {
|
|
43
44
|
version,
|
|
44
45
|
timestamp: new Date(),
|
|
45
46
|
data
|
|
46
|
-
}))
|
|
47
|
+
}))(tsplus_module_1.zipRight(getData(record))(tsplus_module_2.zipRightOption(getIndex(record), tsplus_module_1.fail(() => new Error("Combination already exists, abort"))))
|
|
48
|
+
// TODO: instead use MULTI & EXEC to make it in one command?
|
|
49
|
+
)))))(lockIndex(record))), () => tsplus_module_1.map(() => ({
|
|
47
50
|
version,
|
|
48
51
|
data: record
|
|
49
|
-
}))
|
|
52
|
+
}))(tsplus_module_1.orDie(tsplus_module_1.flatMap(data => hmSetRec(getKey(record.id), {
|
|
50
53
|
version,
|
|
51
54
|
timestamp: new Date(),
|
|
52
55
|
data
|
|
53
|
-
})))
|
|
54
|
-
version,
|
|
55
|
-
data: record
|
|
56
|
-
})))(currentVersion);
|
|
56
|
+
}))(getData(record)))))(currentVersion);
|
|
57
57
|
}
|
|
58
58
|
function getIndex(record) {
|
|
59
59
|
const index = makeIndexKey(record);
|
|
@@ -68,7 +68,7 @@ function createContext() {
|
|
|
68
68
|
return lockRedisIdx(index);
|
|
69
69
|
}
|
|
70
70
|
function getIdx(index) {
|
|
71
|
-
return tsplus_module_1.map(
|
|
71
|
+
return tsplus_module_1.map(_ => tsplus_module_3.map(i => i)(_))(RED.hget(getIdxKey(index), index.key));
|
|
72
72
|
}
|
|
73
73
|
function setIdx(index, r) {
|
|
74
74
|
return RED.hset(getIdxKey(index), index.key, r.id);
|
|
@@ -76,20 +76,20 @@ function createContext() {
|
|
|
76
76
|
function lockRedisIdx(index) {
|
|
77
77
|
const lockKey = getIdxLockKey(index);
|
|
78
78
|
// acquire
|
|
79
|
-
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(
|
|
79
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(err => new _shared.CouldNotAquireDbLockException(type, lockKey, err),
|
|
80
80
|
// release
|
|
81
81
|
lock => ({
|
|
82
82
|
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
83
|
-
})), l => l.release);
|
|
83
|
+
}))(tsplus_module_1.flatMap(lock => tsplus_module_1.tryPromise(() => lock.lock(lockKey, ttl)))(RED.lock)), l => l.release);
|
|
84
84
|
}
|
|
85
85
|
function lockRedisRecord(id) {
|
|
86
86
|
// acquire
|
|
87
|
-
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(
|
|
87
|
+
return tsplus_module_1.acquireRelease(tsplus_module_1.mapBoth(err => new _shared.CouldNotAquireDbLockException(type, id, err),
|
|
88
88
|
// release
|
|
89
89
|
lock => ({
|
|
90
90
|
// TODO
|
|
91
91
|
release: tsplus_module_1.orDie(tsplus_module_1.tryPromise(() => lock.unlock()))
|
|
92
|
-
})), l => l.release);
|
|
92
|
+
}))(tsplus_module_1.flatMap(lock => tsplus_module_1.tryPromise(() => lock.lock(getLockKey(id), ttl)))(RED.lock)), l => l.release);
|
|
93
93
|
}
|
|
94
94
|
function getKey(id) {
|
|
95
95
|
return `v${schemaVersion}.${(0, _shared.getRecordName)(type, id)}`;
|
|
@@ -106,9 +106,9 @@ function createContext() {
|
|
|
106
106
|
};
|
|
107
107
|
function hmSetRec(key, val) {
|
|
108
108
|
const enc = RedisSerializedDBRecord.Encoder(val);
|
|
109
|
-
return tsplus_module_1.flatMap(
|
|
109
|
+
return tsplus_module_1.flatMap(client => tsplus_module_1.uninterruptible(tsplus_module_1.async(res => {
|
|
110
110
|
client.hmset(key, "version", enc.version, "timestamp", enc.timestamp, "data", enc.data, err => err ? res(tsplus_module_1.fail(new _shared.ConnectionException(err))) : res(tsplus_module_1.sync(() => void 0)));
|
|
111
|
-
})));
|
|
111
|
+
})))(RED.client);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
class RedisSerializedDBRecord extends MO.Model()({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redisdb.cjs","mappings":";;;;;;;;;;AAEA;AACA;AAGA;AAEA;AACA;AAAyC;AAAA;AATzC;;AAWA,MAAMA,GAAG,GAAG,EAAE,GAAG,IAAI;AAEf,SAAUC,aAAa;EAC3B,OAAO,CACLC,IAAY,EACZC,MAAiD,EACjDC,MAA8C,EAC9CC,aAAqB,EACrBC,YAA6B,KAC3B;IACF,MAAMC,OAAO,GAAG,kBAAI,EAACJ,MAAM,EAAEK,CAAC,IAAIC,
|
|
1
|
+
{"version":3,"file":"redisdb.cjs","mappings":"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","names":["ttl","createContext","type","encode","decode","schemaVersion","makeIndexKey","getData","_","tsplus_module_1","JSON","stringify","find","simpledb","findByIndex","getIdx","save","store","lockRedisRecord","id","tsplus_module_2","hmgetAll","getKey","v","e","ConnectionException","Error","toString","data","version","parse","RedisSerializedDBRecord","Parser","MO","condemnFail","record","currentVersion","tsplus_module_3","cv","parseInt","setIndex","hmSetRec","timestamp","Date","lockIndex","getIndex","index","setIdx","lockRedisIdx","i","RED","hget","getIdxKey","key","r","hset","lockKey","getIdxLockKey","err","CouldNotAquireDbLockException","lock","release","unlock","l","getLockKey","doc","val","enc","Encoder","client","res","hmset","Model","prop","string","date"],"sourceRoot":"","sources":["../../../_src/services/simpledb/redisdb.ts"],"sourcesContent":[null]}
|
|
@@ -41,36 +41,36 @@ function makeLiveRecordCache() {
|
|
|
41
41
|
// module tag
|
|
42
42
|
const RecordCache = tsplus_module_2.Tag();
|
|
43
43
|
exports.RecordCache = RecordCache;
|
|
44
|
-
const LiveRecordCache =
|
|
44
|
+
const LiveRecordCache = tsplus_module_3.toLayer(tsplus_module_1.sync(() => makeLiveRecordCache()), RecordCache);
|
|
45
45
|
exports.LiveRecordCache = LiveRecordCache;
|
|
46
46
|
const getM = type => eff => tsplus_module_1.gen(function* ($) {
|
|
47
47
|
const {
|
|
48
48
|
get
|
|
49
49
|
} = yield* $(tsplus_module_1.service(RecordCache));
|
|
50
|
-
return yield* $(tsplus_module_1.flatMap(get(type)
|
|
50
|
+
return yield* $(tsplus_module_1.flatMap(eff)(get(type)));
|
|
51
51
|
});
|
|
52
52
|
function find(tryRead, decode, type) {
|
|
53
53
|
const getCache = getM(type);
|
|
54
54
|
const read = id => tsplus_module_3.mapOption(tsplus_module_3.tapOption(tsplus_module_3.flatMapOption(tryRead(id), ({
|
|
55
55
|
data,
|
|
56
56
|
version
|
|
57
|
-
}) => tsplus_module_1.mapBoth(
|
|
57
|
+
}) => tsplus_module_1.mapBoth(err => new InvalidStateError("DB serialisation Issue", err), data => ({
|
|
58
58
|
data,
|
|
59
59
|
version
|
|
60
|
-
}))), r => getCache(c => c.set(id, r))), r => r.data);
|
|
61
|
-
return id => getCache(c => tsplus_module_1.orElse(tsplus_module_3.mapOption(c.find(id), existing => existing.data)
|
|
60
|
+
}))(decode(data))), r => getCache(c => c.set(id, r))), r => r.data);
|
|
61
|
+
return id => getCache(c => tsplus_module_1.orElse(() => read(id))(tsplus_module_3.mapOption(c.find(id), existing => existing.data)));
|
|
62
62
|
}
|
|
63
63
|
function storeDirectly(save, type) {
|
|
64
64
|
const getCache = getM(type);
|
|
65
|
-
return record => getCache(c => tsplus_module_1.map(
|
|
65
|
+
return record => getCache(c => tsplus_module_1.map(r => r.data)(tsplus_module_1.tap(r => c.set(record.id, r))(tsplus_module_1.flatMap(cv => save(record, cv))(tsplus_module_3.mapOption(c.find(record.id), x => x.version)))));
|
|
66
66
|
}
|
|
67
67
|
function store(tryRead, save, lock, type) {
|
|
68
68
|
const getCache = getM(type);
|
|
69
|
-
return record => getCache(c => tsplus_module_1.map(
|
|
69
|
+
return record => getCache(c => tsplus_module_1.map(r => r.data)(tsplus_module_1.tap(r => c.set(record.id, r))(tsplus_module_1.flatMap(_ => tsplus_module_5.match(() => save(record, tsplus_module_4.none), confirmVersionAndSave(record))(_))(tsplus_module_3.mapOption(c.find(record.id), x => x.version)))));
|
|
70
70
|
function confirmVersionAndSave(record) {
|
|
71
|
-
return cv => tsplus_module_1.scoped(tsplus_module_1.zipRight(
|
|
71
|
+
return cv => tsplus_module_1.scoped(tsplus_module_1.zipRight(tsplus_module_1.zipRight(save(record, tsplus_module_5.some(cv)))(tsplus_module_1.tap(({
|
|
72
72
|
version
|
|
73
|
-
}) => version !== cv ? tsplus_module_1.fail(new _shared.OptimisticLockException(type, record.id)) : tsplus_module_3.unit)
|
|
73
|
+
}) => version !== cv ? tsplus_module_1.fail(new _shared.OptimisticLockException(type, record.id)) : tsplus_module_3.unit)(tsplus_module_1.flatMap(_ => tsplus_module_5.match(() => tsplus_module_1.fail(new InvalidStateError("record is gone")), tsplus_module_1.succeed)(_))(tryRead(record.id)))))(lock(record.id)));
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
//# sourceMappingURL=simpledb.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpledb.cjs","mappings":";;;;;;;;;;;;;;;AACA;AAA8D;AAAA;AAGxD,MAAOA,iBAAiB;EAE5BC,YAAqBC,OAAe,EAAWC,OAAiB;IAA3C,YAAO,GAAPD,OAAO;IAAmB,YAAO,GAAPC,OAAO;IAD7C,SAAI,GAAG,mBAAmB;EACgC;;AACpE;AAEK,SAAUC,mBAAmB;EACjC,MAAMC,CAAC,GAAG,IAAIC,GAAG,EAAsC;EACvD,OAAO;IACLC,GAAG,EAAMC,IAAY,IACnBC,qBAAY,MAAK;MACf,MAAMC,EAAE,GAAGL,CAAC,CAACE,GAAG,CAACC,IAAI,CAAC;MACtB,IAAI,CAACE,EAAE,EAAE;QACP,MAAMC,EAAE,GAAG,mBAAO,GAAmB;QACrCN,CAAC,CAACO,GAAG,CAACJ,IAAI,EAAEG,EAAE,CAAC;QACf,OAAOA,EAAwC;;MAEjD,OAAOD,EAAwC;IACjD,CAAC;GACJ;AACH;AAIA;AACO,MAAMG,WAAW,GAAGC,mBAAG,EAAe;AAAA;AAEtC,MAAMC,eAAe,
|
|
1
|
+
{"version":3,"file":"simpledb.cjs","mappings":"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","names":["InvalidStateError","constructor","message","details","makeLiveRecordCache","m","Map","get","type","tsplus_module_1","ex","nm","set","RecordCache","tsplus_module_2","LiveRecordCache","tsplus_module_3","getM","eff","$","find","tryRead","decode","getCache","read","id","data","version","err","r","c","existing","storeDirectly","save","record","cv","x","store","lock","_","tsplus_module_5","confirmVersionAndSave","OptimisticLockException"],"sourceRoot":"","sources":["../../../_src/services/simpledb/simpledb.ts"],"sourcesContent":[null]}
|
package/dist/_ext/Array.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/data/Chunk";
|
|
2
|
-
import * as tsplus_module_2 from "@effect-app/
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/core/Chunk";
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/prelude/_ext/misc";
|
|
3
4
|
import { inspect } from "util";
|
|
4
5
|
import { NotFoundError } from "../errors.js";
|
|
5
6
|
/**
|
|
@@ -10,7 +11,7 @@ import { NotFoundError } from "../errors.js";
|
|
|
10
11
|
* @tsplus fluent ReadonlyArray getFirstById
|
|
11
12
|
*/
|
|
12
13
|
export function getFirstById_(a, id, type) {
|
|
13
|
-
return
|
|
14
|
+
return tsplus_module_3.encaseMaybeInEffect_(tsplus_module_2.findFirstSimple(tsplus_module_1.fromIterable(a), _ => _.id === id), () => new NotFoundError(type, id));
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
17
|
* @tsplus fluent Object.Ops inspect
|
|
@@ -18,4 +19,4 @@ export function getFirstById_(a, id, type) {
|
|
|
18
19
|
export function RecordInspect(o, showHidden, depth, color) {
|
|
19
20
|
return inspect(o.subject, showHidden, depth, color);
|
|
20
21
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL19leHQvQXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTVDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLENBQWMsRUFDZCxFQUFNLEVBQ04sSUFBVTtJQUVWLE9BQU8scUNBQUEsZ0NBQUEsNkJBQW1CLENBQUMsQ0FBQyxFQUNmLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFDWixHQUFHLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUN0RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUMzQixDQUFnQixFQUNoQixVQUFnQyxFQUNoQyxLQUFpQyxFQUNqQyxLQUEyQjtJQUUzQixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUE7QUFDckQsQ0FBQyJ9
|
package/dist/api/codec.js
CHANGED
|
@@ -12,6 +12,6 @@ export function makeCodec(self) {
|
|
|
12
12
|
return [decode, encode, encodeToMap];
|
|
13
13
|
}
|
|
14
14
|
function toMap(encode) {
|
|
15
|
-
return (a) => tsplus_module_1.map(tsplus_module_2.ext_collectAll(a.map(task => tsplus_module_1.tuple(tsplus_module_1.sync(() => task.id), encode(task))))
|
|
15
|
+
return (a) => tsplus_module_1.map(_ => new Map(_))(tsplus_module_2.ext_collectAll(a.map(task => tsplus_module_1.tuple(tsplus_module_1.sync(() => task.id), encode(task)))));
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2FwaS9jb2RlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUdwRCxNQUFNLFVBQVUsU0FBUyxDQU12QixJQUFxRTtJQUNyRSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUM3QyxlQUFlO0lBQ2YsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFVLEVBQUUsR0FBZSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzdELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFN0IsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRSxDQUFDLDJCQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNqQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQVUsQ0FBQTtBQUMvQyxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQThCLE1BQXlDO0lBQ25GLE9BQU8sQ0FBQyxDQUFtQixFQUFFLEVBQUUsQ0FDN0Isb0JBRU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFGdEIsK0JBQUEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFhLDJCQUFPLElBQUksQ0FBQyxFQUFhLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN0RCxDQUNRLENBQUE7QUFDM0IsQ0FBQyJ9
|
|
@@ -5,32 +5,32 @@ import * as tsplus_module_4 from "@effect/io/Debug";
|
|
|
5
5
|
import * as tsplus_module_5 from "@effect/io/Schedule";
|
|
6
6
|
import { logRequestError } from "./reportError.js";
|
|
7
7
|
export function defaultBasicErrorHandler(_req, res, _requestContext, r2) {
|
|
8
|
-
return tsplus_module_4.untraced(() => tsplus_module_1.catchAll(tsplus_module_1.
|
|
8
|
+
return tsplus_module_4.untraced(() => tsplus_module_1.catchAll((err) => tsplus_module_1.flatMap(tsplus_module_1.die)(tsplus_module_1.map(() => err)(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err))))(tsplus_module_1.catchTag("ValidationError", err => tsplus_module_1.sync(() => {
|
|
9
9
|
res.status(400).send(err.errors);
|
|
10
|
-
}))
|
|
10
|
+
}))(tsplus_module_1.tapErrorCause(cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit)(r2))
|
|
11
11
|
// final catch all; expecting never so that unhandled known errors will show up
|
|
12
|
-
|
|
12
|
+
));
|
|
13
13
|
}
|
|
14
14
|
const optimisticConcurrencySchedule = tsplus_module_5.intersect(tsplus_module_5.recurWhile(a => a._tag === "OptimisticConcurrencyException"))(tsplus_module_5.once());
|
|
15
15
|
export function defaultErrorHandler(req, res, _, r2) {
|
|
16
16
|
const r3 = req.method === "PATCH"
|
|
17
|
-
? tsplus_module_1.retry(
|
|
17
|
+
? tsplus_module_1.retry(optimisticConcurrencySchedule)(r2)
|
|
18
18
|
: r2;
|
|
19
|
-
return tsplus_module_4.untraced(() => tsplus_module_1.catchAll(
|
|
20
|
-
res.status(400).send(err.errors);
|
|
21
|
-
})), "NotFoundError", err => tsplus_module_1.sync(() => {
|
|
22
|
-
res.status(404).send(err);
|
|
23
|
-
})), "NotLoggedInError", err => tsplus_module_1.sync(() => {
|
|
24
|
-
res.status(401).send(err);
|
|
25
|
-
})), "UnauthorizedError", err => tsplus_module_1.sync(() => {
|
|
26
|
-
res.status(403).send(err);
|
|
27
|
-
})), "InvalidStateError", err => tsplus_module_1.sync(() => {
|
|
28
|
-
res.status(422).send(err);
|
|
29
|
-
})), "OptimisticConcurrencyException", err => tsplus_module_1.sync(() => {
|
|
19
|
+
return tsplus_module_4.untraced(() => tsplus_module_1.catchAll((err) => tsplus_module_1.flatMap(tsplus_module_1.die)(tsplus_module_1.map(() => err)(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err))))(tsplus_module_1.catchTag("OptimisticConcurrencyException", err => tsplus_module_1.sync(() => {
|
|
30
20
|
// 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
|
|
31
21
|
res.status(412).send(err);
|
|
32
|
-
}))
|
|
22
|
+
}))(tsplus_module_1.catchTag("InvalidStateError", err => tsplus_module_1.sync(() => {
|
|
23
|
+
res.status(422).send(err);
|
|
24
|
+
}))(tsplus_module_1.catchTag("UnauthorizedError", err => tsplus_module_1.sync(() => {
|
|
25
|
+
res.status(403).send(err);
|
|
26
|
+
}))(tsplus_module_1.catchTag("NotLoggedInError", err => tsplus_module_1.sync(() => {
|
|
27
|
+
res.status(401).send(err);
|
|
28
|
+
}))(tsplus_module_1.catchTag("NotFoundError", err => tsplus_module_1.sync(() => {
|
|
29
|
+
res.status(404).send(err);
|
|
30
|
+
}))(tsplus_module_1.catchTag("ValidationError", err => tsplus_module_1.sync(() => {
|
|
31
|
+
res.status(400).send(err.errors);
|
|
32
|
+
}))(tsplus_module_1.tapErrorCause(cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit)(r3)))))))
|
|
33
33
|
// final catch all; expecting never so that unhandled known errors will show up
|
|
34
|
-
|
|
34
|
+
));
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL2RlZmF1bHRFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFbEQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxJQUFxQixFQUNyQixHQUFxQixFQUNyQixlQUErQixFQUMvQixFQUFvQztJQUVwQyxPQUFPLHlCQUFlLEdBQUcsRUFBRSxDQUN6Qix5QkFPWSxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQ3ZCLDZDQUFBLG9CQUdPLEdBQUcsRUFBRSxDQUFDLEdBQWMsRUFIM0IseUJBQ0UsZ0dBQWdHLEdBQUcsR0FBRyxDQUN2RyxDQUMyQixDQUNOLEVBWjFCLHlCQUVZLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ2pDLHFCQUFZLEdBQUcsRUFBRTtRQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDLENBQUMsRUFMTiw4QkFDaUIsS0FBSyxDQUFDLEVBQUUsQ0FBQywwQkFBQSxLQUFLLENBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQVksRUFEbEYsRUFBRSxDQUNpRixDQUk1RTtJQUNMLCtFQUErRTtLQU85RSxDQUNKLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSw2QkFBNkIsNkJBQ2pDLDJCQUFxQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZ0NBQWdDLENBQUMsRUFEbEQsc0JBQWUsQ0FDbUMsQ0FBQTtBQUV4RixNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEdBQW9CLEVBQ3BCLEdBQXFCLEVBQ3JCLENBQWlCLEVBQ2pCLEVBQW9DO0lBRXBDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEtBQUssT0FBTztRQUMvQixDQUFDLENBQUMsc0JBQVMsNkJBQTZCLEVBQXRDLEVBQUUsQ0FBcUM7UUFDekMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNOLE9BQU8seUJBQWUsR0FBRyxFQUFFLENBQ3pCLHlCQTRCWSxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQ3ZCLDZDQUFBLG9CQUdPLEdBQUcsRUFBRSxDQUFDLEdBQWMsRUFIM0IseUJBQ0UsZ0dBQWdHLEdBQUcsR0FBRyxDQUN2RyxDQUMyQixDQUNOLEVBakMxQix5QkFzQlksZ0NBQWdDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDaEQscUJBQVksR0FBRyxFQUFFO1FBQ2YsNElBQTRJO1FBQzVJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxFQTFCTix5QkFrQlksbUJBQW1CLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDbkMscUJBQVksR0FBRyxFQUFFO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLEVBckJOLHlCQWNZLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ25DLHFCQUFZLEdBQUcsRUFBRTtRQUNmLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxFQWpCTix5QkFVWSxrQkFBa0IsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUNsQyxxQkFBWSxHQUFHLEVBQUU7UUFDZixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsRUFiTix5QkFNWSxlQUFlLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDL0IscUJBQVksR0FBRyxFQUFFO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLEVBVE4seUJBRVksaUJBQWlCLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDakMscUJBQVksR0FBRyxFQUFFO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2xDLENBQUMsQ0FBQyxFQUxOLDhCQUNpQixLQUFLLENBQUMsRUFBRSxDQUFDLDBCQUFBLEtBQUssQ0FBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxxQkFBWSxFQURsRixFQUFFLENBQ2lGLENBSTVFLENBSUEsQ0FJQSxDQUlBLENBSUEsQ0FLQTtJQUNMLCtFQUErRTtLQU85RSxDQUNKLENBQUE7QUFDSCxDQUFDIn0=
|
|
@@ -8,7 +8,7 @@ const rx = /:(\w+)/g;
|
|
|
8
8
|
* Work in progress JSONSchema generator.
|
|
9
9
|
*/
|
|
10
10
|
export function makeJsonSchema(r) {
|
|
11
|
-
return tsplus_module_3.map(
|
|
11
|
+
return tsplus_module_3.map(e => {
|
|
12
12
|
const map = ({ method, path, responses, ...rest }) => ({
|
|
13
13
|
[method]: {
|
|
14
14
|
...rest,
|
|
@@ -18,15 +18,15 @@ export function makeJsonSchema(r) {
|
|
|
18
18
|
}, {})
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
return tsplus_module_1.reduce(
|
|
21
|
+
return tsplus_module_1.reduce({}, (prev, e) => {
|
|
22
22
|
const path = e.path.split("?")[0].replace(rx, (_a, b) => `{${b}}`);
|
|
23
23
|
prev[path] = {
|
|
24
24
|
...prev[path],
|
|
25
25
|
...map(e)
|
|
26
26
|
};
|
|
27
27
|
return prev;
|
|
28
|
-
});
|
|
29
|
-
});
|
|
28
|
+
})(e);
|
|
29
|
+
})(tsplus_module_2.ext_forEach(tsplus_module_1.fromIterable(r), RS.makeFromSchema));
|
|
30
30
|
}
|
|
31
31
|
class Response {
|
|
32
32
|
constructor(statusCode, type // string | JSONSchema | SubSchema
|
|
@@ -35,4 +35,4 @@ class Response {
|
|
|
35
35
|
this.type = type;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUpzb25TY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL2FwaS9leHByZXNzL21ha2VKc29uU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBSXpDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQTtBQUlwQjs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsQ0FBa0M7SUFDL0QsT0FBTyxvQkFFQSxDQUFDLENBQUMsRUFBRTtRQUNQLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksRUFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNSLEdBQUcsSUFBSTtnQkFDUCxTQUFTLEVBQUcsU0FBd0IsQ0FBQyxNQUFNLENBQ3pDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQTtvQkFDL0IsT0FBTyxJQUFJLENBQUE7Z0JBQ2IsQ0FBQyxFQUNELEVBQXNELENBQ3ZEO2FBQ0Y7U0FDRixDQUFDLENBQUE7UUFDRixPQUFPLHVCQUNMLEVBQTZELEVBQzdELENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ1YsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ1gsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNiLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBUTthQUNqQixDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDLEVBVEksQ0FBQyxDQVVQLENBQUE7SUFDSCxDQUFDLEVBMUJJLDRCQUFBLDZCQUFtQixDQUFDLENBQUMsRUFDWCxFQUFFLENBQUMsY0FBYyxDQUFDLENBeUIvQixDQUFBO0FBQ04sQ0FBQztBQUVELE1BQU0sUUFBUTtJQUNaLFlBQ2tCLFVBQWtCLEVBQ2xCLElBQVMsQ0FBQyxrQ0FBa0M7O1FBRDVDLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBSztJQUN4QixDQUFDO0NBQ0wifQ==
|
|
@@ -5,7 +5,7 @@ import { makeJsonSchema } from "./makeJsonSchema.js";
|
|
|
5
5
|
export function makeOpenApiSpecs(rdescs, info) {
|
|
6
6
|
return tsplus_module_2.gen(function* ($) {
|
|
7
7
|
const ref = yield* $(tsplus_module_1.make(new Map()));
|
|
8
|
-
const paths = yield* $(tsplus_module_2.provideService(
|
|
8
|
+
const paths = yield* $(tsplus_module_2.provideService(References, { ref })(makeJsonSchema(rdescs)));
|
|
9
9
|
const refs = yield* $(tsplus_module_1.get(ref));
|
|
10
10
|
const parameterRefs = {}; // todos
|
|
11
11
|
const schemas = {};
|
|
@@ -49,4 +49,4 @@ export function makeOpenApiSpecs(rdescs, info) {
|
|
|
49
49
|
};
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZU9wZW5BcGlTcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvYXBpL2V4cHJlc3MvbWFrZU9wZW5BcGlTcGVjcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4REFBOEQsQ0FBQTtBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFHcEQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixNQUFvQyxFQUNwQyxJQUFpQjtJQUVqQixPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUE4QyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM5RSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsK0JBQXNDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUF6RCxjQUFjLENBQUMsTUFBTSxDQUFDLENBQW9DLENBQUMsQ0FBQTtRQUNsRixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFDLEdBQUcsRUFBSyxDQUFBO1FBQzlCLE1BQU0sYUFBYSxHQUF3QixFQUFFLENBQUEsQ0FBQyxRQUFRO1FBQ3RELE1BQU0sT0FBTyxHQUF3QixFQUFFLENBQUE7UUFDdkMsTUFBTSxlQUFlLEdBQUc7WUFDdEIsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixZQUFZLEVBQUUsS0FBSzthQUNwQjtTQUNGLENBQUEsQ0FBQyxtREFBbUQ7UUFDckQsTUFBTSxVQUFVLEdBQUcsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsQ0FBQTtRQUUxRSxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsQyxnREFBZ0Q7WUFDaEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUM3QjtRQUVELE9BQU87WUFDTCxPQUFPLEVBQUUsT0FBTztZQUNoQixJQUFJLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLGNBQWMsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNuQixDQUFDLENBQUM7d0JBQ0EsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTt3QkFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSzt3QkFDekIsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRztxQkFDdEI7b0JBQ0QsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNuQixDQUFDLENBQUM7d0JBQ0EsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTt3QkFDdkIsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRztxQkFDdEI7b0JBQ0QsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCO1lBQ0QsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLO1lBQ0wsVUFBVTtZQUNWLFFBQVE7U0FDVCxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
|