@fireproof/core 0.20.0-dev-preview-12 → 0.20.0-dev-preview-14

Sign up to get free protection for your applications and to get access to all the features.
package/index.cjs CHANGED
@@ -1077,9 +1077,6 @@ var MemoryGateway = class {
1077
1077
  // src/runtime/gateways/def-serde-gateway.ts
1078
1078
  var import_cement9 = require("@adviser/cement");
1079
1079
 
1080
- // src/runtime/gateways/fp-envelope-serialize.ts
1081
- var import_cement8 = require("@adviser/cement");
1082
-
1083
1080
  // src/blockstore/fp-envelope.ts
1084
1081
  var import_cement7 = require("@adviser/cement");
1085
1082
  var FPEnvelopeType = /* @__PURE__ */ ((FPEnvelopeType2) => {
@@ -1097,6 +1094,7 @@ function File2FPMsg(fpfile) {
1097
1094
  }
1098
1095
 
1099
1096
  // src/runtime/gateways/fp-envelope-serialize.ts
1097
+ var import_cement8 = require("@adviser/cement");
1100
1098
  var import_clock = require("@fireproof/vendor/@web3-storage/pail/clock");
1101
1099
  var import_base64 = require("multiformats/bases/base64");
1102
1100
  var import_multiformats = require("multiformats");
@@ -1250,6 +1248,7 @@ async function fpDeserialize(sthis, url, intoRaw, pdecoder) {
1250
1248
  // src/runtime/gateways/def-serde-gateway.ts
1251
1249
  var DefSerdeGateway = class {
1252
1250
  constructor(gw) {
1251
+ this.subscribeFn = /* @__PURE__ */ new Map();
1253
1252
  this.gw = gw;
1254
1253
  }
1255
1254
  start(sthis, baseURL) {
@@ -1264,13 +1263,38 @@ var DefSerdeGateway = class {
1264
1263
  async put(sthis, url, env) {
1265
1264
  const rUint8 = await fpSerialize(sthis, env);
1266
1265
  if (rUint8.isErr()) return rUint8;
1267
- return this.gw.put(url, rUint8.Ok(), sthis);
1266
+ const ret = this.gw.put(url, rUint8.Ok(), sthis);
1267
+ if (env.type === "meta" /* META */) {
1268
+ if (this.subscribeFn.has(url.toString())) {
1269
+ this.subscribeFn.get(url.toString())(env);
1270
+ }
1271
+ }
1272
+ return ret;
1268
1273
  }
1269
1274
  async get(sthis, url) {
1270
1275
  const res = await this.gw.get(url, sthis);
1271
1276
  if (res.isErr()) return import_cement9.Result.Err(res.Err());
1272
1277
  return fpDeserialize(sthis, url, res);
1273
1278
  }
1279
+ async subscribe(sthis, url, callback) {
1280
+ if (!this.gw.subscribe) {
1281
+ this.subscribeFn.set(url.toString(), callback);
1282
+ return import_cement9.Result.Ok(() => {
1283
+ this.subscribeFn.delete(url.toString());
1284
+ });
1285
+ }
1286
+ const unreg = await this.gw.subscribe(
1287
+ url,
1288
+ (raw2) => {
1289
+ fpDeserialize(sthis, url, import_cement9.Result.Ok(raw2)).then((res) => {
1290
+ if (res.isErr()) return;
1291
+ callback(res.Ok());
1292
+ });
1293
+ },
1294
+ sthis
1295
+ );
1296
+ return unreg;
1297
+ }
1274
1298
  async delete(sthis, url) {
1275
1299
  return this.gw.delete(url, sthis);
1276
1300
  }
@@ -4646,6 +4670,7 @@ var import_cement20 = require("@adviser/cement");
4646
4670
  // src/runtime/gateways/index.ts
4647
4671
  var gateways_exports = {};
4648
4672
  __export(gateways_exports, {
4673
+ DefSerdeGateway: () => DefSerdeGateway,
4649
4674
  file: () => file_exports,
4650
4675
  fpDeserialize: () => fpDeserialize,
4651
4676
  fpSerialize: () => fpSerialize
@@ -4660,6 +4685,6 @@ __export(file_exports, {
4660
4685
 
4661
4686
  // src/version.ts
4662
4687
  var PACKAGE_VERSION = Object.keys({
4663
- "0.20.0-dev-preview-12": "xxxx"
4688
+ "0.20.0-dev-preview-14": "xxxx"
4664
4689
  })[0];
4665
4690
  //# sourceMappingURL=index.cjs.map