json-fs-query 0.1.0 → 0.1.1

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.
Files changed (198) hide show
  1. package/dist/data/introspect/create.js +6 -4
  2. package/dist/data/introspect/create.min.js +1 -1
  3. package/dist/data/introspect/drop.js +2 -2
  4. package/dist/data/introspect/drop.min.js +1 -1
  5. package/dist/data/queries/deleteEntity.js +3 -3
  6. package/dist/data/queries/deleteEntity.min.js +1 -1
  7. package/dist/data/queries/groupBy.js +22 -22
  8. package/dist/data/queries/groupBy.min.js +1 -1
  9. package/dist/data/queries/insertEntity.js +5 -5
  10. package/dist/data/queries/insertEntity.min.js +1 -1
  11. package/dist/data/queries/readEntity.js +1 -1
  12. package/dist/data/queries/readEntity.min.js +1 -1
  13. package/dist/data/queries/updateEntity.js +6 -6
  14. package/dist/data/queries/updateEntity.min.js +1 -1
  15. package/dist/data/queries/where.js +1 -1
  16. package/dist/data/queries/where.min.js +1 -1
  17. package/dist/data/utilities/config.d.ts +22 -0
  18. package/dist/data/utilities/config.js +39 -0
  19. package/dist/data/utilities/config.min.js +1 -0
  20. package/dist/data/utilities/deregisterRecord.js +2 -2
  21. package/dist/data/utilities/deregisterRecord.min.js +1 -1
  22. package/dist/data/utilities/getConditionIndexedList.js +1 -1
  23. package/dist/data/utilities/getConditionIndexedList.min.js +1 -1
  24. package/dist/data/utilities/getJoinIndexedList.js +2 -2
  25. package/dist/data/utilities/getJoinIndexedList.min.js +1 -1
  26. package/dist/data/utilities/getMatchingIndexes.js +2 -2
  27. package/dist/data/utilities/getMatchingIndexes.min.js +1 -1
  28. package/dist/data/utilities/matchIndexedJoins.js +2 -2
  29. package/dist/data/utilities/matchIndexedJoins.min.js +1 -1
  30. package/dist/data/utilities/reconcileJoin.js +26 -26
  31. package/dist/data/utilities/reconcileJoin.min.js +1 -1
  32. package/dist/data/utilities/reconcileJoins.js +26 -27
  33. package/dist/data/utilities/reconcileJoins.min.js +1 -1
  34. package/dist/data/utilities/registerRecord.js +2 -2
  35. package/dist/data/utilities/registerRecord.min.js +1 -1
  36. package/dist/data/utilities/removeFromIndex.js +2 -2
  37. package/dist/data/utilities/removeFromIndex.min.js +1 -1
  38. package/dist/data/utilities/restrictIndexedList.js +45 -45
  39. package/dist/data/utilities/restrictIndexedList.min.js +1 -1
  40. package/dist/data/utilities/retrieveFile.js +3 -3
  41. package/dist/data/utilities/retrieveFile.min.js +1 -1
  42. package/dist/data/utilities/retrieveIndexes.js +1 -1
  43. package/dist/data/utilities/retrieveIndexes.min.js +1 -1
  44. package/dist/data/utilities/updateIndex.js +2 -2
  45. package/dist/data/utilities/updateIndex.min.js +1 -1
  46. package/dist/data/utilities/useJoinClause.js +4 -4
  47. package/dist/data/utilities/useJoinClause.min.js +1 -1
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.js +7 -0
  50. package/dist/index.min.js +1 -1
  51. package/package.json +5 -1
  52. package/.browserslistrc +0 -1
  53. package/.nvmrc +0 -1
  54. package/MAIN.md +0 -15
  55. package/babel.config.js +0 -3
  56. package/build-tools.config.json +0 -30
  57. package/gulpfile.mjs +0 -15
  58. package/src/data/introspect/create.test.js +0 -67
  59. package/src/data/introspect/create.ts +0 -29
  60. package/src/data/introspect/definitions/field.test.js +0 -23
  61. package/src/data/introspect/definitions/field.ts +0 -48
  62. package/src/data/introspect/definitions/key.test.js +0 -100
  63. package/src/data/introspect/definitions/key.ts +0 -64
  64. package/src/data/introspect/definitions/keyReference.test.js +0 -8
  65. package/src/data/introspect/definitions/keyReference.ts +0 -23
  66. package/src/data/introspect/definitions/record.ts +0 -42
  67. package/src/data/introspect/describe.test.js +0 -36
  68. package/src/data/introspect/describe.ts +0 -9
  69. package/src/data/introspect/drop.test.js +0 -77
  70. package/src/data/introspect/drop.ts +0 -20
  71. package/src/data/introspect/index.ts +0 -8
  72. package/src/data/introspect/policies/foreignKeyExists.test.js +0 -44
  73. package/src/data/introspect/policies/foreignKeyExists.ts +0 -15
  74. package/src/data/introspect/policies/keyGenerate.ts +0 -11
  75. package/src/data/introspect/policies/keyUnique.ts +0 -11
  76. package/src/data/introspect/policies/typeCheck.test.js +0 -84
  77. package/src/data/introspect/policies/typeCheck.ts +0 -49
  78. package/src/data/introspect/policies/typeEnum.ts +0 -6
  79. package/src/data/introspect/policies/useDefault.ts +0 -6
  80. package/src/data/queries/deleteEntity.test.js +0 -86
  81. package/src/data/queries/deleteEntity.ts +0 -56
  82. package/src/data/queries/groupBy.test.js +0 -135
  83. package/src/data/queries/groupBy.ts +0 -16
  84. package/src/data/queries/insertEntity.test.js +0 -156
  85. package/src/data/queries/insertEntity.ts +0 -113
  86. package/src/data/queries/joinEntity.test.js +0 -109
  87. package/src/data/queries/joinEntity.ts +0 -20
  88. package/src/data/queries/mergeJoins.test.js +0 -174
  89. package/src/data/queries/mergeJoins.ts +0 -13
  90. package/src/data/queries/parser.test.js +0 -343
  91. package/src/data/queries/parser.ts +0 -24
  92. package/src/data/queries/query.test.js +0 -233
  93. package/src/data/queries/query.ts +0 -12
  94. package/src/data/queries/readEntity.test.js +0 -85
  95. package/src/data/queries/readEntity.ts +0 -8
  96. package/src/data/queries/sortBy.test.js +0 -131
  97. package/src/data/queries/sortBy.ts +0 -18
  98. package/src/data/queries/updateEntity.test.js +0 -228
  99. package/src/data/queries/updateEntity.ts +0 -162
  100. package/src/data/queries/where.test.js +0 -129
  101. package/src/data/queries/where.ts +0 -54
  102. package/src/data/utilities/deregisterRecord.test.js +0 -26
  103. package/src/data/utilities/deregisterRecord.ts +0 -24
  104. package/src/data/utilities/getConditionIndexedList.ts +0 -43
  105. package/src/data/utilities/getJoinIndexedList.ts +0 -53
  106. package/src/data/utilities/getMatchingIndexes.ts +0 -21
  107. package/src/data/utilities/matchIndexedJoins.ts +0 -45
  108. package/src/data/utilities/mergeJoin.test.js +0 -102
  109. package/src/data/utilities/mergeJoin.ts +0 -28
  110. package/src/data/utilities/parsers/findCommand.ts +0 -25
  111. package/src/data/utilities/parsers/findConditions.test.js +0 -38
  112. package/src/data/utilities/parsers/findConditions.ts +0 -32
  113. package/src/data/utilities/parsers/findGroupBy.ts +0 -20
  114. package/src/data/utilities/parsers/findInsertValues.test.js +0 -26
  115. package/src/data/utilities/parsers/findInsertValues.ts +0 -32
  116. package/src/data/utilities/parsers/findJoinClauses.ts +0 -29
  117. package/src/data/utilities/parsers/findJoinEntity.ts +0 -20
  118. package/src/data/utilities/parsers/findLimit.ts +0 -20
  119. package/src/data/utilities/parsers/findMergeJoins.ts +0 -27
  120. package/src/data/utilities/parsers/findOffset.ts +0 -20
  121. package/src/data/utilities/parsers/findSelects.ts +0 -31
  122. package/src/data/utilities/parsers/findSortClauses.ts +0 -31
  123. package/src/data/utilities/parsers/findUpdateValues.test.js +0 -37
  124. package/src/data/utilities/parsers/findUpdateValues.ts +0 -32
  125. package/src/data/utilities/parsers/isEntityProperty.ts +0 -1
  126. package/src/data/utilities/parsers/parseLiteralValue.test.js +0 -41
  127. package/src/data/utilities/parsers/parseLiteralValue.ts +0 -29
  128. package/src/data/utilities/parsers/parseQuery.ts +0 -73
  129. package/src/data/utilities/parsers/removeFromQuery.ts +0 -1
  130. package/src/data/utilities/parsers/splitEntityProperty.test.js +0 -8
  131. package/src/data/utilities/parsers/splitEntityProperty.ts +0 -17
  132. package/src/data/utilities/parsers/splitQueries.test.js +0 -33
  133. package/src/data/utilities/parsers/splitQueries.ts +0 -4
  134. package/src/data/utilities/reconcileJoin.test.js +0 -38
  135. package/src/data/utilities/reconcileJoin.ts +0 -23
  136. package/src/data/utilities/reconcileJoins.test.js +0 -160
  137. package/src/data/utilities/reconcileJoins.ts +0 -15
  138. package/src/data/utilities/registerRecord.test.js +0 -44
  139. package/src/data/utilities/registerRecord.ts +0 -44
  140. package/src/data/utilities/removeFromIndex.test.js +0 -44
  141. package/src/data/utilities/removeFromIndex.ts +0 -34
  142. package/src/data/utilities/restrictIndexedList.ts +0 -38
  143. package/src/data/utilities/retrieveFile.test.js +0 -49
  144. package/src/data/utilities/retrieveFile.ts +0 -19
  145. package/src/data/utilities/retrieveIndexes.ts +0 -17
  146. package/src/data/utilities/retrieveRecord.ts +0 -3
  147. package/src/data/utilities/retrieveRecords.test.js +0 -223
  148. package/src/data/utilities/retrieveRecords.ts +0 -16
  149. package/src/data/utilities/runQuery.test.js +0 -88
  150. package/src/data/utilities/runQuery.ts +0 -75
  151. package/src/data/utilities/updateIndex.test.js +0 -44
  152. package/src/data/utilities/updateIndex.ts +0 -45
  153. package/src/data/utilities/useJoinClause.test.js +0 -94
  154. package/src/data/utilities/useJoinClause.ts +0 -44
  155. package/src/global.d.ts +0 -1
  156. package/src/index.test.js +0 -52
  157. package/src/index.ts +0 -17
  158. package/test-data/__RECORDS.json +0 -32
  159. package/test-data/__indexes/exercise_muscle/fk_exercise_id.json +0 -14
  160. package/test-data/__indexes/exercise_muscle/fk_muscle_id.json +0 -14
  161. package/test-data/__indexes/exercise_muscle/pk__id.json +0 -14
  162. package/test-data/__indexes/exercises/pk__id.json +0 -14
  163. package/test-data/__indexes/muscles/pk__id.json +0 -58
  164. package/test-data/__indexes/workouts/fk_exercise_id.json +0 -23
  165. package/test-data/__indexes/workouts/index_date.json +0 -18
  166. package/test-data/__indexes/workouts/pk__id.json +0 -26
  167. package/test-data/copyDatabase.ts +0 -64
  168. package/test-data/exercise_muscle/bench_press_pectorals.json +0 -6
  169. package/test-data/exercise_muscle/deadlift_hamstrings.json +0 -6
  170. package/test-data/exercise_muscle/squat_quadriceps.json +0 -6
  171. package/test-data/exercise_muscle.json +0 -69
  172. package/test-data/exercises/bench_press.json +0 -5
  173. package/test-data/exercises/deadlift.json +0 -5
  174. package/test-data/exercises/squat.json +0 -5
  175. package/test-data/exercises.json +0 -34
  176. package/test-data/muscles/abdominal.json +0 -6
  177. package/test-data/muscles/biceps.json +0 -6
  178. package/test-data/muscles/calves.json +0 -6
  179. package/test-data/muscles/deltoids.json +0 -6
  180. package/test-data/muscles/erector_spinae.json +0 -6
  181. package/test-data/muscles/forearms.json +0 -6
  182. package/test-data/muscles/gluteus_maximus.json +0 -6
  183. package/test-data/muscles/hamstrings.json +0 -6
  184. package/test-data/muscles/latissimus_dorsi.json +0 -6
  185. package/test-data/muscles/obliques.json +0 -6
  186. package/test-data/muscles/pectorals.json +0 -6
  187. package/test-data/muscles/quadriceps.json +0 -6
  188. package/test-data/muscles/trapezius.json +0 -6
  189. package/test-data/muscles/triceps.json +0 -6
  190. package/test-data/muscles.json +0 -50
  191. package/test-data/workouts/2024-06-02-001.json +0 -10
  192. package/test-data/workouts/2024-06-02-002.json +0 -10
  193. package/test-data/workouts/2024-06-02-003.json +0 -10
  194. package/test-data/workouts/2024-06-05-001.json +0 -10
  195. package/test-data/workouts/2024-06-05-002.json +0 -10
  196. package/test-data/workouts/2024-06-05-003.json +0 -10
  197. package/test-data/workouts.json +0 -84
  198. package/tsconfig.json +0 -15
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', {
5
5
  })
