json-fs-query 1.0.4 → 1.0.6
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 +10158 -27750
- package/browser/jsonFsQuery.min.js +1 -1
- package/dist/data/introspect/create.d.ts +10 -10
- package/dist/data/introspect/create.js +47 -47
- package/dist/data/introspect/definitions/field.d.ts +27 -27
- package/dist/data/introspect/definitions/field.js +36 -36
- package/dist/data/introspect/definitions/key.d.ts +25 -25
- package/dist/data/introspect/definitions/key.js +53 -53
- package/dist/data/introspect/definitions/keyReference.d.ts +17 -17
- package/dist/data/introspect/definitions/keyReference.js +20 -20
- package/dist/data/introspect/definitions/record.d.ts +25 -25
- package/dist/data/introspect/definitions/record.js +32 -32
- package/dist/data/introspect/describe.js +15 -15
- package/dist/data/introspect/drop.js +37 -37
- package/dist/data/introspect/index.d.ts +7 -7
- package/dist/data/introspect/index.js +30 -30
- package/dist/data/introspect/policies/foreignKeyExists.d.ts +8 -8
- package/dist/data/introspect/policies/foreignKeyExists.js +25 -25
- package/dist/data/introspect/policies/hasDependents.d.ts +12 -12
- package/dist/data/introspect/policies/hasDependents.js +52 -52
- package/dist/data/introspect/policies/keyGenerate.d.ts +1 -1
- package/dist/data/introspect/policies/keyGenerate.js +17 -17
- package/dist/data/introspect/policies/keyUnique.d.ts +9 -9
- package/dist/data/introspect/policies/keyUnique.js +31 -31
- package/dist/data/introspect/policies/typeCheck.d.ts +11 -11
- package/dist/data/introspect/policies/typeCheck.js +57 -57
- package/dist/data/introspect/policies/typeEnum.d.ts +1 -1
- package/dist/data/introspect/policies/typeEnum.js +9 -9
- package/dist/data/introspect/policies/useDefault.d.ts +1 -1
- package/dist/data/introspect/policies/useDefault.js +8 -8
- package/dist/data/queries/deleteEntity.d.ts +1 -1
- package/dist/data/queries/deleteEntity.js +100 -100
- package/dist/data/queries/groupBy.d.ts +1 -1
- package/dist/data/queries/groupBy.js +22 -22
- package/dist/data/queries/insertEntity.d.ts +1 -1
- package/dist/data/queries/insertEntity.js +117 -117
- package/dist/data/queries/joinEntity.d.ts +1 -1
- package/dist/data/queries/joinEntity.js +32 -32
- package/dist/data/queries/joinEntity.min.js +1 -1
- package/dist/data/queries/limitOffset.d.ts +7 -7
- package/dist/data/queries/limitOffset.js +21 -21
- package/dist/data/queries/mergeJoins.d.ts +1 -1
- package/dist/data/queries/mergeJoins.js +19 -19
- package/dist/data/queries/mergeJoins.min.js +1 -1
- package/dist/data/queries/parser.d.ts +1 -1
- package/dist/data/queries/parser.js +19 -19
- package/dist/data/queries/parser.min.js +1 -1
- package/dist/data/queries/query.d.ts +1 -1
- package/dist/data/queries/query.js +18 -18
- package/dist/data/queries/query.min.js +1 -1
- package/dist/data/queries/readEntity.js +14 -14
- package/dist/data/queries/selectFields.d.ts +9 -9
- package/dist/data/queries/selectFields.js +36 -36
- package/dist/data/queries/sortBy.d.ts +1 -1
- package/dist/data/queries/sortBy.js +15 -15
- package/dist/data/queries/sortBy.min.js +1 -1
- package/dist/data/queries/updateEntity.d.ts +1 -1
- package/dist/data/queries/updateEntity.js +190 -190
- package/dist/data/queries/where.d.ts +6 -6
- package/dist/data/queries/where.js +56 -56
- package/dist/data/utilities/computeKeyValue.d.ts +12 -12
- package/dist/data/utilities/computeKeyValue.js +26 -26
- package/dist/data/utilities/config.d.ts +27 -27
- package/dist/data/utilities/config.js +45 -45
- package/dist/data/utilities/deregisterRecord.d.ts +7 -7
- package/dist/data/utilities/deregisterRecord.js +34 -34
- package/dist/data/utilities/getConditionIndexedList.js +47 -47
- package/dist/data/utilities/getConditionIndexedList.min.js +1 -1
- package/dist/data/utilities/getJoinIndexedList.js +76 -76
- package/dist/data/utilities/getJoinIndexedList.min.js +1 -1
- package/dist/data/utilities/getMatchingIndexes.js +28 -28
- package/dist/data/utilities/getMatchingIndexes.min.js +1 -1
- package/dist/data/utilities/matchIndexedJoins.js +61 -61
- package/dist/data/utilities/matchIndexedJoins.min.js +1 -1
- package/dist/data/utilities/mergeJoin.js +44 -44
- package/dist/data/utilities/mergeJoin.min.js +1 -1
- package/dist/data/utilities/parsers/findCommand.d.ts +9 -9
- package/dist/data/utilities/parsers/findCommand.js +25 -25
- package/dist/data/utilities/parsers/findConditions.d.ts +14 -14
- package/dist/data/utilities/parsers/findConditions.js +28 -28
- package/dist/data/utilities/parsers/findConditions.min.js +1 -1
- package/dist/data/utilities/parsers/findGroupBy.d.ts +8 -8
- package/dist/data/utilities/parsers/findGroupBy.js +22 -22
- package/dist/data/utilities/parsers/findInsertValues.d.ts +12 -12
- package/dist/data/utilities/parsers/findInsertValues.js +34 -34
- package/dist/data/utilities/parsers/findJoinClauses.d.ts +12 -12
- package/dist/data/utilities/parsers/findJoinClauses.js +27 -27
- package/dist/data/utilities/parsers/findJoinClauses.min.js +1 -1
- package/dist/data/utilities/parsers/findJoinEntity.d.ts +8 -8
- package/dist/data/utilities/parsers/findJoinEntity.js +22 -22
- package/dist/data/utilities/parsers/findLimit.d.ts +8 -8
- package/dist/data/utilities/parsers/findLimit.js +22 -22
- package/dist/data/utilities/parsers/findMergeJoins.d.ts +11 -11
- package/dist/data/utilities/parsers/findMergeJoins.js +26 -26
- package/dist/data/utilities/parsers/findMergeJoins.min.js +1 -1
- package/dist/data/utilities/parsers/findOffset.d.ts +8 -8
- package/dist/data/utilities/parsers/findOffset.js +22 -22
- package/dist/data/utilities/parsers/findSelects.d.ts +11 -11
- package/dist/data/utilities/parsers/findSelects.js +30 -30
- package/dist/data/utilities/parsers/findSelects.min.js +1 -1
- package/dist/data/utilities/parsers/findSortClauses.d.ts +11 -11
- package/dist/data/utilities/parsers/findSortClauses.js +30 -30
- package/dist/data/utilities/parsers/findSortClauses.min.js +1 -1
- package/dist/data/utilities/parsers/findUpdateValues.d.ts +14 -14
- package/dist/data/utilities/parsers/findUpdateValues.js +34 -34
- package/dist/data/utilities/parsers/isEntityProperty.js +6 -6
- package/dist/data/utilities/parsers/parseLiteralValue.d.ts +11 -11
- package/dist/data/utilities/parsers/parseLiteralValue.js +34 -34
- package/dist/data/utilities/parsers/parseQuery.d.ts +32 -32
- package/dist/data/utilities/parsers/parseQuery.js +51 -51
- package/dist/data/utilities/parsers/parseQuery.min.js +1 -1
- package/dist/data/utilities/parsers/removeFromQuery.js +6 -6
- package/dist/data/utilities/parsers/splitEntityProperty.js +13 -13
- package/dist/data/utilities/parsers/splitQueries.js +9 -9
- package/dist/data/utilities/reconcileJoin.js +26 -26
- package/dist/data/utilities/reconcileJoins.js +26 -26
- package/dist/data/utilities/reconcileJoins.min.js +1 -1
- package/dist/data/utilities/registerRecord.d.ts +7 -7
- package/dist/data/utilities/registerRecord.js +67 -67
- package/dist/data/utilities/removeFromIndex.d.ts +13 -13
- package/dist/data/utilities/removeFromIndex.js +44 -46
- package/dist/data/utilities/restrictIndexedList.js +45 -45
- package/dist/data/utilities/retrieveFile.js +28 -28
- package/dist/data/utilities/retrieveFile.min.js +1 -1
- package/dist/data/utilities/retrieveIndexes.d.ts +1 -1
- package/dist/data/utilities/retrieveIndexes.js +24 -24
- package/dist/data/utilities/retrieveIndexes.min.js +1 -1
- package/dist/data/utilities/retrieveRecord.js +9 -9
- package/dist/data/utilities/retrieveRecords.js +21 -21
- package/dist/data/utilities/retrieveRecords.min.js +1 -1
- package/dist/data/utilities/runQuery.d.ts +1 -1
- package/dist/data/utilities/runQuery.js +87 -87
- package/dist/data/utilities/updateIndex.d.ts +16 -16
- package/dist/data/utilities/updateIndex.js +56 -56
- package/dist/data/utilities/useJoinClause.d.ts +5 -5
- package/dist/data/utilities/useJoinClause.js +51 -51
- package/dist/index.d.ts +4 -4
- package/dist/index.js +42 -42
- package/package.json +9 -5
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { ParsedCommand, ParsedEntity } from './findCommand';
|
|
2
|
-
import { ParsedInsertRow } from './findInsertValues';
|
|
3
|
-
import { ParsedUpdateValues } from './findUpdateValues';
|
|
4
|
-
import { ParsedJoinEntity } from './findJoinEntity';
|
|
5
|
-
import { ParsedSelect } from './findSelects';
|
|
6
|
-
import { ParsedCondition } from './findConditions';
|
|
7
|
-
import { ParsedJoinClause } from './findJoinClauses';
|
|
8
|
-
import { ParsedMergeJoin } from './findMergeJoins';
|
|
9
|
-
import { ParsedSortClause } from './findSortClauses';
|
|
10
|
-
import { ParsedGroupBy } from './findGroupBy';
|
|
11
|
-
import { ParsedLimit } from './findLimit';
|
|
12
|
-
import { ParsedOffset } from './findOffset';
|
|
13
|
-
export type ParsedQuery = {
|
|
14
|
-
command: ParsedCommand | undefined;
|
|
15
|
-
entity: ParsedEntity | undefined;
|
|
16
|
-
joinEntity: ParsedJoinEntity | undefined;
|
|
17
|
-
selectClauses: ParsedSelect[];
|
|
18
|
-
insertValues: ParsedInsertRow[];
|
|
19
|
-
updateValues: ParsedUpdateValues;
|
|
20
|
-
conditions: ParsedCondition[];
|
|
21
|
-
joinClauses: ParsedJoinClause[];
|
|
22
|
-
mergeJoins: ParsedMergeJoin[];
|
|
23
|
-
sortClauses: ParsedSortClause[];
|
|
24
|
-
groupBy: ParsedGroupBy | undefined;
|
|
25
|
-
limit: ParsedLimit | undefined;
|
|
26
|
-
offset: ParsedOffset | undefined;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Break a query down into its components.
|
|
30
|
-
* @param query
|
|
31
|
-
*/
|
|
32
|
-
export declare const parseQuery: (query: string) => ParsedQuery;
|
|
1
|
+
import { ParsedCommand, ParsedEntity } from './findCommand';
|
|
2
|
+
import { ParsedInsertRow } from './findInsertValues';
|
|
3
|
+
import { ParsedUpdateValues } from './findUpdateValues';
|
|
4
|
+
import { ParsedJoinEntity } from './findJoinEntity';
|
|
5
|
+
import { ParsedSelect } from './findSelects';
|
|
6
|
+
import { ParsedCondition } from './findConditions';
|
|
7
|
+
import { ParsedJoinClause } from './findJoinClauses';
|
|
8
|
+
import { ParsedMergeJoin } from './findMergeJoins';
|
|
9
|
+
import { ParsedSortClause } from './findSortClauses';
|
|
10
|
+
import { ParsedGroupBy } from './findGroupBy';
|
|
11
|
+
import { ParsedLimit } from './findLimit';
|
|
12
|
+
import { ParsedOffset } from './findOffset';
|
|
13
|
+
export type ParsedQuery = {
|
|
14
|
+
command: ParsedCommand | undefined;
|
|
15
|
+
entity: ParsedEntity | undefined;
|
|
16
|
+
joinEntity: ParsedJoinEntity | undefined;
|
|
17
|
+
selectClauses: ParsedSelect[];
|
|
18
|
+
insertValues: ParsedInsertRow[];
|
|
19
|
+
updateValues: ParsedUpdateValues;
|
|
20
|
+
conditions: ParsedCondition[];
|
|
21
|
+
joinClauses: ParsedJoinClause[];
|
|
22
|
+
mergeJoins: ParsedMergeJoin[];
|
|
23
|
+
sortClauses: ParsedSortClause[];
|
|
24
|
+
groupBy: ParsedGroupBy | undefined;
|
|
25
|
+
limit: ParsedLimit | undefined;
|
|
26
|
+
offset: ParsedOffset | undefined;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Break a query down into its components.
|
|
30
|
+
* @param query
|
|
31
|
+
*/
|
|
32
|
+
export declare const parseQuery: (query: string) => ParsedQuery;
|
|
33
33
|
//# sourceMappingURL=parseQuery.d.ts.map
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports,
|
|
4
|
-
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.parseQuery = void 0
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault
|
|
21
|
-
/**
|
|
22
|
-
* Break a query down into its components.
|
|
23
|
-
* @param query
|
|
24
|
-
*/
|
|
25
|
-
const parseQuery = query => {
|
|
26
|
-
const parsedQuery = {
|
|
27
|
-
command: undefined,
|
|
28
|
-
entity: undefined,
|
|
29
|
-
joinEntity: undefined,
|
|
30
|
-
selectClauses: [],
|
|
31
|
-
insertValues: [],
|
|
32
|
-
updateValues: {},
|
|
33
|
-
conditions: [],
|
|
34
|
-
joinClauses: [],
|
|
35
|
-
mergeJoins: [],
|
|
36
|
-
sortClauses: [],
|
|
37
|
-
groupBy: undefined,
|
|
38
|
-
limit: undefined,
|
|
39
|
-
offset: undefined
|
|
40
|
-
}
|
|
41
|
-
const {
|
|
42
|
-
curry,
|
|
43
|
-
pipe
|
|
44
|
-
} = _siFunciona.default
|
|
45
|
-
query = pipe(curry(_findCommand.findCommand)(parsedQuery), curry(_findInsertValues.findInsertValues)(parsedQuery), curry(_findUpdateValues.findUpdateValues)(parsedQuery), curry(_findJoinEntity.findJoinEntity)(parsedQuery), curry(_findSelects.findSelects)(parsedQuery), curry(_findConditions.findConditions)(parsedQuery), curry(_findJoinClauses.findJoinClauses)(parsedQuery), curry(_findMergeJoins.findMergeJoins)(parsedQuery), curry(_findSortClauses.findSortClauses)(parsedQuery), curry(_findGroupBy.findGroupBy)(parsedQuery), curry(_findLimit.findLimit)(parsedQuery), curry(_findOffset.findOffset)(parsedQuery))(query)
|
|
46
|
-
if (query) {
|
|
47
|
-
throw new Error(`Unrecognized query value: ${query}`)
|
|
48
|
-
}
|
|
49
|
-
return parsedQuery
|
|
50
|
-
}
|
|
51
|
-
exports.parseQuery = parseQuery
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parseQuery = void 0;
|
|
7
|
+
var _siFunciona = _interopRequireDefault(require("si-funciona"));
|
|
8
|
+
var _findCommand = require("./findCommand");
|
|
9
|
+
var _findInsertValues = require("./findInsertValues");
|
|
10
|
+
var _findUpdateValues = require("./findUpdateValues");
|
|
11
|
+
var _findJoinEntity = require("./findJoinEntity");
|
|
12
|
+
var _findSelects = require("./findSelects");
|
|
13
|
+
var _findConditions = require("./findConditions");
|
|
14
|
+
var _findJoinClauses = require("./findJoinClauses");
|
|
15
|
+
var _findMergeJoins = require("./findMergeJoins");
|
|
16
|
+
var _findSortClauses = require("./findSortClauses");
|
|
17
|
+
var _findGroupBy = require("./findGroupBy");
|
|
18
|
+
var _findLimit = require("./findLimit");
|
|
19
|
+
var _findOffset = require("./findOffset");
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
/**
|
|
22
|
+
* Break a query down into its components.
|
|
23
|
+
* @param query
|
|
24
|
+
*/
|
|
25
|
+
const parseQuery = query => {
|
|
26
|
+
const parsedQuery = {
|
|
27
|
+
command: undefined,
|
|
28
|
+
entity: undefined,
|
|
29
|
+
joinEntity: undefined,
|
|
30
|
+
selectClauses: [],
|
|
31
|
+
insertValues: [],
|
|
32
|
+
updateValues: {},
|
|
33
|
+
conditions: [],
|
|
34
|
+
joinClauses: [],
|
|
35
|
+
mergeJoins: [],
|
|
36
|
+
sortClauses: [],
|
|
37
|
+
groupBy: undefined,
|
|
38
|
+
limit: undefined,
|
|
39
|
+
offset: undefined
|
|
40
|
+
};
|
|
41
|
+
const {
|
|
42
|
+
curry,
|
|
43
|
+
pipe
|
|
44
|
+
} = _siFunciona.default;
|
|
45
|
+
query = pipe(curry(_findCommand.findCommand)(parsedQuery), curry(_findInsertValues.findInsertValues)(parsedQuery), curry(_findUpdateValues.findUpdateValues)(parsedQuery), curry(_findJoinEntity.findJoinEntity)(parsedQuery), curry(_findSelects.findSelects)(parsedQuery), curry(_findConditions.findConditions)(parsedQuery), curry(_findJoinClauses.findJoinClauses)(parsedQuery), curry(_findMergeJoins.findMergeJoins)(parsedQuery), curry(_findSortClauses.findSortClauses)(parsedQuery), curry(_findGroupBy.findGroupBy)(parsedQuery), curry(_findLimit.findLimit)(parsedQuery), curry(_findOffset.findOffset)(parsedQuery))(query);
|
|
46
|
+
if (query) {
|
|
47
|
+
throw new Error(`Unrecognized query value: ${query}`);
|
|
48
|
+
}
|
|
49
|
+
return parsedQuery;
|
|
50
|
+
};
|
|
51
|
+
exports.parseQuery = parseQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseQuery=void 0;var _siFunciona=_interopRequireDefault(require("si-funciona")),_findCommand=require("./findCommand"),_findInsertValues=require("./findInsertValues"),_findUpdateValues=require("./findUpdateValues"),_findJoinEntity=require("./findJoinEntity"),_findSelects=require("./findSelects"),_findConditions=require("./findConditions"),_findJoinClauses=require("./findJoinClauses"),_findMergeJoins=require("./findMergeJoins"),_findSortClauses=require("./findSortClauses"),_findGroupBy=require("./findGroupBy"),_findLimit=require("./findLimit"),_findOffset=require("./findOffset");function _interopRequireDefault(i){return i&&i.__esModule?i:{default:i}}const parseQuery=i=>{
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseQuery=void 0;var _siFunciona=_interopRequireDefault(require("si-funciona")),_findCommand=require("./findCommand"),_findInsertValues=require("./findInsertValues"),_findUpdateValues=require("./findUpdateValues"),_findJoinEntity=require("./findJoinEntity"),_findSelects=require("./findSelects"),_findConditions=require("./findConditions"),_findJoinClauses=require("./findJoinClauses"),_findMergeJoins=require("./findMergeJoins"),_findSortClauses=require("./findSortClauses"),_findGroupBy=require("./findGroupBy"),_findLimit=require("./findLimit"),_findOffset=require("./findOffset");function _interopRequireDefault(i){return i&&i.__esModule?i:{default:i}}const parseQuery=i=>{const e={command:void 0,entity:void 0,joinEntity:void 0,selectClauses:[],insertValues:[],updateValues:{},conditions:[],joinClauses:[],mergeJoins:[],sortClauses:[],groupBy:void 0,limit:void 0,offset:void 0},{curry:n,pipe:r}=_siFunciona.default;if(i=r(n(_findCommand.findCommand)(e),n(_findInsertValues.findInsertValues)(e),n(_findUpdateValues.findUpdateValues)(e),n(_findJoinEntity.findJoinEntity)(e),n(_findSelects.findSelects)(e),n(_findConditions.findConditions)(e),n(_findJoinClauses.findJoinClauses)(e),n(_findMergeJoins.findMergeJoins)(e),n(_findSortClauses.findSortClauses)(e),n(_findGroupBy.findGroupBy)(e),n(_findLimit.findLimit)(e),n(_findOffset.findOffset)(e))(i))throw new Error(`Unrecognized query value: ${i}`);return e};exports.parseQuery=parseQuery;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports,
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.removeFromQuery = void 0
|
|
7
|
-
const removeFromQuery = (substring, query) => query.replace(substring, '').trim()
|
|
8
|
-
exports.removeFromQuery = removeFromQuery
|
|
5
|
+
});
|
|
6
|
+
exports.removeFromQuery = void 0;
|
|
7
|
+
const removeFromQuery = (substring, query) => query.replace(substring, '').trim();
|
|
8
|
+
exports.removeFromQuery = removeFromQuery;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports,
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.splitEntityProperty = void 0
|
|
7
|
-
const entityMatch = /^[a-z0-9_-]+/i
|
|
8
|
-
const propertyMatch = /\.([a-z0-9_-]+)$/i
|
|
5
|
+
});
|
|
6
|
+
exports.splitEntityProperty = void 0;
|
|
7
|
+
const entityMatch = /^[a-z0-9_-]+/i;
|
|
8
|
+
const propertyMatch = /\.([a-z0-9_-]+)$/i;
|
|
9
9
|
const splitEntityProperty = entityProp => {
|
|
10
|
-
const entityFound = entityProp.match(entityMatch)
|
|
10
|
+
const entityFound = entityProp.match(entityMatch);
|
|
11
11
|
if (!entityFound) {
|
|
12
|
-
throw new Error(`Unable to use property: ${entityProp}`)
|
|
12
|
+
throw new Error(`Unable to use property: ${entityProp}`);
|
|
13
13
|
}
|
|
14
|
-
const propFound = entityProp.match(propertyMatch)
|
|
14
|
+
const propFound = entityProp.match(propertyMatch);
|
|
15
15
|
if (!propFound) {
|
|
16
|
-
throw new Error(`Unable to use property: ${entityProp}`)
|
|
16
|
+
throw new Error(`Unable to use property: ${entityProp}`);
|
|
17
17
|
}
|
|
18
18
|
return {
|
|
19
19
|
entity: entityFound[0],
|
|
20
20
|
property: propFound[1]
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
exports.splitEntityProperty = splitEntityProperty
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
exports.splitEntityProperty = splitEntityProperty;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports,
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.splitQueries = void 0
|
|
7
|
-
require(
|
|
8
|
-
require(
|
|
9
|
-
const queryMatch = /\s*(?=(?:delete|insert|read|update)\s+[a-z0-9._-]+)\s*/i
|
|
10
|
-
const splitQueries = (queries = '') => queries.split(queryMatch).filter(query => query.length > 0)
|
|
11
|
-
exports.splitQueries = splitQueries
|
|
5
|
+
});
|
|
6
|
+
exports.splitQueries = void 0;
|
|
7
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
8
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
9
|
+
const queryMatch = /\s*(?=(?:delete|insert|read|update)\s+[a-z0-9._-]+)\s*/i;
|
|
10
|
+
const splitQueries = (queries = '') => queries.split(queryMatch).filter(query => query.length > 0);
|
|
11
|
+
exports.splitQueries = splitQueries;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports,
|
|
4
|
-
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.reconcileJoin = void 0
|
|
7
|
-
require(
|
|
8
|
-
require(
|
|
9
|
-
|
|
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
|
+
"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
|
+
var _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,26 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports,
|
|
4
|
-
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.reconcileJoins = void 0
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const reconcileJoins = (propertyA, propertyB, dataSet) => {
|
|
10
|
-
const {
|
|
11
|
-
entity: entityA,
|
|
12
|
-
property: propA
|
|
13
|
-
} = (0, _splitEntityProperty.splitEntityProperty)(propertyA)
|
|
14
|
-
const {
|
|
15
|
-
entity: entityB,
|
|
16
|
-
property: propB
|
|
17
|
-
} = (0, _splitEntityProperty.splitEntityProperty)(propertyB)
|
|
18
|
-
for (const entityName in dataSet) {
|
|
19
|
-
for (const entityKey in dataSet[entityName]) {
|
|
20
|
-
dataSet = (0, _reconcileJoin.reconcileJoin)(dataSet, entityName, entityKey, entityA, propA)
|
|
21
|
-
dataSet = (0, _reconcileJoin.reconcileJoin)(dataSet, entityName, entityKey, entityB, propB)
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return dataSet
|
|
25
|
-
}
|
|
26
|
-
exports.reconcileJoins = reconcileJoins
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.reconcileJoins = void 0;
|
|
7
|
+
var _splitEntityProperty = require("./parsers/splitEntityProperty");
|
|
8
|
+
var _reconcileJoin = require("./reconcileJoin");
|
|
9
|
+
const reconcileJoins = (propertyA, propertyB, dataSet) => {
|
|
10
|
+
const {
|
|
11
|
+
entity: entityA,
|
|
12
|
+
property: propA
|
|
13
|
+
} = (0, _splitEntityProperty.splitEntityProperty)(propertyA);
|
|
14
|
+
const {
|
|
15
|
+
entity: entityB,
|
|
16
|
+
property: propB
|
|
17
|
+
} = (0, _splitEntityProperty.splitEntityProperty)(propertyB);
|
|
18
|
+
for (const entityName in dataSet) {
|
|
19
|
+
for (const entityKey in dataSet[entityName]) {
|
|
20
|
+
dataSet = (0, _reconcileJoin.reconcileJoin)(dataSet, entityName, entityKey, entityA, propA);
|
|
21
|
+
dataSet = (0, _reconcileJoin.reconcileJoin)(dataSet, entityName, entityKey, entityB, propB);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return dataSet;
|
|
25
|
+
};
|
|
26
|
+
exports.reconcileJoins = reconcileJoins;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.reconcileJoins=void 0;var _splitEntityProperty=require("./parsers/splitEntityProperty"),_reconcileJoin=require("./reconcileJoin");const reconcileJoins=(e,r,t)=>{const{entity:i,property:o}=(0,_splitEntityProperty.splitEntityProperty)(e),{entity:n,property:c}=(0,_splitEntityProperty.splitEntityProperty)(r);for(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.reconcileJoins=void 0;var _splitEntityProperty=require("./parsers/splitEntityProperty"),_reconcileJoin=require("./reconcileJoin");const reconcileJoins=(e,r,t)=>{const{entity:i,property:o}=(0,_splitEntityProperty.splitEntityProperty)(e),{entity:n,property:c}=(0,_splitEntityProperty.splitEntityProperty)(r);for(const e in t)for(const r in t[e])t=(0,_reconcileJoin.reconcileJoin)(t,e,r,i,o),t=(0,_reconcileJoin.reconcileJoin)(t,e,r,n,c);return t};exports.reconcileJoins=reconcileJoins;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { recordDefinition } from '../introspect/definitions/record';
|
|
2
|
-
/**
|
|
3
|
-
* Add a record's filename to the __RECORDS registry, creating the registry file the first time
|
|
4
|
-
* a record is created if it doesn't already exist.
|
|
5
|
-
* @param recordName
|
|
6
|
-
*/
|
|
7
|
-
export declare const registerRecord: (recordName: string) => Promise<recordDefinition>;
|
|
1
|
+
import { recordDefinition } from '../introspect/definitions/record';
|
|
2
|
+
/**
|
|
3
|
+
* Add a record's filename to the __RECORDS registry, creating the registry file the first time
|
|
4
|
+
* a record is created if it doesn't already exist.
|
|
5
|
+
* @param recordName
|
|
6
|
+
*/
|
|
7
|
+
export declare const registerRecord: (recordName: string) => Promise<recordDefinition>;
|
|
8
8
|
//# sourceMappingURL=registerRecord.d.ts.map
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports,
|
|
4
|
-
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.registerRecord = void 0
|
|
7
|
-
require(
|
|
8
|
-
require(
|
|
9
|
-
|
|
10
|
-
const {
|
|
11
|
-
readFile,
|
|
12
|
-
writeFile
|
|
13
|
-
} = require('fs/promises')
|
|
14
|
-
/**
|
|
15
|
-
* __RECORDS is itself an ordinary record - path/definition/keys/entries - whose entries are the
|
|
16
|
-
* filenames of every other record that has been created. This is the schema it's given the first
|
|
17
|
-
* time a record is registered and no __RECORDS.json exists yet, matching what a hand-authored
|
|
18
|
-
* database (see test-data/__RECORDS.json) already expects to find.
|
|
19
|
-
*/
|
|
20
|
-
const defaultRegistry = () => ({
|
|
21
|
-
path: '',
|
|
22
|
-
definition: [{
|
|
23
|
-
name: 'path',
|
|
24
|
-
type: 'string',
|
|
25
|
-
optional: false,
|
|
26
|
-
autoGenerate: false
|
|
27
|
-
}, {
|
|
28
|
-
name: 'definition',
|
|
29
|
-
type: 'object',
|
|
30
|
-
optional: false,
|
|
31
|
-
autoGenerate: false
|
|
32
|
-
}, {
|
|
33
|
-
name: 'keys',
|
|
34
|
-
type: 'array',
|
|
35
|
-
optional: false,
|
|
36
|
-
autoGenerate: false
|
|
37
|
-
}, {
|
|
38
|
-
name: 'entries',
|
|
39
|
-
type: 'array',
|
|
40
|
-
optional: false,
|
|
41
|
-
autoGenerate: false
|
|
42
|
-
}],
|
|
43
|
-
keys: [],
|
|
44
|
-
entries: []
|
|
45
|
-
})
|
|
46
|
-
/**
|
|
47
|
-
* Add a record's filename to the __RECORDS registry, creating the registry file the first time
|
|
48
|
-
* a record is created if it doesn't already exist.
|
|
49
|
-
* @param recordName
|
|
50
|
-
*/
|
|
51
|
-
const registerRecord = async recordName => {
|
|
52
|
-
const databasePath = (0, _config.getSetting)('databasePath', 'database/')
|
|
53
|
-
const registryPath = `${databasePath}__RECORDS.json
|
|
54
|
-
let registry
|
|
55
|
-
try {
|
|
56
|
-
registry = JSON.parse(await readFile(registryPath, 'utf8'))
|
|
57
|
-
} catch (err) {
|
|
58
|
-
registry = defaultRegistry()
|
|
59
|
-
}
|
|
60
|
-
const fileName = `${recordName}.json
|
|
61
|
-
if (!registry.entries.includes(fileName)) {
|
|
62
|
-
registry.entries.push(fileName)
|
|
63
|
-
}
|
|
64
|
-
await writeFile(registryPath, JSON.stringify(registry, null, 2))
|
|
65
|
-
return registry
|
|
66
|
-
}
|
|
67
|
-
exports.registerRecord = registerRecord
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.registerRecord = void 0;
|
|
7
|
+
require("core-js/modules/es.array.includes.js");
|
|
8
|
+
require("core-js/modules/es.json.stringify.js");
|
|
9
|
+
var _config = require("./config");
|
|
10
|
+
const {
|
|
11
|
+
readFile,
|
|
12
|
+
writeFile
|
|
13
|
+
} = require('fs/promises');
|
|
14
|
+
/**
|
|
15
|
+
* __RECORDS is itself an ordinary record - path/definition/keys/entries - whose entries are the
|
|
16
|
+
* filenames of every other record that has been created. This is the schema it's given the first
|
|
17
|
+
* time a record is registered and no __RECORDS.json exists yet, matching what a hand-authored
|
|
18
|
+
* database (see test-data/__RECORDS.json) already expects to find.
|
|
19
|
+
*/
|
|
20
|
+
const defaultRegistry = () => ({
|
|
21
|
+
path: '',
|
|
22
|
+
definition: [{
|
|
23
|
+
name: 'path',
|
|
24
|
+
type: 'string',
|
|
25
|
+
optional: false,
|
|
26
|
+
autoGenerate: false
|
|
27
|
+
}, {
|
|
28
|
+
name: 'definition',
|
|
29
|
+
type: 'object',
|
|
30
|
+
optional: false,
|
|
31
|
+
autoGenerate: false
|
|
32
|
+
}, {
|
|
33
|
+
name: 'keys',
|
|
34
|
+
type: 'array',
|
|
35
|
+
optional: false,
|
|
36
|
+
autoGenerate: false
|
|
37
|
+
}, {
|
|
38
|
+
name: 'entries',
|
|
39
|
+
type: 'array',
|
|
40
|
+
optional: false,
|
|
41
|
+
autoGenerate: false
|
|
42
|
+
}],
|
|
43
|
+
keys: [],
|
|
44
|
+
entries: []
|
|
45
|
+
});
|
|
46
|
+
/**
|
|
47
|
+
* Add a record's filename to the __RECORDS registry, creating the registry file the first time
|
|
48
|
+
* a record is created if it doesn't already exist.
|
|
49
|
+
* @param recordName
|
|
50
|
+
*/
|
|
51
|
+
const registerRecord = async recordName => {
|
|
52
|
+
const databasePath = (0, _config.getSetting)('databasePath', 'database/');
|
|
53
|
+
const registryPath = `${databasePath}__RECORDS.json`;
|
|
54
|
+
let registry;
|
|
55
|
+
try {
|
|
56
|
+
registry = JSON.parse(await readFile(registryPath, 'utf8'));
|
|
57
|
+
} catch (err) {
|
|
58
|
+
registry = defaultRegistry();
|
|
59
|
+
}
|
|
60
|
+
const fileName = `${recordName}.json`;
|
|
61
|
+
if (!registry.entries.includes(fileName)) {
|
|
62
|
+
registry.entries.push(fileName);
|
|
63
|
+
}
|
|
64
|
+
await writeFile(registryPath, JSON.stringify(registry, null, 2));
|
|
65
|
+
return registry;
|
|
66
|
+
};
|
|
67
|
+
exports.registerRecord = registerRecord;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { keyDefinition } from '../introspect/definitions/key';
|
|
2
|
-
import { recordPath } from '../introspect/definitions/record';
|
|
3
|
-
import { indexEntry } from './updateIndex';
|
|
4
|
-
/**
|
|
5
|
-
* Remove a single entry file from the index that backs one of a record's keys, dropping a value
|
|
6
|
-
* entirely once its last file is removed. A key with no lookup, or an index file that doesn't
|
|
7
|
-
* exist yet, is left untouched.
|
|
8
|
-
* @param path
|
|
9
|
-
* @param key
|
|
10
|
-
* @param value
|
|
11
|
-
* @param fileName
|
|
12
|
-
*/
|
|
13
|
-
export declare const removeFromIndex: (path?: recordPath, key?: keyDefinition, value?: any, fileName?: string) => Promise<indexEntry[] | null>;
|
|
1
|
+
import { keyDefinition } from '../introspect/definitions/key';
|
|
2
|
+
import { recordPath } from '../introspect/definitions/record';
|
|
3
|
+
import { indexEntry } from './updateIndex';
|
|
4
|
+
/**
|
|
5
|
+
* Remove a single entry file from the index that backs one of a record's keys, dropping a value
|
|
6
|
+
* entirely once its last file is removed. A key with no lookup, or an index file that doesn't
|
|
7
|
+
* exist yet, is left untouched.
|
|
8
|
+
* @param path
|
|
9
|
+
* @param key
|
|
10
|
+
* @param value
|
|
11
|
+
* @param fileName
|
|
12
|
+
*/
|
|
13
|
+
export declare const removeFromIndex: (path?: recordPath, key?: keyDefinition, value?: any, fileName?: string) => Promise<indexEntry[] | null>;
|
|
14
14
|
//# sourceMappingURL=removeFromIndex.d.ts.map
|
|
@@ -1,46 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports,
|
|
4
|
-
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.removeFromIndex = void 0
|
|
7
|
-
require(
|
|
8
|
-
require(
|
|
9
|
-
require(
|
|
10
|
-
require(
|
|
11
|
-
|
|
12
|
-
const {
|
|
13
|
-
readFile,
|
|
14
|
-
writeFile
|
|
15
|
-
} = require('fs/promises')
|
|
16
|
-
/**
|
|
17
|
-
* Remove a single entry file from the index that backs one of a record's keys, dropping a value
|
|
18
|
-
* entirely once its last file is removed. A key with no lookup, or an index file that doesn't
|
|
19
|
-
* exist yet, is left untouched.
|
|
20
|
-
* @param path
|
|
21
|
-
* @param key
|
|
22
|
-
* @param value
|
|
23
|
-
* @param fileName
|
|
24
|
-
*/
|
|
25
|
-
const removeFromIndex = async (path = '', key = null, value = undefined, fileName = '') => {
|
|
26
|
-
if (!key || !key.lookup) {
|
|
27
|
-
return null
|
|
28
|
-
}
|
|
29
|
-
const databasePath = (0, _config.getSetting)('databasePath', 'database/')
|
|
30
|
-
const indexPath = `${databasePath}__indexes/${path}/${key.lookup}
|
|
31
|
-
let index = []
|
|
32
|
-
try {
|
|
33
|
-
index = JSON.parse(await readFile(indexPath, 'utf8'))
|
|
34
|
-
} catch (err) {
|
|
35
|
-
return null
|
|
36
|
-
}
|
|
37
|
-
index = index.map(entry => entry.value == value
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
exports.removeFromIndex = removeFromIndex
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.removeFromIndex = void 0;
|
|
7
|
+
require("core-js/modules/es.json.stringify.js");
|
|
8
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
9
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
10
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
11
|
+
var _config = require("./config");
|
|
12
|
+
const {
|
|
13
|
+
readFile,
|
|
14
|
+
writeFile
|
|
15
|
+
} = require('fs/promises');
|
|
16
|
+
/**
|
|
17
|
+
* Remove a single entry file from the index that backs one of a record's keys, dropping a value
|
|
18
|
+
* entirely once its last file is removed. A key with no lookup, or an index file that doesn't
|
|
19
|
+
* exist yet, is left untouched.
|
|
20
|
+
* @param path
|
|
21
|
+
* @param key
|
|
22
|
+
* @param value
|
|
23
|
+
* @param fileName
|
|
24
|
+
*/
|
|
25
|
+
const removeFromIndex = async (path = '', key = null, value = undefined, fileName = '') => {
|
|
26
|
+
if (!key || !key.lookup) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const databasePath = (0, _config.getSetting)('databasePath', 'database/');
|
|
30
|
+
const indexPath = `${databasePath}__indexes/${path}/${key.lookup}`;
|
|
31
|
+
let index = [];
|
|
32
|
+
try {
|
|
33
|
+
index = JSON.parse(await readFile(indexPath, 'utf8'));
|
|
34
|
+
} catch (err) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
index = index.map(entry => entry.value == value ? {
|
|
38
|
+
value: entry.value,
|
|
39
|
+
record: entry.record.filter(record => record !== fileName)
|
|
40
|
+
} : entry).filter(entry => entry.record.length);
|
|
41
|
+
await writeFile(indexPath, JSON.stringify(index, null, 2));
|
|
42
|
+
return index;
|
|
43
|
+
};
|
|
44
|
+
exports.removeFromIndex = removeFromIndex;
|