json-fs-query 1.0.0 → 1.0.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.
- package/browser/jsonFsQuery.js +1613 -1548
- package/browser/jsonFsQuery.min.js +1 -1
- package/dist/data/queries/limitOffset.d.ts +8 -0
- package/dist/data/queries/limitOffset.js +21 -0
- package/dist/data/queries/limitOffset.min.js +1 -0
- package/dist/data/queries/selectFields.d.ts +10 -0
- package/dist/data/queries/selectFields.js +36 -0
- package/dist/data/queries/selectFields.min.js +1 -0
- package/dist/data/utilities/runQuery.js +4 -0
- package/dist/data/utilities/runQuery.min.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice a dataSet down to at most `limit` rows, starting after the first `offset` of them.
|
|
3
|
+
* @param dataSet
|
|
4
|
+
* @param offset
|
|
5
|
+
* @param limit
|
|
6
|
+
*/
|
|
7
|
+
export declare const limitOffset: (dataSet: Object[], offset: number | undefined, limit: number | undefined) => Object[];
|
|
8
|
+
//# sourceMappingURL=limitOffset.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
})
|
|
6
|
+
exports.limitOffset = void 0
|
|
7
|
+
/**
|
|
8
|
+
* Slice a dataSet down to at most `limit` rows, starting after the first `offset` of them.
|
|
9
|
+
* @param dataSet
|
|
10
|
+
* @param offset
|
|
11
|
+
* @param limit
|
|
12
|
+
*/
|
|
13
|
+
const limitOffset = (dataSet = [], offset, limit) => {
|
|
14
|
+
if (typeof offset === 'undefined' && typeof limit === 'undefined') {
|
|
15
|
+
return dataSet
|
|
16
|
+
}
|
|
17
|
+
const start = offset ?? 0
|
|
18
|
+
const end = typeof limit === 'number' ? start + limit : undefined
|
|
19
|
+
return dataSet.slice(start, end)
|
|
20
|
+
}
|
|
21
|
+
exports.limitOffset = limitOffset
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.limitOffset=void 0;const limitOffset=(e=[],t,i)=>{if(void 0===t&&void 0===i)return e;const s=t??0,o="number"==typeof i?s+i:void 0;return e.slice(s,o)};exports.limitOffset=limitOffset;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ParsedSelect } from '../utilities/parsers/findSelects';
|
|
2
|
+
/**
|
|
3
|
+
* Shape each row down to only the selected properties (aliased, when given). dataSet is either a plain array of
|
|
4
|
+
* rows, or (once groupBy has run) a plain object keyed by group value, each value an array of rows - both are
|
|
5
|
+
* shaped the same way, row by row.
|
|
6
|
+
* @param dataSet
|
|
7
|
+
* @param selectClauses
|
|
8
|
+
*/
|
|
9
|
+
export declare const selectFields: (dataSet?: Object[] | Object, selectClauses?: ParsedSelect[]) => Object[] | Object;
|
|
10
|
+
//# sourceMappingURL=selectFields.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
})
|
|
6
|
+
exports.selectFields = void 0
|
|
7
|
+
require('core-js/modules/esnext.iterator.constructor.js')
|
|
8
|
+
require('core-js/modules/esnext.iterator.map.js')
|
|
9
|
+
require('core-js/modules/esnext.iterator.reduce.js')
|
|
10
|
+
const shapeRow = (row, selectClauses) => selectClauses.reduce((shaped, {
|
|
11
|
+
property,
|
|
12
|
+
alias
|
|
13
|
+
}) => {
|
|
14
|
+
shaped[alias || property] = row[property]
|
|
15
|
+
return shaped
|
|
16
|
+
}, {})
|
|
17
|
+
/**
|
|
18
|
+
* Shape each row down to only the selected properties (aliased, when given). dataSet is either a plain array of
|
|
19
|
+
* rows, or (once groupBy has run) a plain object keyed by group value, each value an array of rows - both are
|
|
20
|
+
* shaped the same way, row by row.
|
|
21
|
+
* @param dataSet
|
|
22
|
+
* @param selectClauses
|
|
23
|
+
*/
|
|
24
|
+
const selectFields = (dataSet = [], selectClauses = []) => {
|
|
25
|
+
if (!selectClauses.length) {
|
|
26
|
+
return dataSet
|
|
27
|
+
}
|
|
28
|
+
if (Array.isArray(dataSet)) {
|
|
29
|
+
return dataSet.map(row => shapeRow(row, selectClauses))
|
|
30
|
+
}
|
|
31
|
+
return Object.keys(dataSet).reduce((shaped, key) => {
|
|
32
|
+
shaped[key] = dataSet[key].map(row => shapeRow(row, selectClauses))
|
|
33
|
+
return shaped
|
|
34
|
+
}, {})
|
|
35
|
+
}
|
|
36
|
+
exports.selectFields = selectFields
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.selectFields=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.map.js"),require("core-js/modules/esnext.iterator.reduce.js");const shapeRow=(e,s)=>s.reduce(((s,{property:r,alias:t})=>(s[t||r]=e[r],s)),{}),selectFields=(e=[],s=[])=>s.length?Array.isArray(e)?e.map((e=>shapeRow(e,s))):Object.keys(e).reduce(((r,t)=>(r[t]=e[t].map((e=>shapeRow(e,s))),r)),{}):e;exports.selectFields=selectFields;
|
|
@@ -15,6 +15,8 @@ const _mergeJoins = require('../queries/mergeJoins')
|
|
|
15
15
|
const _where = require('../queries/where')
|
|
16
16
|
const _sortBy = require('../queries/sortBy')
|
|
17
17
|
const _groupBy = require('../queries/groupBy')
|
|
18
|
+
const _limitOffset = require('../queries/limitOffset')
|
|
19
|
+
const _selectFields = require('../queries/selectFields')
|
|
18
20
|
const _retrieveRecord = require('./retrieveRecord')
|
|
19
21
|
const _getConditionIndexedList = require('./getConditionIndexedList')
|
|
20
22
|
const _getJoinIndexedList = require('./getJoinIndexedList')
|
|
@@ -66,7 +68,9 @@ const runQuery = async parsed => {
|
|
|
66
68
|
}, dataSet[parsed.entity])
|
|
67
69
|
}
|
|
68
70
|
dataSet[parsed.entity] = (0, _sortBy.sortBy)(dataSet[parsed.entity], parsed.sortClauses)
|
|
71
|
+
dataSet[parsed.entity] = (0, _limitOffset.limitOffset)(dataSet[parsed.entity], parsed.offset, parsed.limit)
|
|
69
72
|
dataSet[parsed.entity] = (0, _groupBy.groupBy)(dataSet[parsed.entity], parsed.groupBy)
|
|
73
|
+
dataSet[parsed.entity] = (0, _selectFields.selectFields)(dataSet[parsed.entity], parsed.selectClauses)
|
|
70
74
|
return dataSet
|
|
71
75
|
}
|
|
72
76
|
exports.runQuery = runQuery
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runQuery=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js");var _deleteEntity=require("../queries/deleteEntity"),_insertEntity=require("../queries/insertEntity"),_readEntity=require("../queries/readEntity"),_updateEntity=require("../queries/updateEntity"),_joinEntity=require("../queries/joinEntity"),_mergeJoins=require("../queries/mergeJoins"),_where=require("../queries/where"),_sortBy=require("../queries/sortBy"),_groupBy=require("../queries/groupBy"),_retrieveRecord=require("./retrieveRecord"),_getConditionIndexedList=require("./getConditionIndexedList"),_getJoinIndexedList=require("./getJoinIndexedList");const runQuery=async e=>{const t={[e.entity]:await(0,_retrieveRecord.retrieveRecord)(e.entity)};void 0!==e.joinEntity&&(t[e.joinEntity]=await(0,_retrieveRecord.retrieveRecord)(e.joinEntity));let i={[e.entity]:[]};switch(e=await(0,_getConditionIndexedList.getConditionIndexedList)(e,t,i),"delete"!==(e=await(0,_getJoinIndexedList.getJoinIndexedList)(e,t,i)).command&&"update"!==e.command||(i=await(0,_readEntity.readEntity)(e.entity,i),i[e.entity]=e.conditions.reduce(((e,t)=>(0,_where.where)(e,t)),i[e.entity])),e.command){case"delete":i=await(0,_deleteEntity.deleteEntity)(e.entity,i);break;case"insert":i=await(0,_insertEntity.insertEntity)(e.entity,e.insertValues,i);break;case"read":i=await(0,_readEntity.readEntity)(e.entity,i);break;case"update":i=await(0,_updateEntity.updateEntity)(e.entity,e.updateValues,i);break;default:throw new Error(`Unknown command: ${e.command}`)}return i=await(0,_joinEntity.joinEntity)(e.entity,e.joinEntity,i,e.joinClauses),i=await(0,_mergeJoins.mergeJoins)(i,e.mergeJoins),"delete"!==e.command&&"update"!==e.command&&(i[e.entity]=e.conditions.reduce(((e,t)=>(0,_where.where)(e,t)),i[e.entity])),i[e.entity]=(0,_sortBy.sortBy)(i[e.entity],e.sortClauses),i[e.entity]=(0,_groupBy.groupBy)(i[e.entity],e.groupBy),i};exports.runQuery=runQuery;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.runQuery=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js");var _deleteEntity=require("../queries/deleteEntity"),_insertEntity=require("../queries/insertEntity"),_readEntity=require("../queries/readEntity"),_updateEntity=require("../queries/updateEntity"),_joinEntity=require("../queries/joinEntity"),_mergeJoins=require("../queries/mergeJoins"),_where=require("../queries/where"),_sortBy=require("../queries/sortBy"),_groupBy=require("../queries/groupBy"),_limitOffset=require("../queries/limitOffset"),_selectFields=require("../queries/selectFields"),_retrieveRecord=require("./retrieveRecord"),_getConditionIndexedList=require("./getConditionIndexedList"),_getJoinIndexedList=require("./getJoinIndexedList");const runQuery=async e=>{const t={[e.entity]:await(0,_retrieveRecord.retrieveRecord)(e.entity)};void 0!==e.joinEntity&&(t[e.joinEntity]=await(0,_retrieveRecord.retrieveRecord)(e.joinEntity));let i={[e.entity]:[]};switch(e=await(0,_getConditionIndexedList.getConditionIndexedList)(e,t,i),"delete"!==(e=await(0,_getJoinIndexedList.getJoinIndexedList)(e,t,i)).command&&"update"!==e.command||(i=await(0,_readEntity.readEntity)(e.entity,i),i[e.entity]=e.conditions.reduce(((e,t)=>(0,_where.where)(e,t)),i[e.entity])),e.command){case"delete":i=await(0,_deleteEntity.deleteEntity)(e.entity,i);break;case"insert":i=await(0,_insertEntity.insertEntity)(e.entity,e.insertValues,i);break;case"read":i=await(0,_readEntity.readEntity)(e.entity,i);break;case"update":i=await(0,_updateEntity.updateEntity)(e.entity,e.updateValues,i);break;default:throw new Error(`Unknown command: ${e.command}`)}return i=await(0,_joinEntity.joinEntity)(e.entity,e.joinEntity,i,e.joinClauses),i=await(0,_mergeJoins.mergeJoins)(i,e.mergeJoins),"delete"!==e.command&&"update"!==e.command&&(i[e.entity]=e.conditions.reduce(((e,t)=>(0,_where.where)(e,t)),i[e.entity])),i[e.entity]=(0,_sortBy.sortBy)(i[e.entity],e.sortClauses),i[e.entity]=(0,_limitOffset.limitOffset)(i[e.entity],e.offset,e.limit),i[e.entity]=(0,_groupBy.groupBy)(i[e.entity],e.groupBy),i[e.entity]=(0,_selectFields.selectFields)(i[e.entity],e.selectClauses),i};exports.runQuery=runQuery;
|