6
6
  exports.create = void 0
7
7
  require('core-js/modules/es.json.stringify.js')
8
- const _testFilesystem = require('test-filesystem')
9
8
  const _record = require('./definitions/record')
10
9
  const _registerRecord = require('../utilities/registerRecord')
10
+ const _config = require('../utilities/config')
11
11
  /**
12
12
  * Create a new record.
13
13
  * @param recordName
@@ -15,16 +15,18 @@ const _registerRecord = require('../utilities/registerRecord')
15
15
  * @param keys
16
16
  */
17
17
  const create = async (recordName, definition = [], keys = []) => {
18
- const gulpConfig = require('js-build-tools/gulp.config')
19
18
  const {
20
19
  writeFile,
21
20
  mkdir
22
21
  } = require('fs/promises')
23
- const databasePath = gulpConfig.get('databasePath', 'database/')
22
+ const {
23
+ existsSync
24
+ } = require('fs')
25
+ const databasePath = (0, _config.getSetting)('databasePath', 'database/')
24
26
  if (recordName === '__RECORDS') {
25
27
  return null
26
28
  }
27
- if ((0, _testFilesystem.fileExists)(`${databasePath}${recordName}.json`)) {
29
+ if (existsSync(`${databasePath}${recordName}.json`)) {
28
30
  return null
29
31
  }
30
32
  await mkdir(databasePath, {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=void 0,require("core-js/modules/es.json.stringify.js");var _testFilesystem=require("test-filesystem"),_record=require("./definitions/record"),_registerRecord=require("../utilities/registerRecord");const create=async(e,r=[],t=[])=>{const s=require("js-build-tools/gulp.config"),{writeFile:i,mkdir:o}=require("fs/promises"),a=s.get("databasePath","database/");if("__RECORDS"===e)return null;if((0,_testFilesystem.fileExists)(`${a}${e}.json`))return null;await o(a,{recursive:!0});const c=(0,_record.record)({path:e,definition:r,keys:t});return await i(`${a}${e}.json`,JSON.stringify(c,null,2)),await o(`${a}${e}`,{recursive:!0}),await(0,_registerRecord.registerRecord)(e),c};exports.create=create;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=void 0,require("core-js/modules/es.json.stringify.js");var _record=require("./definitions/record"),_registerRecord=require("../utilities/registerRecord"),_config=require("../utilities/config");const create=async(e,r=[],i=[])=>{const{writeFile:t,mkdir:s}=require("fs/promises"),{existsSync:o}=require("fs"),c=(0,_config.getSetting)("databasePath","database/");if("__RECORDS"===e)return null;if(o(`${c}${e}.json`))return null;await s(c,{recursive:!0});const n=(0,_record.record)({path:e,definition:r,keys:i});return await t(`${c}${e}.json`,JSON.stringify(n,null,2)),await s(`${c}${e}`,{recursive:!0}),await(0,_registerRecord.registerRecord)(e),n};exports.create=create;
@@ -10,12 +10,12 @@ Object.defineProperty(exports, '__esModule', {
10
10
  exports.drop = void 0
11
11
  const _retrieveFile = require('../utilities/retrieveFile')
12
12
  const _deregisterRecord = require('../utilities/deregisterRecord')
13
- const gulpConfig = require('js-build-tools/gulp.config')
13
+ const _config = require('../utilities/config')
14
14
  const {
15
15
  rm
16
16
  } = require('fs/promises')
17
17
  const drop = async record => {
18
- const databasePath = gulpConfig.get('databasePath', 'database/')
18
+ const databasePath = (0, _config.getSetting)('databasePath', 'database/')
19
19
  if (record === '__RECORDS') {
20
20
  return null
21
21
  }
@@ -1 +1 @@
1
- "use strict";require("core-js/modules/esnext.async-iterator.constructor.js"),require("core-js/modules/esnext.async-iterator.drop.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.drop.js"),Object.defineProperty(exports,"__esModule",{value:!0}),exports.drop=void 0;var _retrieveFile=require("../utilities/retrieveFile"),_deregisterRecord=require("../utilities/deregisterRecord");const gulpConfig=require("js-build-tools/gulp.config"),{rm:rm}=require("fs/promises"),drop=async e=>{const r=gulpConfig.get("databasePath","database/");if("__RECORDS"===e)return null;const t=await(0,_retrieveFile.retrieveFile)(`${e}.json`);for(const e of t.entries)await rm(`${r}${t.path}/${e}`);await rm(`${r}${t.path}`,{recursive:!0,force:!0}),await rm(`${r}__indexes/${t.path}`,{recursive:!0,force:!0}),await rm(`${r}${e}.json`),await(0,_deregisterRecord.deregisterRecord)(e)};exports.drop=drop;
1
+ "use strict";require("core-js/modules/esnext.async-iterator.constructor.js"),require("core-js/modules/esnext.async-iterator.drop.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.drop.js"),Object.defineProperty(exports,"__esModule",{value:!0}),exports.drop=void 0;var _retrieveFile=require("../utilities/retrieveFile"),_deregisterRecord=require("../utilities/deregisterRecord"),_config=require("../utilities/config");const{rm:rm}=require("fs/promises"),drop=async e=>{const r=(0,_config.getSetting)("databasePath","database/");if("__RECORDS"===e)return null;const t=await(0,_retrieveFile.retrieveFile)(`${e}.json`);for(const e of t.entries)await rm(`${r}${t.path}/${e}`);await rm(`${r}${t.path}`,{recursive:!0,force:!0}),await rm(`${r}__indexes/${t.path}`,{recursive:!0,force:!0}),await rm(`${r}${e}.json`),await(0,_deregisterRecord.deregisterRecord)(e)};exports.drop=drop;
@@ -27,7 +27,7 @@ require('core-js/modules/esnext.set.union.js')
27
27
  const _retrieveRecord = require('../utilities/retrieveRecord')
28
28
  const _retrieveFile = require('../utilities/retrieveFile')
29
29
  const _removeFromIndex = require('../utilities/removeFromIndex')
30
- const gulpConfig = require('js-build-tools/gulp.config')
30
+ const _config = require('../utilities/config')
31
31
  const {
32
32
  rm,
33
33
  writeFile
@@ -42,7 +42,7 @@ const {
42
42
  * @param deletedValues
43
43
  */
44
44
  const removeMatchingEntries = async (entity, record, primaryField, deletedValues) => {
45
- const databasePath = gulpConfig.get('databasePath', 'database/')
45
+ const databasePath = (0, _config.getSetting)('databasePath', 'database/')
46
46
  const remainingEntries = []
47
47
  for (const fileName of record.entries) {
48
48
  const data = await (0, _retrieveFile.retrieveFile)(`${record.path}/${fileName}`)
@@ -60,7 +60,7 @@ const removeMatchingEntries = async (entity, record, primaryField, deletedValues
60
60
  return remainingEntries
61
61
  }
62
62
  const deleteEntity = async (entity = '', dataSet = {}) => {
63
- const databasePath = gulpConfig.get('databasePath', 'database/')
63
+ const databasePath = (0, _config.getSetting)('databasePath', 'database/')
64
64
  const record = await (0, _retrieveRecord.retrieveRecord)(entity)
65
65
  const primaryKey = record.keys.find(key => key.type === 'primary' && key.fields.length === 1)
66
66
  if (!primaryKey) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.deleteEntity=void 0,require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.map.js"),require("core-js/modules/esnext.set.add-all.js"),require("core-js/modules/esnext.set.delete-all.js"),require("core-js/modules/esnext.set.difference.js"),require("core-js/modules/esnext.set.every.js"),require("core-js/modules/esnext.set.filter.js"),require("core-js/modules/esnext.set.find.js"),require("core-js/modules/esnext.set.intersection.js"),require("core-js/modules/esnext.set.is-disjoint-from.js"),require("core-js/modules/esnext.set.is-subset-of.js"),require("core-js/modules/esnext.set.is-superset-of.js"),require("core-js/modules/esnext.set.join.js"),require("core-js/modules/esnext.set.map.js"),require("core-js/modules/esnext.set.reduce.js"),require("core-js/modules/esnext.set.some.js"),require("core-js/modules/esnext.set.symmetric-difference.js"),require("core-js/modules/esnext.set.union.js");var _retrieveRecord=require("../utilities/retrieveRecord"),_retrieveFile=require("../utilities/retrieveFile"),_removeFromIndex=require("../utilities/removeFromIndex");const gulpConfig=require("js-build-tools/gulp.config"),{rm:rm,writeFile:writeFile}=require("fs/promises"),removeMatchingEntries=async(e,r,s,t)=>{const i=gulpConfig.get("databasePath","database/"),o=[];for(const e of r.entries){const n=await(0,_retrieveFile.retrieveFile)(`${r.path}/${e}`);if(t.has(n[s])){await rm(`${i}${r.path}/${e}`);for(const s of r.keys)1===s.fields.length&&await(0,_removeFromIndex.removeFromIndex)(r.path,s,n[s.fields[0]],e)}else o.push(e)}return o},deleteEntity=async(e="",r={})=>{const s=gulpConfig.get("databasePath","database/"),t=await(0,_retrieveRecord.retrieveRecord)(e),i=t.keys.find((e=>"primary"===e.type&&1===e.fields.length));if(!i)throw new Error(`Cannot delete from "${e}" without a single-field primary key`);const o=i.fields[0],n=r[e]||[];if(!n.length)return r;const u=new Set(n.map((e=>e[o])));return t.entries=await removeMatchingEntries(0,t,o,u),await writeFile(`${s}${t.path}.json`,JSON.stringify(t,null,2)),r};exports.deleteEntity=deleteEntity;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.deleteEntity=void 0,require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.map.js"),require("core-js/modules/esnext.set.add-all.js"),require("core-js/modules/esnext.set.delete-all.js"),require("core-js/modules/esnext.set.difference.js"),require("core-js/modules/esnext.set.every.js"),require("core-js/modules/esnext.set.filter.js"),require("core-js/modules/esnext.set.find.js"),require("core-js/modules/esnext.set.intersection.js"),require("core-js/modules/esnext.set.is-disjoint-from.js"),require("core-js/modules/esnext.set.is-subset-of.js"),require("core-js/modules/esnext.set.is-superset-of.js"),require("core-js/modules/esnext.set.join.js"),require("core-js/modules/esnext.set.map.js"),require("core-js/modules/esnext.set.reduce.js"),require("core-js/modules/esnext.set.some.js"),require("core-js/modules/esnext.set.symmetric-difference.js"),require("core-js/modules/esnext.set.union.js");var _retrieveRecord=require("../utilities/retrieveRecord"),_retrieveFile=require("../utilities/retrieveFile"),_removeFromIndex=require("../utilities/removeFromIndex"),_config=require("../utilities/config");const{rm:rm,writeFile:writeFile}=require("fs/promises"),removeMatchingEntries=async(e,r,s,t)=>{const i=(0,_config.getSetting)("databasePath","database/"),o=[];for(const e of r.entries){const n=await(0,_retrieveFile.retrieveFile)(`${r.path}/${e}`);if(t.has(n[s])){await rm(`${i}${r.path}/${e}`);for(const s of r.keys)1===s.fields.length&&await(0,_removeFromIndex.removeFromIndex)(r.path,s,n[s.fields[0]],e)}else o.push(e)}return o},deleteEntity=async(e="",r={})=>{const s=(0,_config.getSetting)("databasePath","database/"),t=await(0,_retrieveRecord.retrieveRecord)(e),i=t.keys.find((e=>"primary"===e.type&&1===e.fields.length));if(!i)throw new Error(`Cannot delete from "${e}" without a single-field primary key`);const o=i.fields[0],n=r[e]||[];if(!n.length)return r;const u=new Set(n.map((e=>e[o])));return t.entries=await removeMatchingEntries(0,t,o,u),await writeFile(`${s}${t.path}.json`,JSON.stringify(t,null,2)),r};exports.deleteEntity=deleteEntity;
@@ -1,22 +1,22 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.groupBy = void 0
7
- require('core-js/modules/esnext.iterator.constructor.js')
8
- require('core-js/modules/esnext.iterator.reduce.js')
9
- const groupBy = (dataSet = [], groupProperty = '') => {
10
- if (!groupProperty) {
11
- return dataSet
12
- }
13
- return dataSet.reduce((groupedData, data) => {
14
- const property = data[groupProperty]
15
- if (!groupedData.hasOwnProperty(property)) {
16
- groupedData[property] = []
17
- }
18
- groupedData[property].push(data)
19
- return groupedData
20
- }, {})
21
- }
22
- exports.groupBy = groupBy
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.groupBy = void 0
7
+ require('core-js/modules/esnext.iterator.constructor.js')
8
+ require('core-js/modules/esnext.iterator.reduce.js')
9
+ const groupBy = (dataSet = [], groupProperty = '') => {
10
+ if (!groupProperty) {
11
+ return dataSet
12
+ }
13
+ return dataSet.reduce((groupedData, data) => {
14
+ const property = data[groupProperty]
15
+ if (!Object.prototype.hasOwnProperty.call(groupedData, property)) {
16
+ groupedData[property] = []
17
+ }
18
+ groupedData[property].push(data)
19
+ return groupedData
20
+ }, {})
21
+ }
22
+ exports.groupBy = groupBy
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.groupBy=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js");const groupBy=(e=[],r="")=>r?e.reduce(((e,o)=>{const s=o[r];return e.hasOwnProperty(s)||(e[s]=[]),e[s].push(o),e}),{}):e;exports.groupBy=groupBy;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.groupBy=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js");const groupBy=(e=[],r="")=>r?e.reduce(((e,o)=>{const t=o[r];return Object.prototype.hasOwnProperty.call(e,t)||(e[t]=[]),e[t].push(o),e}),{}):e;exports.groupBy=groupBy;
@@ -15,7 +15,7 @@ const _useDefault = require('../introspect/policies/useDefault')
15
15
  const _typeCheck = require('../introspect/policies/typeCheck')
16
16
  const _foreignKeyExists = require('../introspect/policies/foreignKeyExists')
17
17
  const _splitEntityProperty = require('../utilities/parsers/splitEntityProperty')
18
- const gulpConfig = require('js-build-tools/gulp.config')
18
+ const _config = require('../utilities/config')
19
19
  const {
20
20
  writeFile
21
21
  } = require('fs/promises')
@@ -32,7 +32,7 @@ const buildEntityValues = async (entity, record, rowValues = {}) => {
32
32
  let value = rowValues[field.name]
33
33
  if (field.autoGenerate) {
34
34
  value = await (0, _keyGenerate.keyGenerate)(entity, [field.name])
35
- } else if (field.hasOwnProperty('default')) {
35
+ } else if (Object.prototype.hasOwnProperty.call(field, 'default')) {
36
36
  value = (0, _useDefault.useDefault)(field.default, value)
37
37
  }
38
38
  if (typeof value === 'undefined') {
@@ -75,7 +75,7 @@ const assertForeignKeys = async (entity, record, entityValues) => {
75
75
  continue
76
76
  }
77
77
  const field = key.fields[0]
78
- if (!entityValues.hasOwnProperty(field)) {
78
+ if (!Object.prototype.hasOwnProperty.call(entityValues, field)) {
79
79
  continue
80
80
  }
81
81
  const {
@@ -89,10 +89,10 @@ const assertForeignKeys = async (entity, record, entityValues) => {
89
89
  }
90
90
  }
91
91
  const insertEntity = async (entity = '', values = [], dataSet = {}) => {
92
- const databasePath = gulpConfig.get('databasePath', 'database/')
92
+ const databasePath = (0, _config.getSetting)('databasePath', 'database/')
93
93
  const record = await (0, _retrieveRecord.retrieveRecord)(entity)
94
94
  const primaryKey = record.keys.find(key => key.type === 'primary' && key.fields.length === 1)
95
- if (!dataSet.hasOwnProperty(entity)) {
95
+ if (!Object.prototype.hasOwnProperty.call(dataSet, entity)) {
96
96
  dataSet[entity] = []
97
97
  }
98
98
  for (const rowValues of values) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.insertEntity=void 0,require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.find.js");var _retrieveRecord=require("../utilities/retrieveRecord"),_updateIndex=require("../utilities/updateIndex"),_keyGenerate=require("../introspect/policies/keyGenerate"),_keyUnique=require("../introspect/policies/keyUnique"),_useDefault=require("../introspect/policies/useDefault"),_typeCheck=require("../introspect/policies/typeCheck"),_foreignKeyExists=require("../introspect/policies/foreignKeyExists"),_splitEntityProperty=require("../utilities/parsers/splitEntityProperty");const gulpConfig=require("js-build-tools/gulp.config"),{writeFile:writeFile}=require("fs/promises"),buildEntityValues=async(e,t,i={})=>{const r={};for(const s of t.definition){let t=i[s.name];if(s.autoGenerate?t=await(0,_keyGenerate.keyGenerate)(e,[s.name]):s.hasOwnProperty("default")&&(t=(0,_useDefault.useDefault)(s.default,t)),void 0!==t)r[s.name]=(0,_typeCheck.typeCheck)(s.type,t);else if(!s.optional)throw new Error(`Missing required field "${s.name}" for ${e}`)}return r},assertUnique=async(e,t,i)=>{for(const r of t.keys){if("primary"!==r.type&&"unique"!==r.type||1!==r.fields.length)continue;if(!await(0,_keyUnique.keyUnique)(e,r.fields,i[r.fields[0]]))throw new Error(`Duplicate value for ${r.type} key "${r.fields[0]}" on ${e}`)}},assertForeignKeys=async(e,t,i)=>{for(const r of t.keys){if("foreign"!==r.type||1!==r.fields.length||!r.references||1!==r.references.length)continue;const t=r.fields[0];if(!i.hasOwnProperty(t))continue;const{entity:s,property:n}=(0,_splitEntityProperty.splitEntityProperty)(r.references[0].fields[0]);if(!await(0,_foreignKeyExists.foreignKeyExists)(s,n,i[t]))throw new Error(`Foreign key "${t}" on ${e} references a nonexistent ${s}.${n} = ${i[t]}`)}},insertEntity=async(e="",t=[],i={})=>{const r=gulpConfig.get("databasePath","database/"),s=await(0,_retrieveRecord.retrieveRecord)(e),n=s.keys.find((e=>"primary"===e.type&&1===e.fields.length));i.hasOwnProperty(e)||(i[e]=[]);for(const o of t){const t=await buildEntityValues(e,s,o);await assertUnique(e,s,t),await assertForeignKeys(e,s,t);const a=`${n?t[n.fields[0]]:crypto.randomUUID()}.json`;await writeFile(`${r}${s.path}/${a}`,JSON.stringify(t,null,2)),s.entries.push(a),await writeFile(`${r}${s.path}.json`,JSON.stringify(s,null,2));for(const e of s.keys)1===e.fields.length&&await(0,_updateIndex.updateIndex)(s.path,e,t[e.fields[0]],a);i[e].push(t)}return i};exports.insertEntity=insertEntity;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.insertEntity=void 0,require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.find.js");var _retrieveRecord=require("../utilities/retrieveRecord"),_updateIndex=require("../utilities/updateIndex"),_keyGenerate=require("../introspect/policies/keyGenerate"),_keyUnique=require("../introspect/policies/keyUnique"),_useDefault=require("../introspect/policies/useDefault"),_typeCheck=require("../introspect/policies/typeCheck"),_foreignKeyExists=require("../introspect/policies/foreignKeyExists"),_splitEntityProperty=require("../utilities/parsers/splitEntityProperty"),_config=require("../utilities/config");const{writeFile:writeFile}=require("fs/promises"),buildEntityValues=async(e,t,i={})=>{const r={};for(const s of t.definition){let t=i[s.name];if(s.autoGenerate?t=await(0,_keyGenerate.keyGenerate)(e,[s.name]):Object.prototype.hasOwnProperty.call(s,"default")&&(t=(0,_useDefault.useDefault)(s.default,t)),void 0!==t)r[s.name]=(0,_typeCheck.typeCheck)(s.type,t);else if(!s.optional)throw new Error(`Missing required field "${s.name}" for ${e}`)}return r},assertUnique=async(e,t,i)=>{for(const r of t.keys){if("primary"!==r.type&&"unique"!==r.type||1!==r.fields.length)continue;if(!await(0,_keyUnique.keyUnique)(e,r.fields,i[r.fields[0]]))throw new Error(`Duplicate value for ${r.type} key "${r.fields[0]}" on ${e}`)}},assertForeignKeys=async(e,t,i)=>{for(const r of t.keys){if("foreign"!==r.type||1!==r.fields.length||!r.references||1!==r.references.length)continue;const t=r.fields[0];if(!Object.prototype.hasOwnProperty.call(i,t))continue;const{entity:s,property:n}=(0,_splitEntityProperty.splitEntityProperty)(r.references[0].fields[0]);if(!await(0,_foreignKeyExists.foreignKeyExists)(s,n,i[t]))throw new Error(`Foreign key "${t}" on ${e} references a nonexistent ${s}.${n} = ${i[t]}`)}},insertEntity=async(e="",t=[],i={})=>{const r=(0,_config.getSetting)("databasePath","database/"),s=await(0,_retrieveRecord.retrieveRecord)(e),n=s.keys.find((e=>"primary"===e.type&&1===e.fields.length));Object.prototype.hasOwnProperty.call(i,e)||(i[e]=[]);for(const o of t){const t=await buildEntityValues(e,s,o);await assertUnique(e,s,t),await assertForeignKeys(e,s,t);const a=`${n?t[n.fields[0]]:crypto.randomUUID()}.json`;await writeFile(`${r}${s.path}/${a}`,JSON.stringify(t,null,2)),s.entries.push(a),await writeFile(`${r}${s.path}.json`,JSON.stringify(s,null,2));for(const e of s.keys)1===e.fields.length&&await(0,_updateIndex.updateIndex)(s.path,e,t[e.fields[0]],a);i[e].push(t)}return i};exports.insertEntity=insertEntity;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, '__esModule', {
6
6
  exports.readEntity = void 0
7
7
  const _retrieveRecords = require('../utilities/retrieveRecords')
8
8
  const readEntity = async (entity = '', dataSet = {}) => {
9
- if (!dataSet.hasOwnProperty(entity) || !dataSet[entity].length) {
9
+ if (!Object.prototype.hasOwnProperty.call(dataSet, entity) || !dataSet[entity].length) {
10
10
  dataSet[entity] = await (0, _retrieveRecords.retrieveRecords)(entity)
11
11
  }
12
12
  return dataSet
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.readEntity=void 0;var _retrieveRecords=require("../utilities/retrieveRecords");const readEntity=async(e="",r={})=>(r.hasOwnProperty(e)&&r[e].length||(r[e]=await(0,_retrieveRecords.retrieveRecords)(e)),r);exports.readEntity=readEntity;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.readEntity=void 0;var _retrieveRecords=require("../utilities/retrieveRecords");const readEntity=async(e="",r={})=>(Object.prototype.hasOwnProperty.call(r,e)&&r[e].length||(r[e]=await(0,_retrieveRecords.retrieveRecords)(e)),r);exports.readEntity=readEntity;
@@ -15,7 +15,7 @@ const _keyUnique = require('../introspect/policies/keyUnique')
15
15
  const _typeCheck = require('../introspect/policies/typeCheck')
16
16
  const _foreignKeyExists = require('../introspect/policies/foreignKeyExists')
17
17
  const _splitEntityProperty = require('../utilities/parsers/splitEntityProperty')
18
- const gulpConfig = require('js-build-tools/gulp.config')
18
+ const _config = require('../utilities/config')
19
19
  const {
20
20
  writeFile
21
21
  } = require('fs/promises')
@@ -50,7 +50,7 @@ const assertUniqueForUpdate = async (entity, record, oldData, newValues) => {
50
50
  continue
51
51
  }
52
52
  const field = key.fields[0]
53
- if (!newValues.hasOwnProperty(field) || newValues[field] == oldData[field]) {
53
+ if (!Object.prototype.hasOwnProperty.call(newValues, field) || newValues[field] == oldData[field]) {
54
54
  continue
55
55
  }
56
56
  const isUnique = await (0, _keyUnique.keyUnique)(entity, key.fields, newValues[field])
@@ -83,7 +83,7 @@ const assertForeignKeysForUpdate = async (entity, record, oldData, newValues) =>
83
83
  continue
84
84
  }
85
85
  const field = key.fields[0]
86
- if (!newValues.hasOwnProperty(field) || newValues[field] == oldData[field]) {
86
+ if (!Object.prototype.hasOwnProperty.call(newValues, field) || newValues[field] == oldData[field]) {
87
87
  continue
88
88
  }
89
89
  const {
@@ -102,7 +102,7 @@ const reconcileIndexes = async (record, oldData, newData, newValues, fileName) =
102
102
  continue
103
103
  }
104
104
  const field = key.fields[0]
105
- if (!newValues.hasOwnProperty(field) || newValues[field] == oldData[field]) {
105
+ if (!Object.prototype.hasOwnProperty.call(newValues, field) || newValues[field] == oldData[field]) {
106
106
  continue
107
107
  }
108
108
  await (0, _removeFromIndex.removeFromIndex)(record.path, key, oldData[field], fileName)
@@ -127,14 +127,14 @@ const assertRequiredFields = (entity, record, newData) => {
127
127
  const applyFieldTypes = (record, values) => {
128
128
  const typedValues = Object.assign({}, values)
129
129
  for (const field of record.definition) {
130
- if (typedValues.hasOwnProperty(field.name)) {
130
+ if (Object.prototype.hasOwnProperty.call(typedValues, field.name)) {
131
131
  typedValues[field.name] = (0, _typeCheck.typeCheck)(field.type, typedValues[field.name])
132
132
  }
133
133
  }
134
134
  return typedValues
135
135
  }
136
136
  const updateEntity = async (entity = '', values = {}, dataSet = {}) => {
137
- const databasePath = gulpConfig.get('databasePath', 'database/')
137
+ const databasePath = (0, _config.getSetting)('databasePath', 'database/')
138
138
  const record = await (0, _retrieveRecord.retrieveRecord)(entity)
139
139
  const primaryKey = record.keys.find(key => key.type === 'primary' && key.fields.length === 1)
140
140
  if (!primaryKey) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.updateEntity=void 0,require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.find.js");var _retrieveRecord=require("../utilities/retrieveRecord"),_retrieveFile=require("../utilities/retrieveFile"),_updateIndex=require("../utilities/updateIndex"),_removeFromIndex=require("../utilities/removeFromIndex"),_keyUnique=require("../introspect/policies/keyUnique"),_typeCheck=require("../introspect/policies/typeCheck"),_foreignKeyExists=require("../introspect/policies/foreignKeyExists"),_splitEntityProperty=require("../utilities/parsers/splitEntityProperty");const gulpConfig=require("js-build-tools/gulp.config"),{writeFile:writeFile}=require("fs/promises"),findEntryFile=async(e,t,r)=>{for(const i of e.entries){if((await(0,_retrieveFile.retrieveFile)(`${e.path}/${i}`))[t]==r)return i}return null},assertUniqueForUpdate=async(e,t,r,i)=>{for(const n of t.keys){if("primary"!==n.type&&"unique"!==n.type||1!==n.fields.length)continue;const t=n.fields[0];if(!i.hasOwnProperty(t)||i[t]==r[t])continue;if(!await(0,_keyUnique.keyUnique)(e,n.fields,i[t]))throw new Error(`Duplicate value for ${n.type} key "${t}" on ${e}`)}},assertForeignKeysForUpdate=async(e,t,r,i)=>{for(const n of t.keys){if("foreign"!==n.type||1!==n.fields.length||!n.references||1!==n.references.length)continue;const t=n.fields[0];if(!i.hasOwnProperty(t)||i[t]==r[t])continue;const{entity:s,property:o}=(0,_splitEntityProperty.splitEntityProperty)(n.references[0].fields[0]);if(!await(0,_foreignKeyExists.foreignKeyExists)(s,o,i[t]))throw new Error(`Foreign key "${t}" on ${e} references a nonexistent ${s}.${o} = ${i[t]}`)}},reconcileIndexes=async(e,t,r,i,n)=>{for(const s of e.keys){if(1!==s.fields.length)continue;const o=s.fields[0];i.hasOwnProperty(o)&&i[o]!=t[o]&&(await(0,_removeFromIndex.removeFromIndex)(e.path,s,t[o],n),await(0,_updateIndex.updateIndex)(e.path,s,r[o],n))}},assertRequiredFields=(e,t,r)=>{for(const i of t.definition)if(!i.optional&&void 0===r[i.name])throw new Error(`Missing required field "${i.name}" for ${e}`)},applyFieldTypes=(e,t)=>{const r=Object.assign({},t);for(const t of e.definition)r.hasOwnProperty(t.name)&&(r[t.name]=(0,_typeCheck.typeCheck)(t.type,r[t.name]));return r},updateEntity=async(e="",t={},r={})=>{const i=gulpConfig.get("databasePath","database/"),n=await(0,_retrieveRecord.retrieveRecord)(e),s=n.keys.find((e=>"primary"===e.type&&1===e.fields.length));if(!s)throw new Error(`Cannot update "${e}" without a single-field primary key`);const o=s.fields[0],a=applyFieldTypes(n,t),p=r[e]||[],l=[];for(const t of p){const r=await findEntryFile(n,o,t[o]);if(!r)throw new Error(`Could not find entry for ${e} where "${o}" = ${t[o]}`);const s=await(0,_retrieveFile.retrieveFile)(`${n.path}/${r}`);await assertUniqueForUpdate(e,n,s,a),await assertForeignKeysForUpdate(e,n,s,a);const p=Object.assign({},s,a);assertRequiredFields(e,n,p),await reconcileIndexes(n,s,p,a,r),await writeFile(`${i}${n.path}/${r}`,JSON.stringify(p,null,2)),l.push(p)}return r[e]=l,r};exports.updateEntity=updateEntity;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.updateEntity=void 0,require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.find.js");var _retrieveRecord=require("../utilities/retrieveRecord"),_retrieveFile=require("../utilities/retrieveFile"),_updateIndex=require("../utilities/updateIndex"),_removeFromIndex=require("../utilities/removeFromIndex"),_keyUnique=require("../introspect/policies/keyUnique"),_typeCheck=require("../introspect/policies/typeCheck"),_foreignKeyExists=require("../introspect/policies/foreignKeyExists"),_splitEntityProperty=require("../utilities/parsers/splitEntityProperty"),_config=require("../utilities/config");const{writeFile:writeFile}=require("fs/promises"),findEntryFile=async(e,t,r)=>{for(const i of e.entries){if((await(0,_retrieveFile.retrieveFile)(`${e.path}/${i}`))[t]==r)return i}return null},assertUniqueForUpdate=async(e,t,r,i)=>{for(const n of t.keys){if("primary"!==n.type&&"unique"!==n.type||1!==n.fields.length)continue;const t=n.fields[0];if(!Object.prototype.hasOwnProperty.call(i,t)||i[t]==r[t])continue;if(!await(0,_keyUnique.keyUnique)(e,n.fields,i[t]))throw new Error(`Duplicate value for ${n.type} key "${t}" on ${e}`)}},assertForeignKeysForUpdate=async(e,t,r,i)=>{for(const n of t.keys){if("foreign"!==n.type||1!==n.fields.length||!n.references||1!==n.references.length)continue;const t=n.fields[0];if(!Object.prototype.hasOwnProperty.call(i,t)||i[t]==r[t])continue;const{entity:o,property:s}=(0,_splitEntityProperty.splitEntityProperty)(n.references[0].fields[0]);if(!await(0,_foreignKeyExists.foreignKeyExists)(o,s,i[t]))throw new Error(`Foreign key "${t}" on ${e} references a nonexistent ${o}.${s} = ${i[t]}`)}},reconcileIndexes=async(e,t,r,i,n)=>{for(const o of e.keys){if(1!==o.fields.length)continue;const s=o.fields[0];Object.prototype.hasOwnProperty.call(i,s)&&i[s]!=t[s]&&(await(0,_removeFromIndex.removeFromIndex)(e.path,o,t[s],n),await(0,_updateIndex.updateIndex)(e.path,o,r[s],n))}},assertRequiredFields=(e,t,r)=>{for(const i of t.definition)if(!i.optional&&void 0===r[i.name])throw new Error(`Missing required field "${i.name}" for ${e}`)},applyFieldTypes=(e,t)=>{const r=Object.assign({},t);for(const t of e.definition)Object.prototype.hasOwnProperty.call(r,t.name)&&(r[t.name]=(0,_typeCheck.typeCheck)(t.type,r[t.name]));return r},updateEntity=async(e="",t={},r={})=>{const i=(0,_config.getSetting)("databasePath","database/"),n=await(0,_retrieveRecord.retrieveRecord)(e),o=n.keys.find((e=>"primary"===e.type&&1===e.fields.length));if(!o)throw new Error(`Cannot update "${e}" without a single-field primary key`);const s=o.fields[0],a=applyFieldTypes(n,t),p=r[e]||[],c=[];for(const t of p){const r=await findEntryFile(n,s,t[s]);if(!r)throw new Error(`Could not find entry for ${e} where "${s}" = ${t[s]}`);const o=await(0,_retrieveFile.retrieveFile)(`${n.path}/${r}`);await assertUniqueForUpdate(e,n,o,a),await assertForeignKeysForUpdate(e,n,o,a);const p=Object.assign({},o,a);assertRequiredFields(e,n,p),await reconcileIndexes(n,o,p,a,r),await writeFile(`${i}${n.path}/${r}`,JSON.stringify(p,null,2)),c.push(p)}return r[e]=c,r};exports.updateEntity=updateEntity;
@@ -15,7 +15,7 @@ const likeMatch = (dataValue, pattern) => {
15
15
  return new RegExp(`^${regexPattern}$`, 'i').test(dataValue)
16
16
  }
17
17
  const makeCondition = (data, property, comparator, value) => {
18
- if (!data.hasOwnProperty(property)) {
18
+ if (!Object.prototype.hasOwnProperty.call(data, property)) {
19
19
  return false
20
20
  }
21
21
  const dataValue = data[property]
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.where=void 0,require("core-js/modules/es.array.includes.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.filter.js");const likeMatch=(e,r)=>{if("string"!=typeof e||"string"!=typeof r)return!1;const t=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");return new RegExp(`^${t}$`,"i").test(e)},makeCondition=(e,r,t,s)=>{if(!e.hasOwnProperty(r))return!1;const n=e[r];switch(t){case"=":return n==s;case"!=":case"<>":return n!=s;case">":return n>s;case">=":return n>=s;case"<":return n<s;case"<=":return n<=s;case"in":return Array.isArray(s)&&s.includes(n);case"between":return Array.isArray(s)&&2===s.length&&n>=s[0]&&n<=s[1];case"like":return likeMatch(n,s)}return!1},where=(e=[],{property:r="",joinEntity:t,comparator:s="=",value:n=null}={})=>e.filter((e=>makeCondition(e,t?`${t}.${r}`:r,s,n)));exports.where=where;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.where=void 0,require("core-js/modules/es.array.includes.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.filter.js");const likeMatch=(e,r)=>{if("string"!=typeof e||"string"!=typeof r)return!1;const t=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");return new RegExp(`^${t}$`,"i").test(e)},makeCondition=(e,r,t,s)=>{if(!Object.prototype.hasOwnProperty.call(e,r))return!1;const n=e[r];switch(t){case"=":return n==s;case"!=":case"<>":return n!=s;case">":return n>s;case">=":return n>=s;case"<":return n<s;case"<=":return n<=s;case"in":return Array.isArray(s)&&s.includes(n);case"between":return Array.isArray(s)&&2===s.length&&n>=s[0]&&n<=s[1];case"like":return likeMatch(n,s)}return!1},where=(e=[],{property:r="",joinEntity:t,comparator:s="=",value:n=null}={})=>e.filter((e=>makeCondition(e,t?`${t}.${r}`:r,s,n)));exports.where=where;
@@ -0,0 +1,22 @@
1
+ export type RuntimeSettings = {
2
+ databasePath: string;
3
+ relativePath: string;
4
+ };
5
+ /**
6
+ * Set where this package's data lives: databasePath (a filesystem path, used in Node) and/or
7
+ * relativePath (a URL prefix prepended to databasePath, used when reading over fetch() in a
8
+ * browser). Call this once before using create()/drop()/query() - a fresh consumer has no other
9
+ * way to point this package at their own data directory.
10
+ * @param newSettings
11
+ */
12
+ export declare const configure: (newSettings: Partial<RuntimeSettings>) => void;
13
+ /**
14
+ * Read one runtime setting, falling back to the given default if it was never configured. This is
15
+ * the package's own lightweight replacement for reading settings via js-build-tools/gulp.config -
16
+ * that module is a dev-time build tool, not something a published package should require at
17
+ * runtime, and it isn't available at all once a consumer installs this package on its own.
18
+ * @param key
19
+ * @param defaultValue
20
+ */
21
+ export declare const getSetting: <K extends keyof RuntimeSettings>(key: K, defaultValue: RuntimeSettings[K]) => RuntimeSettings[K];
22
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1,39 @@
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.getSetting = exports.configure = void 0
7
+ const defaults = {
8
+ databasePath: 'database/',
9
+ relativePath: ''
10
+ }
11
+ let settings = {
12
+ ...defaults
13
+ }
14
+ /**
15
+ * Set where this package's data lives: databasePath (a filesystem path, used in Node) and/or
16
+ * relativePath (a URL prefix prepended to databasePath, used when reading over fetch() in a
17
+ * browser). Call this once before using create()/drop()/query() - a fresh consumer has no other
18
+ * way to point this package at their own data directory.
19
+ * @param newSettings
20
+ */
21
+ const configure = newSettings => {
22
+ settings = {
23
+ ...settings,
24
+ ...newSettings
25
+ }
26
+ }
27
+ /**
28
+ * Read one runtime setting, falling back to the given default if it was never configured. This is
29
+ * the package's own lightweight replacement for reading settings via js-build-tools/gulp.config -
30
+ * that module is a dev-time build tool, not something a published package should require at
31
+ * runtime, and it isn't available at all once a consumer installs this package on its own.
32
+ * @param key
33
+ * @param defaultValue
34
+ */
35
+ exports.configure = configure
36
+ const getSetting = (key, defaultValue) => {
37
+ return typeof settings[key] !== 'undefined' ? settings[key] : defaultValue
38
+ }
39
+ exports.getSetting = getSetting
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSetting=exports.configure=void 0;const defaults={databasePath:"database/",relativePath:""};let settings={...defaults};const configure=t=>{settings={...settings,...t}};exports.configure=configure;const getSetting=(t,e)=>void 0!==settings[t]?settings[t]:e;exports.getSetting=getSetting;
@@ -7,7 +7,7 @@ exports.deregisterRecord = void 0
7
7
  require('core-js/modules/es.json.stringify.js')
8
8
  require('core-js/modules/esnext.iterator.constructor.js')
9
9
  require('core-js/modules/esnext.iterator.filter.js')
10
- const gulpConfig = require('js-build-tools/gulp.config')
10
+ const _config = require('./config')
11
11
  const {
12
12
  readFile,
13
13
  writeFile
@@ -18,7 +18,7 @@ const {
18
18
  * @param recordName
19
19
  */
20
20
  const deregisterRecord = async recordName => {
21
- const databasePath = gulpConfig.get('databasePath', 'database/')
21
+ const databasePath = (0, _config.getSetting)('databasePath', 'database/')
22
22
  const registryPath = `${databasePath}__RECORDS.json`
23
23
  let registry
24
24
  try {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.deregisterRecord=void 0,require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.filter.js");const gulpConfig=require("js-build-tools/gulp.config"),{readFile:readFile,writeFile:writeFile}=require("fs/promises"),deregisterRecord=async e=>{const r=`${gulpConfig.get("databasePath","database/")}__RECORDS.json`;let t;try{t=JSON.parse(await readFile(r,"utf8"))}catch(e){return null}const s=`${e}.json`;return t.entries=t.entries.filter((e=>e!==s)),await writeFile(r,JSON.stringify(t,null,2)),t};exports.deregisterRecord=deregisterRecord;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.deregisterRecord=void 0,require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.filter.js");var _config=require("./config");const{readFile:readFile,writeFile:writeFile}=require("fs/promises"),deregisterRecord=async e=>{const r=`${(0,_config.getSetting)("databasePath","database/")}__RECORDS.json`;let t;try{t=JSON.parse(await readFile(r,"utf8"))}catch(e){return null}const s=`${e}.json`;return t.entries=t.entries.filter((e=>e!==s)),await writeFile(r,JSON.stringify(t,null,2)),t};exports.deregisterRecord=deregisterRecord;
@@ -20,7 +20,7 @@ const getConditionIndexedList = async (parsed, recordData, dataSet) => {
20
20
  entity = entityProperty.entity
21
21
  property = entityProperty.property
22
22
  }
23
- if (!recordData.hasOwnProperty(entity)) {
23
+ if (!Object.prototype.hasOwnProperty.call(recordData, entity)) {
24
24
  recordData[entity] = await (0, _retrieveRecord.retrieveRecord)(entity)
25
25
  }
26
26
  const indexed = {}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getConditionIndexedList=void 0;var _isEntityProperty=require("./parsers/isEntityProperty"),_splitEntityProperty=require("./parsers/splitEntityProperty"),_retrieveRecord=require("./retrieveRecord"),_where=require("../queries/where"),_retrieveFile=require("./retrieveFile"),_getMatchingIndexes=require("./getMatchingIndexes");const getConditionIndexedList=async(e,t,r)=>{let i=[];for(let o of e.conditions){let n=e.entity,s=o.property;if((0,_isEntityProperty.isEntityProperty)(s)){const e=(0,_splitEntityProperty.splitEntityProperty)(s);n=e.entity,s=e.property}t.hasOwnProperty(n)||(t[n]=await(0,_retrieveRecord.retrieveRecord)(n));const p={},d=async(e,t,r,i,o,n)=>{const s=(0,_where.where)(n[e][t],{property:"value",comparator:i.comparator,value:i.value});for(let t of s)for(let r of t.record)o[e].push(await(0,_retrieveFile.retrieveFile)(`${e}/${r}`))};await(0,_getMatchingIndexes.getMatchingIndexes)(n,s,t,o,r,p,d)||i.push(o)}return e.conditions=i,e};exports.getConditionIndexedList=getConditionIndexedList;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getConditionIndexedList=void 0;var _isEntityProperty=require("./parsers/isEntityProperty"),_splitEntityProperty=require("./parsers/splitEntityProperty"),_retrieveRecord=require("./retrieveRecord"),_where=require("../queries/where"),_retrieveFile=require("./retrieveFile"),_getMatchingIndexes=require("./getMatchingIndexes");const getConditionIndexedList=async(e,t,r)=>{let i=[];for(let o of e.conditions){let n=e.entity,s=o.property;if((0,_isEntityProperty.isEntityProperty)(s)){const e=(0,_splitEntityProperty.splitEntityProperty)(s);n=e.entity,s=e.property}Object.prototype.hasOwnProperty.call(t,n)||(t[n]=await(0,_retrieveRecord.retrieveRecord)(n));const p={},d=async(e,t,r,i,o,n)=>{const s=(0,_where.where)(n[e][t],{property:"value",comparator:i.comparator,value:i.value});for(let t of s)for(let r of t.record)o[e].push(await(0,_retrieveFile.retrieveFile)(`${e}/${r}`))};await(0,_getMatchingIndexes.getMatchingIndexes)(n,s,t,o,r,p,d)||i.push(o)}return e.conditions=i,e};exports.getConditionIndexedList=getConditionIndexedList;
@@ -34,10 +34,10 @@ const getJoinIndexedList = async (parsed, recordData, dataSets) => {
34
34
  property: propertyB
35
35
  } = (0, _splitEntityProperty.splitEntityProperty)(joinClause.propertyB)
36
36
  // Get the record for the entities A and B, store on the recordData
37
- if (!recordData.hasOwnProperty(entityA)) {
37
+ if (!Object.prototype.hasOwnProperty.call(recordData, entityA)) {
38
38
  recordData[entityA] = await (0, _retrieveRecord.retrieveRecord)(entityA)
39
39
  }
40
- if (!recordData.hasOwnProperty(entityB)) {
40
+ if (!Object.prototype.hasOwnProperty.call(recordData, entityB)) {
41
41
  recordData[entityB] = await (0, _retrieveRecord.retrieveRecord)(entityB)
42
42
  }
43
43
  indexedClone = (0, _restrictIndexedList.restrictIndexedList)(joinClause, filterJoins, indexedClone)
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getJoinIndexedList=void 0;var _siFunciona=_interopRequireDefault(require("si-funciona")),_splitEntityProperty=require("./parsers/splitEntityProperty"),_retrieveRecord=require("./retrieveRecord"),_getMatchingIndexes=require("./getMatchingIndexes"),_matchIndexedJoins=require("./matchIndexedJoins"),_restrictIndexedList=require("./restrictIndexedList");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const getJoinIndexedList=async(e,t,r)=>{let i=[];const n={};let s=!0;const o=e.entity,d=e.joinEntity,c=e.joinClauses;for(const e in r[o]){const a=r[o][e];let p={};p[o]=[_siFunciona.default.cloneObject(a)];for(let e of c){let d=_siFunciona.default.cloneObject(n);const{entity:c,property:a}=(0,_splitEntityProperty.splitEntityProperty)(e.propertyA),{entity:u,property:y}=(0,_splitEntityProperty.splitEntityProperty)(e.propertyB);t.hasOwnProperty(c)||(t[c]=await(0,_retrieveRecord.retrieveRecord)(c)),t.hasOwnProperty(u)||(t[u]=await(0,_retrieveRecord.retrieveRecord)(u)),d=(0,_restrictIndexedList.restrictIndexedList)(e,p,d);const l=(0,_matchIndexedJoins.matchIndexedJoins)(o,d,r),_=await(0,_getMatchingIndexes.getMatchingIndexes)(c,a,t,e,p,n),x=await(0,_getMatchingIndexes.getMatchingIndexes)(u,y,t,e,p,n,l);!(_||x)&&s&&(i.push(e),s=!1)}r[o][e][d]=p[d]}return e.joinClauses=i,e};exports.getJoinIndexedList=getJoinIndexedList;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getJoinIndexedList=void 0;var _siFunciona=_interopRequireDefault(require("si-funciona")),_splitEntityProperty=require("./parsers/splitEntityProperty"),_retrieveRecord=require("./retrieveRecord"),_getMatchingIndexes=require("./getMatchingIndexes"),_matchIndexedJoins=require("./matchIndexedJoins"),_restrictIndexedList=require("./restrictIndexedList");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const getJoinIndexedList=async(e,t,r)=>{let i=[];const n={};let o=!0;const s=e.entity,c=e.joinEntity,d=e.joinClauses;for(const e in r[s]){const a=r[s][e];let p={};p[s]=[_siFunciona.default.cloneObject(a)];for(let e of d){let c=_siFunciona.default.cloneObject(n);const{entity:d,property:a}=(0,_splitEntityProperty.splitEntityProperty)(e.propertyA),{entity:l,property:u}=(0,_splitEntityProperty.splitEntityProperty)(e.propertyB);Object.prototype.hasOwnProperty.call(t,d)||(t[d]=await(0,_retrieveRecord.retrieveRecord)(d)),Object.prototype.hasOwnProperty.call(t,l)||(t[l]=await(0,_retrieveRecord.retrieveRecord)(l)),c=(0,_restrictIndexedList.restrictIndexedList)(e,p,c);const y=(0,_matchIndexedJoins.matchIndexedJoins)(s,c,r),_=await(0,_getMatchingIndexes.getMatchingIndexes)(d,a,t,e,p,n),x=await(0,_getMatchingIndexes.getMatchingIndexes)(l,u,t,e,p,n,y);!(_||x)&&o&&(i.push(e),o=!1)}r[s][e][c]=p[c]}return e.joinClauses=i,e};exports.getJoinIndexedList=getJoinIndexedList;
@@ -11,10 +11,10 @@ const getMatchingIndexes = async (entity, property, recordData, clause, dataSet,
11
11
  for (const key of recordData[entity].keys) {
12
12
  if (key.fields.includes(property)) {
13
13
  dataSet[entity] = []
14
- if (!indexed.hasOwnProperty(entity)) {
14
+ if (!Object.prototype.hasOwnProperty.call(indexed, entity)) {
15
15
  indexed[entity] = {}
16
16
  }
17
- if (!indexed[entity].hasOwnProperty(property)) {
17
+ if (!Object.prototype.hasOwnProperty.call(indexed[entity], property)) {
18
18
  indexed[entity][property] = (await (0, _retrieveIndexes.retrieveIndexes)(entity, [property], recordData))[property]
19
19
  }
20
20
  if (typeof cb === 'function') {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMatchingIndexes=void 0,require("core-js/modules/es.array.includes.js");var _retrieveIndexes=require("./retrieveIndexes");const getMatchingIndexes=async(e,r,t,s,n,i,a=null)=>{let d=!1;for(let o of t[e].keys)o.fields.includes(r)&&(n[e]=[],i.hasOwnProperty(e)||(i[e]={}),i[e].hasOwnProperty(r)||(i[e][r]=(await(0,_retrieveIndexes.retrieveIndexes)(e,[r],t))[r]),"function"==typeof a&&await a(e,r,t,s,n,i),d=!0);return d};exports.getMatchingIndexes=getMatchingIndexes;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMatchingIndexes=void 0,require("core-js/modules/es.array.includes.js");var _retrieveIndexes=require("./retrieveIndexes");const getMatchingIndexes=async(e,t,r,s,n,i,o=null)=>{let a=!1;for(let c of r[e].keys)c.fields.includes(t)&&(n[e]=[],Object.prototype.hasOwnProperty.call(i,e)||(i[e]={}),Object.prototype.hasOwnProperty.call(i[e],t)||(i[e][t]=(await(0,_retrieveIndexes.retrieveIndexes)(e,[t],r))[t]),"function"==typeof o&&await o(e,t,r,s,n,i),a=!0);return a};exports.getMatchingIndexes=getMatchingIndexes;
@@ -32,7 +32,7 @@ const matchIndexedJoins = (entity, indexedClone, dataSets) => async (focusEntity
32
32
  propertySecond: propertyA
33
33
  }]
34
34
  for (const checkProp of properties) {
35
- if (!indexedClone.hasOwnProperty(checkProp.entitySecond)) {
35
+ if (!Object.prototype.hasOwnProperty.call(indexedClone, checkProp.entitySecond)) {
36
36
  indexedClone[checkProp.entitySecond] = _siFunciona.default.cloneObject(indexed[checkProp.entitySecond])
37
37
  }
38
38
  const matchedRecords = indexedClone[checkProp.entitySecond][checkProp.propertySecond].reduce((dataA, dataB) => _siFunciona.default.mergeArrays(dataA, (0, _where.where)(indexedClone[checkProp.entityFirst][checkProp.propertyFirst], {
@@ -41,7 +41,7 @@ const matchIndexedJoins = (entity, indexedClone, dataSets) => async (focusEntity
41
41
  value: dataB.value
42
42
  })), [])
43
43
  const skipPush = checkProp.entityFirst === entity
44
- if (!dataSets.hasOwnProperty(checkProp.entityFirst)) {
44
+ if (!Object.prototype.hasOwnProperty.call(dataSets, checkProp.entityFirst)) {
45
45
  dataSets[checkProp.entityFirst] = []
46
46
  }
47
47
  for (const matchedRecord of matchedRecords) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.matchIndexedJoins=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js");var _siFunciona=_interopRequireDefault(require("si-funciona")),_where=require("../queries/where"),_retrieveFile=require("./retrieveFile"),_splitEntityProperty=require("./parsers/splitEntityProperty");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const matchIndexedJoins=(e,t,r)=>async(i,o,n,s,p,y)=>{const{entity:c,property:u}=(0,_splitEntityProperty.splitEntityProperty)(s.propertyA),{entity:a,property:d}=(0,_splitEntityProperty.splitEntityProperty)(s.propertyB),l=[{entityFirst:c,propertyFirst:u,entitySecond:a,propertySecond:d},{entityFirst:a,propertyFirst:d,entitySecond:c,propertySecond:u}];for(let i of l){t.hasOwnProperty(i.entitySecond)||(t[i.entitySecond]=_siFunciona.default.cloneObject(y[i.entitySecond]));const o=t[i.entitySecond][i.propertySecond].reduce(((e,r)=>_siFunciona.default.mergeArrays(e,(0,_where.where)(t[i.entityFirst][i.propertyFirst],{property:"value",comparator:s.comparator,value:r.value}))),[]);let n=i.entityFirst===e;r.hasOwnProperty(i.entityFirst)||(r[i.entityFirst]=[]);for(let e of o)for(let t of e.record){let e=t;"string"==typeof t&&(e=await(0,_retrieveFile.retrieveFile)(`${i.entityFirst}/${t}`)),n||r[i.entityFirst].push(e),p[i.entityFirst].push(e)}}};exports.matchIndexedJoins=matchIndexedJoins;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.matchIndexedJoins=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js");var _siFunciona=_interopRequireDefault(require("si-funciona")),_where=require("../queries/where"),_retrieveFile=require("./retrieveFile"),_splitEntityProperty=require("./parsers/splitEntityProperty");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const matchIndexedJoins=(e,t,r)=>async(i,o,n,s,p,y)=>{const{entity:c,property:u}=(0,_splitEntityProperty.splitEntityProperty)(s.propertyA),{entity:a,property:l}=(0,_splitEntityProperty.splitEntityProperty)(s.propertyB),d=[{entityFirst:c,propertyFirst:u,entitySecond:a,propertySecond:l},{entityFirst:a,propertyFirst:l,entitySecond:c,propertySecond:u}];for(let i of d){Object.prototype.hasOwnProperty.call(t,i.entitySecond)||(t[i.entitySecond]=_siFunciona.default.cloneObject(y[i.entitySecond]));const o=t[i.entitySecond][i.propertySecond].reduce(((e,r)=>_siFunciona.default.mergeArrays(e,(0,_where.where)(t[i.entityFirst][i.propertyFirst],{property:"value",comparator:s.comparator,value:r.value}))),[]);let n=i.entityFirst===e;Object.prototype.hasOwnProperty.call(r,i.entityFirst)||(r[i.entityFirst]=[]);for(let e of o)for(let t of e.record){let e=t;"string"==typeof t&&(e=await(0,_retrieveFile.retrieveFile)(`${i.entityFirst}/${t}`)),n||r[i.entityFirst].push(e),p[i.entityFirst].push(e)}}};exports.matchIndexedJoins=matchIndexedJoins;
@@ -1,26 +1,26 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.reconcileJoin = void 0
7
- require('core-js/modules/esnext.iterator.constructor.js')
8
- require('core-js/modules/esnext.iterator.for-each.js')
9
- const _where = require('../queries/where')
10
- const reconcileJoin = (dataSet, entityName, entityKey, joinEntity, joinProp) => {
11
- const entity = dataSet[entityName][entityKey]
12
- if (entity.hasOwnProperty(joinEntity) && Array.isArray(entity[joinEntity])) {
13
- entity[joinEntity].forEach((mergedEntity, k) => {
14
- const matchedEntity = (0, _where.where)(dataSet[joinEntity], {
15
- property: joinProp,
16
- comparator: '=',
17
- value: mergedEntity[joinProp]
18
- })
19
- if (matchedEntity.length) {
20
- dataSet[entityName][entityKey][joinEntity][k] = matchedEntity[0]
21
- }
22
- })
23
- }
24
- return dataSet
25
- }
26
- exports.reconcileJoin = reconcileJoin
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.reconcileJoin = void 0
7
+ require('core-js/modules/esnext.iterator.constructor.js')
8
+ require('core-js/modules/esnext.iterator.for-each.js')
9
+ const _where = require('../queries/where')
10
+ const reconcileJoin = (dataSet, entityName, entityKey, joinEntity, joinProp) => {
11
+ const entity = dataSet[entityName][entityKey]
12
+ if (Object.prototype.hasOwnProperty.call(entity, joinEntity) && Array.isArray(entity[joinEntity])) {
13
+ entity[joinEntity].forEach((mergedEntity, k) => {
14
+ const matchedEntity = (0, _where.where)(dataSet[joinEntity], {
15
+ property: joinProp,
16
+ comparator: '=',
17
+ value: mergedEntity[joinProp]
18
+ })
19
+ if (matchedEntity.length) {
20
+ dataSet[entityName][entityKey][joinEntity][k] = matchedEntity[0]
21
+ }
22
+ })
23
+ }
24
+ return dataSet
25
+ }
26
+ exports.reconcileJoin = reconcileJoin
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.reconcileJoin=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.for-each.js");var _where=require("../queries/where");const reconcileJoin=(e,r,o,t,s)=>{const c=e[r][o];return c.hasOwnProperty(t)&&Array.isArray(c[t])&&c[t].forEach(((c,i)=>{const n=(0,_where.where)(e[t],{property:s,comparator:"=",value:c[s]});n.length&&(e[r][o][t][i]=n[0])})),e};exports.reconcileJoin=reconcileJoin;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.reconcileJoin=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.for-each.js");var _where=require("../queries/where");const reconcileJoin=(e,r,o,t,c)=>{const s=e[r][o];return Object.prototype.hasOwnProperty.call(s,t)&&Array.isArray(s[t])&&s[t].forEach(((s,i)=>{const n=(0,_where.where)(e[t],{property:c,comparator:"=",value:s[c]});n.length&&(e[r][o][t][i]=n[0])})),e};exports.reconcileJoin=reconcileJoin;