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

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/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
  }
@@ -4661,6 +4685,6 @@ __export(file_exports, {
4661
4685
 
4662
4686
  // src/version.ts
4663
4687
  var PACKAGE_VERSION = Object.keys({
4664
- "0.20.0-dev-preview-13": "xxxx"
4688
+ "0.20.0-dev-preview-14": "xxxx"
4665
4689
  })[0];
4666
4690
  //# sourceMappingURL=index.cjs.map