rads-db 0.1.75 → 0.1.77

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/dist/index.cjs CHANGED
@@ -684,14 +684,20 @@ function getRadsDbMethods(key, computedContext, driverInstance) {
684
684
  doc = merge(oldDoc, doc);
685
685
  if (mustCleanNulls)
686
686
  cleanUndefinedAndNull(doc);
687
- doc = validators[key](doc);
688
687
  return { oldDoc, doc };
689
688
  });
690
- const docsToSave = docArgsToSave.map((x) => x.doc);
691
- await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
692
689
  await handlePrecomputed(computedContext, docArgsToSave, ctx);
693
690
  const beforePutResults = await handleEffectsBeforePut(computedContext, docArgsToSave, ctx);
694
691
  await beforePut(docArgsToSave, ctx, computedContext);
692
+ for (const d of docArgsToSave) {
693
+ const validatedDoc = validators[key](d.doc);
694
+ for (const f of precomputedFields || []) {
695
+ ___default.set(validatedDoc, f, ___default.get(d.doc, f));
696
+ }
697
+ d.doc = validatedDoc;
698
+ }
699
+ await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
700
+ const docsToSave = docArgsToSave.map((x) => x.doc);
695
701
  await driverInstance.putMany(docsToSave, ctx);
696
702
  await handleEffectsAfterPut(computedContext, docArgsToSave, beforePutResults, ctx);
697
703
  await afterPut(docArgsToSave, ctx, computedContext);
@@ -745,23 +751,28 @@ function getRadsDbMethods(key, computedContext, driverInstance) {
745
751
  doc = merge(oldDoc, doc);
746
752
  if (mustCleanNulls)
747
753
  cleanUndefinedAndNull(doc);
748
- doc = validators[key](doc);
749
- if (oldDoc && precomputedFields) {
750
- for (const f of precomputedFields) {
751
- ___default.set(doc, f, ___default.get(oldDoc, f));
752
- }
753
- }
754
754
  const docArgsToSave = [{ doc, oldDoc }];
755
- await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
756
755
  await handlePrecomputed(computedContext, docArgsToSave, ctx);
757
756
  const beforePutResults = await handleEffectsBeforePut(computedContext, docArgsToSave, ctx);
758
757
  await beforePut(docArgsToSave, ctx, computedContext);
758
+ const validatedDoc = validators[key](doc);
759
+ docArgsToSave[0].doc = validatedDoc;
760
+ if (precomputedFields) {
761
+ for (const f of precomputedFields) {
762
+ ___default.set(validatedDoc, f, ___default.get(doc, f));
763
+ }
764
+ }
765
+ doc = validatedDoc;
766
+ await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
759
767
  await driverInstance.put(doc, ctx);
760
768
  await handleEffectsAfterPut(computedContext, docArgsToSave, beforePutResults, ctx);
761
769
  await afterPut(docArgsToSave, ctx, computedContext);
762
770
  return doc;
763
771
  },
