json-fs-query 3.1.4 → 3.3.0

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 (187) hide show
  1. package/README.md +257 -15
  2. package/browser/jsonFsQuery.js +3884 -5057
  3. package/browser/jsonFsQuery.min.js +1 -1
  4. package/dist/data/introspect/alter.d.ts +12 -0
  5. package/dist/data/introspect/alter.js +304 -0
  6. package/dist/data/introspect/alter.min.js +1 -0
  7. package/dist/data/introspect/create.d.ts +10 -0
  8. package/dist/data/introspect/create.js +9 -23
  9. package/dist/data/introspect/create.min.js +1 -1
  10. package/dist/data/introspect/drop.js +7 -15
  11. package/dist/data/introspect/drop.min.js +1 -1
  12. package/dist/data/introspect/formatDatabase.d.ts +17 -0
  13. package/dist/data/introspect/formatDatabase.js +56 -0
  14. package/dist/data/introspect/formatDatabase.min.js +1 -0
  15. package/dist/data/introspect/index.d.ts +9 -0
  16. package/dist/data/introspect/index.js +18 -5
  17. package/dist/data/introspect/index.min.js +1 -1
  18. package/dist/data/introspect/packDatabase.d.ts +27 -0
  19. package/dist/data/introspect/packDatabase.js +113 -0
  20. package/dist/data/introspect/packDatabase.min.js +1 -0
  21. package/dist/data/introspect/policies/foreignKeyExists.d.ts +2 -0
  22. package/dist/data/introspect/policies/foreignKeyExists.js +9 -3
  23. package/dist/data/introspect/policies/foreignKeyExists.min.js +1 -1
  24. package/dist/data/introspect/policies/hasDependents.d.ts +3 -3
  25. package/dist/data/introspect/policies/hasDependents.js +11 -3
  26. package/dist/data/introspect/policies/hasDependents.min.js +1 -1
  27. package/dist/data/introspect/policies/keyUnique.d.ts +3 -0
  28. package/dist/data/introspect/policies/keyUnique.js +10 -0
  29. package/dist/data/introspect/policies/keyUnique.min.js +1 -1
  30. package/dist/data/queries/databaseStatements.d.ts +31 -0
  31. package/dist/data/queries/databaseStatements.js +97 -0
  32. package/dist/data/queries/databaseStatements.min.js +1 -0
  33. package/dist/data/queries/deleteEntity.js +35 -19
  34. package/dist/data/queries/deleteEntity.min.js +1 -1
  35. package/dist/data/queries/insertEntity.d.ts +8 -0
  36. package/dist/data/queries/insertEntity.js +340 -43
  37. package/dist/data/queries/insertEntity.min.js +1 -1
  38. package/dist/data/queries/joinEntity.d.ts +15 -0
  39. package/dist/data/queries/joinEntity.js +91 -15
  40. package/dist/data/queries/joinEntity.min.js +1 -1
  41. package/dist/data/queries/query.d.ts +2 -1
  42. package/dist/data/queries/query.js +5 -2
  43. package/dist/data/queries/query.min.js +1 -1
  44. package/dist/data/queries/selectFields.d.ts +5 -4
  45. package/dist/data/queries/selectFields.js +25 -11
  46. package/dist/data/queries/selectFields.min.js +1 -1
  47. package/dist/data/queries/updateEntity.js +54 -15
  48. package/dist/data/queries/updateEntity.min.js +1 -1
  49. package/dist/data/storage/databases.d.ts +32 -0
  50. package/dist/data/storage/databases.js +93 -0
  51. package/dist/data/storage/databases.min.js +1 -0
  52. package/dist/data/storage/fileExists.d.ts +7 -0
  53. package/dist/data/storage/fileExists.js +25 -0
  54. package/dist/data/storage/fileExists.min.js +1 -0
  55. package/dist/data/storage/index.d.ts +19 -0
  56. package/dist/data/storage/index.js +124 -0
  57. package/dist/data/storage/index.min.js +1 -0
  58. package/dist/data/storage/listFiles.d.ts +8 -0
  59. package/dist/data/storage/listFiles.js +52 -0
  60. package/dist/data/storage/listFiles.min.js +1 -0
  61. package/dist/data/storage/makeDirectory.d.ts +7 -0
  62. package/dist/data/storage/makeDirectory.js +24 -0
  63. package/dist/data/storage/makeDirectory.min.js +1 -0
  64. package/dist/data/storage/nodeFiles.d.ts +6 -0
  65. package/dist/data/storage/nodeFiles.js +12 -0
  66. package/dist/data/storage/nodeFiles.min.js +1 -0
  67. package/dist/data/storage/readCache.d.ts +37 -0
  68. package/dist/data/storage/readCache.js +117 -0
  69. package/dist/data/storage/readCache.min.js +1 -0
  70. package/dist/data/storage/readJson.d.ts +16 -0
  71. package/dist/data/storage/readJson.js +38 -0
  72. package/dist/data/storage/readJson.min.js +1 -0
  73. package/dist/data/storage/removeDirectory.d.ts +8 -0
  74. package/dist/data/storage/removeDirectory.js +30 -0
  75. package/dist/data/storage/removeDirectory.min.js +1 -0
  76. package/dist/data/storage/removeFile.d.ts +8 -0
  77. package/dist/data/storage/removeFile.js +31 -0
  78. package/dist/data/storage/removeFile.min.js +1 -0
  79. package/dist/data/storage/storagePath.d.ts +11 -0
  80. package/dist/data/storage/storagePath.js +25 -0
  81. package/dist/data/storage/storagePath.min.js +1 -0
  82. package/dist/data/storage/writeJson.d.ts +17 -0
  83. package/dist/data/storage/writeJson.js +37 -0
  84. package/dist/data/storage/writeJson.min.js +1 -0
  85. package/dist/data/storage/writeSet.d.ts +64 -0
  86. package/dist/data/storage/writeSet.js +306 -0
  87. package/dist/data/storage/writeSet.min.js +1 -0
  88. package/dist/data/utilities/compareAs.d.ts +1 -0
  89. package/dist/data/utilities/compareAs.js +2 -2
  90. package/dist/data/utilities/compareAs.min.js +1 -1
  91. package/dist/data/utilities/config.d.ts +37 -0
  92. package/dist/data/utilities/config.js +77 -5
  93. package/dist/data/utilities/config.min.js +1 -1
  94. package/dist/data/utilities/databaseLock.d.ts +7 -0
  95. package/dist/data/utilities/databaseLock.js +19 -4
  96. package/dist/data/utilities/databaseLock.min.js +1 -1
  97. package/dist/data/utilities/deregisterRecord.js +4 -10
  98. package/dist/data/utilities/deregisterRecord.min.js +1 -1
  99. package/dist/data/utilities/getConditionIndexedList.js +3 -4
  100. package/dist/data/utilities/getConditionIndexedList.min.js +1 -1
  101. package/dist/data/utilities/indexBuffer.d.ts +35 -0
  102. package/dist/data/utilities/indexBuffer.js +139 -0
  103. package/dist/data/utilities/indexBuffer.min.js +1 -0
  104. package/dist/data/utilities/indexHas.d.ts +13 -0
  105. package/dist/data/utilities/indexHas.js +48 -0
  106. package/dist/data/utilities/indexHas.min.js +1 -0
  107. package/dist/data/utilities/joinBases.d.ts +29 -0
  108. package/dist/data/utilities/joinBases.js +128 -0
  109. package/dist/data/utilities/joinBases.min.js +1 -0
  110. package/dist/data/utilities/joinKey.d.ts +17 -0
  111. package/dist/data/utilities/joinKey.js +31 -0
  112. package/dist/data/utilities/joinKey.min.js +1 -0
  113. package/dist/data/utilities/keyIndexFiles.d.ts +16 -0
  114. package/dist/data/utilities/keyIndexFiles.js +60 -0
  115. package/dist/data/utilities/keyIndexFiles.min.js +1 -0
  116. package/dist/data/utilities/knownFields.d.ts +26 -0
  117. package/dist/data/utilities/knownFields.js +128 -0
  118. package/dist/data/utilities/knownFields.min.js +1 -0
  119. package/dist/data/utilities/packedTable.d.ts +34 -0
  120. package/dist/data/utilities/packedTable.js +60 -0
  121. package/dist/data/utilities/packedTable.min.js +1 -0
  122. package/dist/data/utilities/parsers/findInsertValues.d.ts +3 -3
  123. package/dist/data/utilities/parsers/findInsertValues.js +28 -12
  124. package/dist/data/utilities/parsers/findInsertValues.min.js +1 -1
  125. package/dist/data/utilities/parsers/maskStrings.js +11 -2
  126. package/dist/data/utilities/parsers/maskStrings.min.js +1 -1
  127. package/dist/data/utilities/parsers/parseAlter.d.ts +33 -0
  128. package/dist/data/utilities/parsers/parseAlter.js +84 -0
  129. package/dist/data/utilities/parsers/parseAlter.min.js +1 -0
  130. package/dist/data/utilities/parsers/parseCreate.d.ts +14 -0
  131. package/dist/data/utilities/parsers/parseCreate.js +13 -5
  132. package/dist/data/utilities/parsers/parseCreate.min.js +1 -1
  133. package/dist/data/utilities/parsers/parseDatabaseStatement.d.ts +17 -0
  134. package/dist/data/utilities/parsers/parseDatabaseStatement.js +82 -0
  135. package/dist/data/utilities/parsers/parseDatabaseStatement.min.js +1 -0
  136. package/dist/data/utilities/parsers/parseQuery.d.ts +3 -0
  137. package/dist/data/utilities/parsers/parseQuery.js +24 -0
  138. package/dist/data/utilities/parsers/parseQuery.min.js +1 -1
  139. package/dist/data/utilities/parsers/startsQuery.js +1 -1
  140. package/dist/data/utilities/parsers/startsQuery.min.js +1 -1
  141. package/dist/data/utilities/recordExists.js +2 -7
  142. package/dist/data/utilities/recordExists.min.js +1 -1
  143. package/dist/data/utilities/registerRecord.js +4 -10
  144. package/dist/data/utilities/registerRecord.min.js +1 -1
  145. package/dist/data/utilities/removeFromIndex.js +4 -10
  146. package/dist/data/utilities/removeFromIndex.min.js +1 -1
  147. package/dist/data/utilities/retrieveFile.d.ts +5 -0
  148. package/dist/data/utilities/retrieveFile.js +7 -16
  149. package/dist/data/utilities/retrieveFile.min.js +1 -1
  150. package/dist/data/utilities/retrieveFiles.d.ts +15 -0
  151. package/dist/data/utilities/retrieveFiles.js +48 -0
  152. package/dist/data/utilities/retrieveFiles.min.js +1 -0
  153. package/dist/data/utilities/retrieveRecord.d.ts +6 -0
  154. package/dist/data/utilities/retrieveRecord.js +24 -1
  155. package/dist/data/utilities/retrieveRecord.min.js +1 -1
  156. package/dist/data/utilities/retrieveRecords.d.ts +22 -0
  157. package/dist/data/utilities/retrieveRecords.js +60 -10
  158. package/dist/data/utilities/retrieveRecords.min.js +1 -1
  159. package/dist/data/utilities/rowLookup.d.ts +38 -0
  160. package/dist/data/utilities/rowLookup.js +99 -0
  161. package/dist/data/utilities/rowLookup.min.js +1 -0
  162. package/dist/data/utilities/runQuery.js +28 -4
  163. package/dist/data/utilities/runQuery.min.js +1 -1
  164. package/dist/data/utilities/semiJoin.d.ts +27 -0
  165. package/dist/data/utilities/semiJoin.js +97 -0
  166. package/dist/data/utilities/semiJoin.min.js +1 -0
  167. package/dist/data/utilities/updateIndex.js +5 -14
  168. package/dist/data/utilities/updateIndex.min.js +1 -1
  169. package/dist/index.d.ts +1 -1
  170. package/dist/index.js +24 -0
  171. package/dist/index.min.js +1 -1
  172. package/package.json +10 -4
  173. package/dist/data/utilities/getJoinIndexedList.d.ts +0 -3
  174. package/dist/data/utilities/getJoinIndexedList.js +0 -76
  175. package/dist/data/utilities/getJoinIndexedList.min.js +0 -1
  176. package/dist/data/utilities/getMatchingIndexes.d.ts +0 -2
  177. package/dist/data/utilities/getMatchingIndexes.js +0 -28
  178. package/dist/data/utilities/getMatchingIndexes.min.js +0 -1
  179. package/dist/data/utilities/matchIndexedJoins.d.ts +0 -2
  180. package/dist/data/utilities/matchIndexedJoins.js +0 -63
  181. package/dist/data/utilities/matchIndexedJoins.min.js +0 -1
  182. package/dist/data/utilities/restrictIndexedList.d.ts +0 -2
  183. package/dist/data/utilities/restrictIndexedList.js +0 -45
  184. package/dist/data/utilities/restrictIndexedList.min.js +0 -1
  185. package/dist/data/utilities/useJoinClause.d.ts +0 -6
  186. package/dist/data/utilities/useJoinClause.js +0 -57
  187. package/dist/data/utilities/useJoinClause.min.js +0 -1
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getMatchingIndexes = void 0;
7
- var _retrieveIndexes = require("./retrieveIndexes");
8
- var _isSingleFieldKey = require("./isSingleFieldKey");
9
- const getMatchingIndexes = async (entity, property, recordData, clause, dataSet, indexed, cb = null) => {
10
- let isIndexed = false;
11
- for (const key of recordData[entity].keys) {
12
- if ((0, _isSingleFieldKey.isSingleFieldKey)(key, property)) {
13
- dataSet[entity] = [];
14
- if (!Object.prototype.hasOwnProperty.call(indexed, entity)) {
15
- indexed[entity] = {};
16
- }
17
- if (!Object.prototype.hasOwnProperty.call(indexed[entity], property)) {
18
- indexed[entity][property] = (await (0, _retrieveIndexes.retrieveIndexes)(entity, [property], recordData))[property];
19
- }
20
- if (typeof cb === 'function') {
21
- await cb(entity, property, recordData, clause, dataSet, indexed);
22
- }
23
- isIndexed = true;
24
- }
25
- }
26
- return isIndexed;
27
- };
28
- exports.getMatchingIndexes = getMatchingIndexes;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMatchingIndexes=void 0;var _retrieveIndexes=require("./retrieveIndexes"),_isSingleFieldKey=require("./isSingleFieldKey");const getMatchingIndexes=async(e,t,i,r,n,s,o=null)=>{let l=!1;for(const a of i[e].keys)(0,_isSingleFieldKey.isSingleFieldKey)(a,t)&&(n[e]=[],Object.prototype.hasOwnProperty.call(s,e)||(s[e]={}),Object.prototype.hasOwnProperty.call(s[e],t)||(s[e][t]=(await(0,_retrieveIndexes.retrieveIndexes)(e,[t],i))[t]),"function"==typeof o&&await o(e,t,i,r,n,s),l=!0);return l};exports.getMatchingIndexes=getMatchingIndexes;
@@ -1,2 +0,0 @@
1
- export declare const matchIndexedJoins: (entity: any, indexedClone: any, dataSets: any) => (focusEntity: any, property: any, recordData: any, joinClause: any, filterJoins: any, indexed: any) => Promise<void>;
2
- //# sourceMappingURL=matchIndexedJoins.d.ts.map
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.matchIndexedJoins = void 0;
7
- require("core-js/modules/esnext.iterator.constructor.js");
8
- require("core-js/modules/esnext.iterator.reduce.js");
9
- var _siFunciona = _interopRequireDefault(require("si-funciona"));
10
- var _where = require("../queries/where");
11
- var _retrieveFile = require("./retrieveFile");
12
- var _splitEntityProperty = require("./parsers/splitEntityProperty");
13
- var _fieldType = require("./fieldType");
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- const matchIndexedJoins = (entity, indexedClone, dataSets) => async (focusEntity, property, recordData, joinClause, filterJoins, indexed) => {
16
- const {
17
- entity: entityA,
18
- property: propertyA
19
- } = (0, _splitEntityProperty.splitEntityProperty)(joinClause.propertyA);
20
- const {
21
- entity: entityB,
22
- property: propertyB
23
- } = (0, _splitEntityProperty.splitEntityProperty)(joinClause.propertyB);
24
- const properties = [{
25
- entityFirst: entityA,
26
- propertyFirst: propertyA,
27
- entitySecond: entityB,
28
- propertySecond: propertyB
29
- }, {
30
- entityFirst: entityB,
31
- propertyFirst: propertyB,
32
- entitySecond: entityA,
33
- propertySecond: propertyA
34
- }];
35
- for (const checkProp of properties) {
36
- if (!Object.prototype.hasOwnProperty.call(indexedClone, checkProp.entitySecond)) {
37
- indexedClone[checkProp.entitySecond] = _siFunciona.default.cloneObject(indexed[checkProp.entitySecond]);
38
- }
39
- const matchedRecords = indexedClone[checkProp.entitySecond][checkProp.propertySecond].reduce((dataA, dataB) => _siFunciona.default.mergeArrays(dataA, (0, _where.where)(indexedClone[checkProp.entityFirst][checkProp.propertyFirst], {
40
- property: 'value',
41
- comparator: joinClause.comparator,
42
- value: dataB.value,
43
- type: (0, _fieldType.fieldType)(recordData[checkProp.entityFirst], checkProp.propertyFirst)
44
- })), []);
45
- const skipPush = checkProp.entityFirst === entity;
46
- if (!Object.prototype.hasOwnProperty.call(dataSets, checkProp.entityFirst)) {
47
- dataSets[checkProp.entityFirst] = [];
48
- }
49
- for (const matchedRecord of matchedRecords) {
50
- for (const file of matchedRecord.record) {
51
- let entityRecord = file;
52
- if (typeof file === 'string') {
53
- entityRecord = await (0, _retrieveFile.retrieveFile)(`${checkProp.entityFirst}/${file}`);
54
- }
55
- if (!skipPush) {
56
- dataSets[checkProp.entityFirst].push(entityRecord);
57
- }
58
- filterJoins[checkProp.entityFirst].push(entityRecord);
59
- }
60
- }
61
- }
62
- };
63
- exports.matchIndexedJoins = matchIndexedJoins;
@@ -1 +0,0 @@
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"),_fieldType=require("./fieldType");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(const i of l){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,type:(0,_fieldType.fieldType)(n[i.entityFirst],i.propertyFirst)}))),[]),c=i.entityFirst===e;Object.prototype.hasOwnProperty.call(r,i.entityFirst)||(r[i.entityFirst]=[]);for(const e of o)for(const t of e.record){let e=t;"string"==typeof t&&(e=await(0,_retrieveFile.retrieveFile)(`${i.entityFirst}/${t}`)),c||r[i.entityFirst].push(e),p[i.entityFirst].push(e)}}};exports.matchIndexedJoins=matchIndexedJoins;
@@ -1,2 +0,0 @@
1
- export declare const restrictIndexedList: (joinClause: any, filterJoins: any, indexedClone: any) => any;
2
- //# sourceMappingURL=restrictIndexedList.d.ts.map
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.restrictIndexedList = void 0;
7
- var _splitEntityProperty = require("./parsers/splitEntityProperty");
8
- const restrictIndexedList = (joinClause, filterJoins, indexedClone) => {
9
- const {
10
- entity: entityA,
11
- property: propertyA
12
- } = (0, _splitEntityProperty.splitEntityProperty)(joinClause.propertyA);
13
- const {
14
- entity: entityB,
15
- property: propertyB
16
- } = (0, _splitEntityProperty.splitEntityProperty)(joinClause.propertyB);
17
- if (Object.prototype.hasOwnProperty.call(filterJoins, entityA)) {
18
- const existingEntities = filterJoins[entityA];
19
- if (!Object.prototype.hasOwnProperty.call(indexedClone, entityA)) {
20
- indexedClone[entityA] = {};
21
- }
22
- if (!Object.prototype.hasOwnProperty.call(indexedClone[entityA], propertyA)) {
23
- indexedClone[entityA][propertyA] = {};
24
- }
25
- indexedClone[entityA][propertyA] = [{
26
- value: existingEntities[0][propertyA],
27
- record: existingEntities
28
- }];
29
- }
30
- if (Object.prototype.hasOwnProperty.call(filterJoins, entityB)) {
31
- const existingEntities = filterJoins[entityB];
32
- if (!Object.prototype.hasOwnProperty.call(indexedClone, entityB)) {
33
- indexedClone[entityB] = {};
34
- }
35
- if (!Object.prototype.hasOwnProperty.call(indexedClone[entityB], propertyB)) {
36
- indexedClone[entityB][propertyB] = {};
37
- }
38
- indexedClone[entityB][propertyB] = [{
39
- value: existingEntities[0][propertyB],
40
- record: existingEntities
41
- }];
42
- }
43
- return indexedClone;
44
- };
45
- exports.restrictIndexedList = restrictIndexedList;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.restrictIndexedList=void 0;var _splitEntityProperty=require("./parsers/splitEntityProperty");const restrictIndexedList=(t,r,e)=>{const{entity:p,property:o}=(0,_splitEntityProperty.splitEntityProperty)(t.propertyA),{entity:s,property:y}=(0,_splitEntityProperty.splitEntityProperty)(t.propertyB);if(Object.prototype.hasOwnProperty.call(r,p)){const t=r[p];Object.prototype.hasOwnProperty.call(e,p)||(e[p]={}),Object.prototype.hasOwnProperty.call(e[p],o)||(e[p][o]={}),e[p][o]=[{value:t[0][o],record:t}]}if(Object.prototype.hasOwnProperty.call(r,s)){const t=r[s];Object.prototype.hasOwnProperty.call(e,s)||(e[s]={}),Object.prototype.hasOwnProperty.call(e[s],y)||(e[s][y]={}),e[s][y]=[{value:t[0][y],record:t}]}return e};exports.restrictIndexedList=restrictIndexedList;
@@ -1,6 +0,0 @@
1
- export declare const useJoinClause: ({ propertyA, comparator, propertyB }?: {
2
- propertyA?: any;
3
- comparator?: string;
4
- propertyB?: any;
5
- }, dataSets?: {}, filterJoins?: {}) => Promise<{}>;
6
- //# sourceMappingURL=useJoinClause.d.ts.map
@@ -1,57 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useJoinClause = void 0;
7
- require("core-js/modules/esnext.iterator.constructor.js");
8
- require("core-js/modules/esnext.iterator.reduce.js");
9
- var _readEntity = require("../queries/readEntity");
10
- var _where = require("../queries/where");
11
- var _splitEntityProperty = require("./parsers/splitEntityProperty");
12
- var _siFunciona = _interopRequireDefault(require("si-funciona"));
13
- var _retrieveRecord = require("./retrieveRecord");
14
- var _fieldType = require("./fieldType");
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- const useJoinClause = async ({
17
- propertyA = null,
18
- comparator = '=',
19
- propertyB = null
20
- } = {}, dataSets = {}, filterJoins = {}) => {
21
- const {
22
- entity: entityA,
23
- property: propA
24
- } = (0, _splitEntityProperty.splitEntityProperty)(propertyA);
25
- const {
26
- entity: entityB,
27
- property: propB
28
- } = (0, _splitEntityProperty.splitEntityProperty)(propertyB);
29
- if (!Object.prototype.hasOwnProperty.call(dataSets, entityA)) {
30
- dataSets = await (0, _readEntity.readEntity)(entityA, dataSets);
31
- }
32
- if (!Object.prototype.hasOwnProperty.call(dataSets, entityB)) {
33
- dataSets = await (0, _readEntity.readEntity)(entityB, dataSets);
34
- }
35
- if (!Object.prototype.hasOwnProperty.call(filterJoins, entityA)) {
36
- filterJoins[entityA] = _siFunciona.default.cloneObject(dataSets[entityA]);
37
- }
38
- if (!Object.prototype.hasOwnProperty.call(filterJoins, entityB)) {
39
- filterJoins[entityB] = _siFunciona.default.cloneObject(dataSets[entityB]);
40
- }
41
- const typeA = (0, _fieldType.fieldType)(await (0, _retrieveRecord.retrieveRecord)(entityA), propA);
42
- const typeB = (0, _fieldType.fieldType)(await (0, _retrieveRecord.retrieveRecord)(entityB), propB);
43
- filterJoins[entityA] = filterJoins[entityB].reduce((dataA, dataB) => _siFunciona.default.mergeArrays(dataA, (0, _where.where)(filterJoins[entityA], {
44
- property: propA,
45
- comparator,
46
- value: dataB[propB],
47
- type: typeA
48
- })), []);
49
- filterJoins[entityB] = filterJoins[entityA].reduce((dataB, dataA) => _siFunciona.default.mergeArrays(dataB, (0, _where.where)(filterJoins[entityB], {
50
- property: propB,
51
- comparator,
52
- value: dataA[propA],
53
- type: typeB
54
- })), []);
55
- return filterJoins;
56
- };
57
- exports.useJoinClause = useJoinClause;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useJoinClause=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js");var _readEntity=require("../queries/readEntity"),_where=require("../queries/where"),_splitEntityProperty=require("./parsers/splitEntityProperty"),_siFunciona=_interopRequireDefault(require("si-funciona")),_retrieveRecord=require("./retrieveRecord"),_fieldType=require("./fieldType");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const useJoinClause=async({propertyA:e=null,comparator:r="=",propertyB:t=null}={},i={},o={})=>{const{entity:a,property:p}=(0,_splitEntityProperty.splitEntityProperty)(e),{entity:n,property:s}=(0,_splitEntityProperty.splitEntityProperty)(t);Object.prototype.hasOwnProperty.call(i,a)||(i=await(0,_readEntity.readEntity)(a,i)),Object.prototype.hasOwnProperty.call(i,n)||(i=await(0,_readEntity.readEntity)(n,i)),Object.prototype.hasOwnProperty.call(o,a)||(o[a]=_siFunciona.default.cloneObject(i[a])),Object.prototype.hasOwnProperty.call(o,n)||(o[n]=_siFunciona.default.cloneObject(i[n]));const u=(0,_fieldType.fieldType)(await(0,_retrieveRecord.retrieveRecord)(a),p),y=(0,_fieldType.fieldType)(await(0,_retrieveRecord.retrieveRecord)(n),s);return o[a]=o[n].reduce(((e,t)=>_siFunciona.default.mergeArrays(e,(0,_where.where)(o[a],{property:p,comparator:r,value:t[s],type:u}))),[]),o[n]=o[a].reduce(((e,t)=>_siFunciona.default.mergeArrays(e,(0,_where.where)(o[n],{property:s,comparator:r,value:t[p],type:y}))),[]),o};exports.useJoinClause=useJoinClause;