corebasic 1.0.270 → 1.0.271

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/libs/dip.js CHANGED
@@ -17,6 +17,7 @@ export const customMeta = Elabase.customMeta;
17
17
  export const schema = Elabase.schema;
18
18
  export const DipMeta = Elabase.DipMeta;
19
19
  export const isDipMeta = Elabase.isDipMeta;
20
+ export const getCollectionEntry = Elabase.getCollectionEntry;
20
21
  export const excludeCollectionConfig = Elabase.excludeCollectionConfig;
21
22
  export const includeCollectionConfig = Elabase.includeCollectionConfig;
22
23
  export const shard_stats = Elabase.shard_stats;
@@ -218,6 +218,9 @@ function init_collections_config() {
218
218
  }
219
219
  if (COLLECTIONS_JSON)
220
220
  init_collections_config();
221
+ export function getCollectionEntry(collection) {
222
+ return COLLECTIONS_JSON[collection];
223
+ }
221
224
  const EXCLUDED_COLLECTIONS_CONFIG = {};
222
225
  export function excludeCollectionConfig(collection) {
223
226
  EXCLUDED_COLLECTIONS_CONFIG[collection] = true;
@@ -234,10 +234,26 @@ const apiHandler = async (req, res) => {
234
234
  throw { status: 404, message: `Param mut: "*" not allowed when mandatory.` };
235
235
  if (feature.mut?.[0] === "*" && !feature.mut?.includes(req.body.params?.mut))
236
236
  throw { status: 404, message: `Param mut: "${req.body.params?.mut}" doesn't exist in the mandatory configuration.` };
237
+ const collection_config = Dip.getCollectionEntry(leaf);
238
+ let _dipMeta;
239
+ if (collection_config) {
240
+ const company = typeof collection_config.company === "object" ? meta.company : collection_config.company;
241
+ const outlet = typeof collection_config.outlet === "object" ? meta.outlet : collection_config.outlet;
242
+ if (company === "GLOBAL" && outlet === "GLOBAL")
243
+ _dipMeta = Dip.globalMeta();
244
+ else if (outlet === "GLOBAL" && company)
245
+ _dipMeta = Dip.companyMeta(company);
246
+ else if (company === "GLOBAL" && outlet)
247
+ _dipMeta = Dip.outletMeta(outlet);
248
+ else if (company && outlet)
249
+ _dipMeta = Dip.customMeta(company, outlet);
250
+ }
251
+ const dipMeta = _dipMeta;
237
252
  const message = {
238
253
  meta,
239
254
  data: req.body.data,
240
255
  params: featureless ? req.params : req.body.params,
256
+ dipMeta,
241
257
  query: req.body.params?.opt && (feature.opt)?.includes(req.body.params?.opt) ? buildQuery(req.body.params?.opt ?? "_id", req.body.params?.id) : req.body.params?.id ? { _id: req.body.params?.id } : undefined,
242
258
  update: req.body.params?.mut && (feature.mut)?.includes(req.body.params?.mut) ? { $set: { [req.body.params.mut.split(":")[0]]: req.body.data[req.body.params.mut], ...Dip.updateKeys({ meta }) } } : undefined,
243
259
  };
package/libs/dip.ts CHANGED
@@ -21,6 +21,7 @@ export const schema = Elabase.schema
21
21
  export type DipMeta = Elabase.DipMeta;
22
22
  export const DipMeta = Elabase.DipMeta;
23
23
  export const isDipMeta = Elabase.isDipMeta
24
+ export const getCollectionEntry = Elabase.getCollectionEntry
24
25
  export const excludeCollectionConfig = Elabase.excludeCollectionConfig
25
26
  export const includeCollectionConfig = Elabase.includeCollectionConfig
26
27
 
package/libs/elabase.ts CHANGED
@@ -299,6 +299,10 @@ function init_collections_config() {
299
299
  if (COLLECTIONS_JSON)
300
300
  init_collections_config()
301
301
 
302
+ export function getCollectionEntry(collection: string): CollectionConfig {
303
+ return COLLECTIONS_JSON[collection]!
304
+ }
305
+
302
306
  const EXCLUDED_COLLECTIONS_CONFIG: Record<string, boolean> = {}
303
307
  export function excludeCollectionConfig(collection: string) {
304
308
  EXCLUDED_COLLECTIONS_CONFIG[collection] = true
package/libs/features.ts CHANGED
@@ -63,6 +63,7 @@ type FeatureMessage<I = unknown, T extends keyof Schema = keyof Schema> = {
63
63
  meta: FeatureMeta & { topic: T }
64
64
  data: I
65
65
  params: FeatureParams
66
+ dipMeta: Dip.DipMeta
66
67
  query?: unknown // This is the buildQuery not the express query
67
68
  update?: unknown // This is the buildUpdate
68
69
 
@@ -370,10 +371,28 @@ const apiHandler = async (req: ExpressRequest, res: ExpressResponse) => {
370
371
  throw { status: 404, message: `Param mut: "${req.body.params?.mut}" doesn't exist in the mandatory configuration.` }
371
372
 
372
373
 
374
+ const collection_config = Dip.getCollectionEntry(leaf)
375
+ let _dipMeta
376
+ if (collection_config) {
377
+ const company = typeof collection_config.company === "object" ? meta.company : collection_config.company
378
+ const outlet = typeof collection_config.outlet === "object" ? meta.outlet : collection_config.outlet
379
+ if (company === "GLOBAL" && outlet === "GLOBAL")
380
+ _dipMeta = Dip.globalMeta()
381
+ else if (outlet === "GLOBAL" && company)
382
+ _dipMeta = Dip.companyMeta(company as string)
383
+ else if (company === "GLOBAL" && outlet)
384
+ _dipMeta = Dip.outletMeta(outlet as string)
385
+ else if (company && outlet)
386
+ _dipMeta = Dip.customMeta(company as string, outlet as string)
387
+ }
388
+ const dipMeta = _dipMeta as Dip.DipMeta
389
+
390
+
373
391
  const message: FeatureMessage = {
374
392
  meta,
375
393
  data: req.body.data,
376
394
  params: featureless ? req.params : req.body.params!,
395
+ dipMeta,
377
396
  query: req.body.params?.opt && (feature.opt!)?.includes(req.body.params?.opt as string) ? buildQuery(req.body.params?.opt ?? "_id", req.body.params?.id) : req.body.params?.id ? {_id: req.body.params?.id} : undefined,
378
397
  update: req.body.params?.mut && (feature.mut!)?.includes(req.body.params?.mut as string) ? { $set: { [req.body.params!.mut.split(":")[0] as string]: (req.body.data as Record<string, unknown>)[req.body.params!.mut], ...Dip.updateKeys({meta}) } } : undefined,
379
398
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "corebasic",
3
3
  "type": "module",
4
- "version": "1.0.270",
4
+ "version": "1.0.271",
5
5
  "description": "",
6
6
  "main": "dist/index.js",
7
7
  "types": "./index.ts",