corebasic 1.0.195 → 1.0.198

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/libs/dip.js CHANGED
@@ -13,6 +13,9 @@ export const batchAbort = Elabase.batchAbort
13
13
  export const batchSubmit = Elabase.batchSubmit
14
14
  export const batch = Elabase.batch
15
15
  export const globalMeta = Elabase.globalMeta
16
+ export const companyMeta = Elabase.companyMeta
17
+ export const outletMeta = Elabase.outletMeta
18
+ export const customMeta = Elabase.customMeta
16
19
 
17
20
  export const shard_stats = Elabase.shard_stats
18
21
  export let config = Elabase.config
package/libs/elabase.js CHANGED
@@ -48,9 +48,26 @@ export function start(dbName) {
48
48
  }
49
49
  }
50
50
 
51
+ function deepFreeze(obj) {
52
+ if (obj && typeof obj === "object" && !Object.isFrozen(obj)) {
53
+ Object.freeze(obj);
54
+
55
+ for (const key of Object.keys(obj)) {
56
+ deepFreeze(obj[key]);
57
+ }
58
+ }
59
+ return obj;
60
+ }
61
+ class DipMeta {
62
+ constructor(obj) {
63
+ Object.assign(this, deepFreeze(obj));
64
+ Object.freeze(this);
65
+ }
66
+ }
67
+
51
68
 
52
69
  export const globalMeta = args => {
53
- return { ...args, company: "GLOBAL", outlet: "GLOBAL" }
70
+ return new DipMeta({ ...args, company: "GLOBAL", outlet: "GLOBAL" })
54
71
  }
55
72
  export const companyMeta = (company, args) => {
56
73
  if (typeof company !== "string" && !Array.isArray(company))
@@ -58,7 +75,7 @@ export const companyMeta = (company, args) => {
58
75
  if (!company || (typeof company === "string" && company.trim() === "") || company === "GLOBAL" || (Array.isArray(company) && (!company.length || company.some(item => typeof item !== "string" || item.trim() === "" || item === "GLOBAL")) ))
59
76
  throw {message: "Error: Invalid company provided in Dip.companyMeta()"}
60
77
 
61
- return {...args, outlet: "GLOBAL", company}
78
+ return new DipMeta({...args, outlet: "GLOBAL", company})
62
79
  }
63
80
  export const outletMeta = (outlet, args) => {
64
81
  if (typeof outlet !== "string" && !Array.isArray(outlet))
@@ -66,7 +83,7 @@ export const outletMeta = (outlet, args) => {
66
83
  if (!outlet || (typeof outlet === "string" && outlet.trim() === "") || outlet === "GLOBAL" || (Array.isArray(outlet) && (!outlet.length || outlet.some(item => typeof item !== "string" || item.trim() === "" || item === "GLOBAL")) ))
67
84
  throw {message: "Error: Invalid outlet provided in Dip.outletMeta()"}
68
85
 
69
- return {...args, company: "GLOBAL", outlet}
86
+ return new DipMeta({...args, company: "GLOBAL", outlet})
70
87
  }
71
88
 
72
89
  export const customMeta = (company, outlet, args) => {
@@ -81,7 +98,7 @@ export const customMeta = (company, outlet, args) => {
81
98
  if (!outlet || (typeof outlet === "string" && outlet.trim() === "") || outlet === "GLOBAL" || (Array.isArray(outlet) && (!outlet.length || outlet.some(item => typeof item !== "string" || item.trim() === "" || item === "GLOBAL")) ))
82
99
  throw {message: "Error: Invalid outlet provided in Dip.customMeta()"}
83
100
 
84
- return {...args, company, outlet}
101
+ return new DipMeta({...args, company, outlet})
85
102
  }
86
103
 
87
104
  function validate_collection(collection, fn_name) {
@@ -251,11 +268,13 @@ export const operation = async (name, extras) => {
251
268
 
252
269
  export const insert = async (meta, collection, value, _id, extras) => {
253
270
 
271
+ if (!(meta instanceof DipMeta)) console.warn('Warn: Provided meta is not an instance of DipMeta in Dip.insert()') // TODO: throw error once review completes
272
+
254
273
  validate_collection(collection, 'in Dip.insert()')
255
274
 
256
275
  validate_meta(meta, 'in Dip.insert()')
257
276
 
258
- const topology_meta = validate_topology(meta, collection, 'in Dip.insert()')
277
+ const topology_meta = validate_topology(meta, collection, 'in Dip.insert()') // TODO: loop for arrays
259
278
 
260
279
  var arg = {
261
280
  collection: collection,
@@ -292,11 +311,13 @@ export const insert = async (meta, collection, value, _id, extras) => {
292
311
 
293
312
  export const query = async (meta, collection, query, options, extras) => {
294
313
 
314
+ if (!(meta instanceof DipMeta)) console.warn('Warn: Provided meta is not an instance of DipMeta in Dip.query()') // TODO: throw error once review completes
315
+
295
316
  validate_collection(collection, 'in Dip.query()')
296
317
 
297
318
  validate_meta(meta, 'in Dip.query()')
298
319
 
299
- const topology_meta = validate_topology(meta, collection, 'in Dip.query()')
320
+ const topology_meta = validate_topology(meta, collection, 'in Dip.query()') // TODO: loop for arrays
300
321
 
301
322
  var arg = {
302
323
  collection: collection,
@@ -339,11 +360,13 @@ function collectionArray(col) {
339
360
 
340
361
  export const update = async (meta, collection, query, update, options, extras) => {
341
362
 
363
+ if (!(meta instanceof DipMeta)) console.warn('Warn: Provided meta is not an instance of DipMeta in Dip.update()') // TODO: throw error once review completes
364
+
342
365
  validate_collection(collection, 'in Dip.update()')
343
366
 
344
367
  validate_meta(meta, 'in Dip.update()')
345
368
 
346
- const topology_meta = validate_topology(meta, collection, 'in Dip.update()')
369
+ const topology_meta = validate_topology(meta, collection, 'in Dip.update()') // TODO: loop for arrays
347
370
 
348
371
  var arg = {
349
372
  collection: collection,
@@ -373,6 +396,8 @@ export const update = async (meta, collection, query, update, options, extras) =
373
396
 
374
397
  export const remove = async (meta, collection, query, options, extras) => {
375
398
 
399
+ if (!(meta instanceof DipMeta)) console.warn('Warn: Provided meta is not an instance of DipMeta in Dip.remove()') // TODO: throw error once review completes
400
+
376
401
  validate_collection(collection, 'in Dip.remove()')
377
402
 
378
403
  if (Utils.isEmpty(query._id) && !meta.allowDangerousRemove)
@@ -380,7 +405,7 @@ export const remove = async (meta, collection, query, options, extras) => {
380
405
 
381
406
  validate_meta(meta, 'in Dip.remove()')
382
407
 
383
- const topology_meta = validate_topology(meta, collection, 'in Dip.remove()')
408
+ const topology_meta = validate_topology(meta, collection, 'in Dip.remove()') // TODO: loop for arrays
384
409
 
385
410
  var arg = {
386
411
  collection: collection,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "corebasic",
3
3
  "type": "module",
4
- "version": "1.0.195",
4
+ "version": "1.0.198",
5
5
  "description": "",
6
6
  "main": "index.js",
7
7
  "scripts": {