764
772
  async verifyMany(args, ctx) {
773
+ if (driverInstance.verifyMany) {
774
+ return driverInstance.verifyMany(args, ctx);
775
+ }
765
776
  ctx = { ...options.context, ...ctx };
766
777
  if (args?.dryRun) {
767
778
  ctx._logs = ctx._logs || [];
@@ -774,7 +785,7 @@ function getRadsDbMethods(key, computedContext, driverInstance) {
774
785
  const incorrectDocs = [];
775
786
  const oldDocs = nodes;
776
787
  const docArgsToSave = oldDocs.map((oldDoc) => {
777
- let doc = merge(oldDoc, {});
788
+ const doc = merge(oldDoc, {});
778
789
  if (args?.recompute) {
779
790
  for (const p of args.recompute) {
780
791
  delete doc[p];
@@ -782,13 +793,19 @@ function getRadsDbMethods(key, computedContext, driverInstance) {
782
793
  }
783
794
  if (mustCleanNulls)
784
795
  cleanUndefinedAndNull(doc);
785
- doc = validators[key](doc);
786
796
  return { oldDoc, doc };
787
797
  });
788
- await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
789
798
  await handlePrecomputed(computedContext, docArgsToSave, ctx);
790
799
  const beforePutResults = await handleEffectsBeforePut(computedContext, docArgsToSave, ctx);
791
800
  await beforePut(docArgsToSave, ctx, computedContext);
801
+ for (const d of docArgsToSave) {
802
+ const validatedDoc = validators[key](d.doc);
803
+ for (const f of precomputedFields || []) {
804
+ ___default.set(validatedDoc, f, ___default.get(d.doc, f));
805
+ }
806
+ d.doc = validatedDoc;
807
+ }
808
+ await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
792
809
  for (const { oldDoc, doc } of docArgsToSave) {
793
810
  const d = diff(doc, oldDoc);
794
811
  if (___default.isEmpty(d))
package/dist/index.d.ts CHANGED
@@ -214,8 +214,9 @@ interface MinimalDriver {
214
214
  getAgg?: (args: GetAggArgsAny, ctx?: RadsRequestContext) => MaybePromise<Record<string, any>>;
215
215
  clear?: (ctx?: RadsRequestContext) => MaybePromise<void>;
216
216
  put?: (data: Record<string, any>, ctx?: RadsRequestContext) => MaybePromise<void>;
217
+ verifyMany?: (args?: VerifyManyArgsAny, ctx?: RadsRequestContext) => MaybePromise<VerifyManyResponse>;
217
218
  }
218
- type Driver = Required<MinimalDriver>;
219
+ type Driver = Required<Omit<MinimalDriver, 'verifyMany'>> & Pick<MinimalDriver, 'verifyMany'>;
219
220
  interface FieldDefinition {
220
221
  name: string;
221
222
  type: string;
package/dist/index.mjs CHANGED
@@ -677,14 +677,20 @@ function getRadsDbMethods(key, computedContext, driverInstance) {
677
677
  doc = merge(oldDoc, doc);
678
678
  if (mustCleanNulls)
679
679
  cleanUndefinedAndNull(doc);
680
- doc = validators[key](doc);
681
680
  return { oldDoc, doc };
682
681
  });
683
- const docsToSave = docArgsToSave.map((x) => x.doc);
684
- await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
685
682
  await handlePrecomputed(computedContext, docArgsToSave, ctx);
686
683
  const beforePutResults = await handleEffectsBeforePut(computedContext, docArgsToSave, ctx);
687
684
  await beforePut(docArgsToSave, ctx, computedContext);
685
+ for (const d of docArgsToSave) {
686
+ const validatedDoc = validators[key](d.doc);
687
+ for (const f of precomputedFields || []) {
688
+ _.set(validatedDoc, f, _.get(d.doc, f));
689
+ }
690
+ d.doc = validatedDoc;
691
+ }
692
+ await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
693
+ const docsToSave = docArgsToSave.map((x) => x.doc);
688
694
  await driverInstance.putMany(docsToSave, ctx);
689
695
  await handleEffectsAfterPut(computedContext, docArgsToSave, beforePutResults, ctx);
690
696
  await afterPut(docArgsToSave, ctx, computedContext);
@@ -738,23 +744,28 @@ function getRadsDbMethods(key, computedContext, driverInstance) {
738
744
  doc = merge(oldDoc, doc);
739
745
  if (mustCleanNulls)
740
746
  cleanUndefinedAndNull(doc);
741
- doc = validators[key](doc);
742
- if (oldDoc && precomputedFields) {
743
- for (const f of precomputedFields) {
744
- _.set(doc, f, _.get(oldDoc, f));
745
- }
746
- }
747
747
  const docArgsToSave = [{ doc, oldDoc }];
748
- await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
749
748
  await handlePrecomputed(computedContext, docArgsToSave, ctx);
750
749
  const beforePutResults = await handleEffectsBeforePut(computedContext, docArgsToSave, ctx);
751
750
  await beforePut(docArgsToSave, ctx, computedContext);
751
+ const validatedDoc = validators[key](doc);
752
+ docArgsToSave[0].doc = validatedDoc;
753
+ if (precomputedFields) {
754
+ for (const f of precomputedFields) {
755
+ _.set(validatedDoc, f, _.get(doc, f));
756
+ }
757
+ }
758
+ doc = validatedDoc;
759
+ await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
752
760
  await driverInstance.put(doc, ctx);
753
761
  await handleEffectsAfterPut(computedContext, docArgsToSave, beforePutResults, ctx);
754
762
  await afterPut(docArgsToSave, ctx, computedContext);
755
763
  return doc;
756
764
  },
757
765
  async verifyMany(args, ctx) {
766
+ if (driverInstance.verifyMany) {
767
+ return driverInstance.verifyMany(args, ctx);
768
+ }
758
769
  ctx = { ...options.context, ...ctx };
759
770
  if (args?.dryRun) {
760
771
  ctx._logs = ctx._logs || [];
@@ -767,7 +778,7 @@ function getRadsDbMethods(key, computedContext, driverInstance) {
767
778
  const incorrectDocs = [];
768
779
  const oldDocs = nodes;
769
780
  const docArgsToSave = oldDocs.map((oldDoc) => {
770
- let doc = merge(oldDoc, {});
781
+ const doc = merge(oldDoc, {});
771
782
  if (args?.recompute) {
772
783
  for (const p of args.recompute) {
773
784
  delete doc[p];
@@ -775,13 +786,19 @@ function getRadsDbMethods(key, computedContext, driverInstance) {
775
786
  }
776
787
  if (mustCleanNulls)
777
788
  cleanUndefinedAndNull(doc);
778
- doc = validators[key](doc);
779
789
  return { oldDoc, doc };
780
790
  });
781
- await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
782
791
  await handlePrecomputed(computedContext, docArgsToSave, ctx);
783
792
  const beforePutResults = await handleEffectsBeforePut(computedContext, docArgsToSave, ctx);
784
793
  await beforePut(docArgsToSave, ctx, computedContext);
794
+ for (const d of docArgsToSave) {
795
+ const validatedDoc = validators[key](d.doc);
796
+ for (const f of precomputedFields || []) {
797
+ _.set(validatedDoc, f, _.get(d.doc, f));
798
+ }
799
+ d.doc = validatedDoc;
800
+ }
801
+ await fillDenormFieldsBeforePut(computedContext, docArgsToSave, ctx);
785
802
  for (const { oldDoc, doc } of docArgsToSave) {
786
803
  const d = diff(doc, oldDoc);
787
804
  if (_.isEmpty(d))
@@ -50,6 +50,9 @@ var _default = options => (schema, entity) => {
50
50
  ...opts.getHeaders(url, fetchOptions)
51
51
  };
52
52
  await fetch(url, fetchOptions);
53
+ },
54
+ async verifyMany(args, ctx) {
55
+ throw new Error('Calling "verifyMany" via rest api is not supported for security reasons.');
53
56
  }
54
57
  };
55
58
  return instance;
@@ -36,6 +36,9 @@ export default (options) => (schema, entity) => {
36
36
  };
37
37
  fetchOptions.headers = { ...fetchOptions.headers, ...opts.getHeaders(url, fetchOptions) };
38
38
  await fetch(url, fetchOptions);
39
+ },
40
+ async verifyMany(args, ctx) {
41
+ throw new Error('Calling "verifyMany" via rest api is not supported for security reasons.');
39
42
  }
40
43
  };
41
44
  return instance;
package/package.json CHANGED
@@ -40,7 +40,7 @@
40
40
  "require": "./features/*.cjs"
41
41
  }
42
42
  },
43
- "version": "0.1.75",
43
+ "version": "0.1.77",
44
44
  "description": "Say goodbye to boilerplate code and hello to efficient and elegant syntax.",
45
45
  "keywords": [],
46
46
  "author": "",