json-fs-query 1.0.5 → 1.1.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.
- package/browser/jsonFsQuery.js +520 -363
- package/browser/jsonFsQuery.min.js +1 -1
- package/dist/data/introspect/create.js +46 -46
- package/dist/data/introspect/definitions/field.js +35 -35
- package/dist/data/introspect/definitions/key.js +52 -52
- package/dist/data/introspect/definitions/keyReference.js +19 -19
- package/dist/data/introspect/definitions/record.js +31 -31
- package/dist/data/introspect/describe.js +14 -14
- package/dist/data/introspect/drop.js +36 -36
- package/dist/data/introspect/index.js +29 -29
- package/dist/data/introspect/policies/foreignKeyExists.js +5 -1
- package/dist/data/introspect/policies/foreignKeyExists.min.js +1 -1
- package/dist/data/introspect/policies/hasDependents.js +3 -1
- package/dist/data/introspect/policies/hasDependents.min.js +1 -1
- package/dist/data/introspect/policies/keyGenerate.js +16 -16
- package/dist/data/introspect/policies/keyUnique.js +5 -1
- package/dist/data/introspect/policies/keyUnique.min.js +1 -1
- package/dist/data/introspect/policies/typeCheck.js +56 -56
- package/dist/data/introspect/policies/typeEnum.js +13 -13
- package/dist/data/introspect/policies/useDefault.js +12 -12
- package/dist/data/queries/deleteEntity.js +2 -1
- package/dist/data/queries/deleteEntity.min.js +1 -1
- package/dist/data/queries/groupBy.js +21 -21
- package/dist/data/queries/insertEntity.js +2 -1
- package/dist/data/queries/insertEntity.min.js +1 -1
- package/dist/data/queries/joinEntity.js +31 -31
- package/dist/data/queries/limitOffset.js +20 -20
- package/dist/data/queries/mergeJoins.js +18 -18
- package/dist/data/queries/parser.js +29 -29
- package/dist/data/queries/query.js +17 -17
- package/dist/data/queries/readEntity.js +13 -13
- package/dist/data/queries/selectFields.js +35 -35
- package/dist/data/queries/sortBy.js +3 -0
- package/dist/data/queries/updateEntity.js +14 -10
- package/dist/data/queries/updateEntity.min.js +1 -1
- package/dist/data/queries/where.d.ts +7 -6
- package/dist/data/queries/where.js +18 -6
- package/dist/data/queries/where.min.js +1 -1
- package/dist/data/utilities/compareAs.d.ts +20 -0
- package/dist/data/utilities/compareAs.js +58 -0
- package/dist/data/utilities/compareAs.min.js +1 -0
- package/dist/data/utilities/computeKeyValue.js +25 -25
- package/dist/data/utilities/config.js +44 -44
- package/dist/data/utilities/deregisterRecord.js +33 -33
- package/dist/data/utilities/fieldType.d.ts +16 -0
- package/dist/data/utilities/fieldType.js +23 -0
- package/dist/data/utilities/fieldType.min.js +1 -0
- package/dist/data/utilities/getConditionIndexedList.js +2 -1
- package/dist/data/utilities/getConditionIndexedList.min.js +1 -1
- package/dist/data/utilities/getJoinIndexedList.js +75 -75
- package/dist/data/utilities/getMatchingIndexes.js +27 -27
- package/dist/data/utilities/matchIndexedJoins.js +3 -1
- package/dist/data/utilities/matchIndexedJoins.min.js +1 -1
- package/dist/data/utilities/mergeJoin.js +5 -1
- package/dist/data/utilities/mergeJoin.min.js +1 -1
- package/dist/data/utilities/parsers/findCommand.js +24 -24
- package/dist/data/utilities/parsers/findConditions.d.ts +15 -14
- package/dist/data/utilities/parsers/findConditions.js +27 -27
- package/dist/data/utilities/parsers/findGroupBy.js +21 -21
- package/dist/data/utilities/parsers/findInsertValues.js +33 -33
- package/dist/data/utilities/parsers/findJoinClauses.js +26 -26
- package/dist/data/utilities/parsers/findJoinEntity.js +21 -21
- package/dist/data/utilities/parsers/findLimit.js +21 -21
- package/dist/data/utilities/parsers/findMergeJoins.js +25 -25
- package/dist/data/utilities/parsers/findOffset.js +21 -21
- package/dist/data/utilities/parsers/findSelects.js +29 -29
- package/dist/data/utilities/parsers/findSortClauses.js +29 -29
- package/dist/data/utilities/parsers/findUpdateValues.js +33 -33
- package/dist/data/utilities/parsers/isEntityProperty.js +7 -7
- package/dist/data/utilities/parsers/parseLiteralValue.js +33 -33
- package/dist/data/utilities/parsers/parseQuery.js +50 -50
- package/dist/data/utilities/parsers/removeFromQuery.js +7 -7
- package/dist/data/utilities/parsers/splitEntityProperty.js +22 -22
- package/dist/data/utilities/parsers/splitQueries.js +10 -10
- package/dist/data/utilities/reconcileJoin.js +25 -25
- package/dist/data/utilities/reconcileJoins.js +25 -25
- package/dist/data/utilities/registerRecord.js +66 -66
- package/dist/data/utilities/removeFromIndex.d.ts +14 -13
- package/dist/data/utilities/removeFromIndex.js +4 -2
- package/dist/data/utilities/removeFromIndex.min.js +1 -1
- package/dist/data/utilities/restrictIndexedList.js +44 -44
- package/dist/data/utilities/retrieveFile.js +27 -27
- package/dist/data/utilities/retrieveIndexes.js +23 -23
- package/dist/data/utilities/retrieveRecord.js +8 -8
- package/dist/data/utilities/retrieveRecords.js +20 -20
- package/dist/data/utilities/runQuery.js +26 -0
- package/dist/data/utilities/runQuery.min.js +1 -1
- package/dist/data/utilities/updateIndex.d.ts +17 -16
- package/dist/data/utilities/updateIndex.js +4 -2
- package/dist/data/utilities/updateIndex.min.js +1 -1
- package/dist/data/utilities/useJoinClause.js +8 -2
- package/dist/data/utilities/useJoinClause.min.js +1 -1
- package/dist/index.js +41 -41
- package/package.json +14 -5
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.create = void 0;
|
|
7
|
-
require("core-js/modules/es.json.stringify.js");
|
|
8
|
-
var _record = require("./definitions/record");
|
|
9
|
-
var _registerRecord = require("../utilities/registerRecord");
|
|
10
|
-
var _config = require("../utilities/config");
|
|
11
|
-
/**
|
|
12
|
-
* Create a new record.
|
|
13
|
-
* @param recordName
|
|
14
|
-
* @param definition
|
|
15
|
-
* @param keys
|
|
16
|
-
*/
|
|
17
|
-
const create = async (recordName, definition = [], keys = []) => {
|
|
18
|
-
const {
|
|
19
|
-
writeFile,
|
|
20
|
-
mkdir
|
|
21
|
-
} = require('fs/promises');
|
|
22
|
-
const {
|
|
23
|
-
existsSync
|
|
24
|
-
} = require('fs');
|
|
25
|
-
const databasePath = (0, _config.getSetting)('databasePath', 'database/');
|
|
26
|
-
if (recordName === '__RECORDS') {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
if (existsSync(`${databasePath}${recordName}.json`)) {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
await mkdir(databasePath, {
|
|
33
|
-
recursive: true
|
|
34
|
-
});
|
|
35
|
-
const recordContent = (0, _record.record)({
|
|
36
|
-
path: recordName,
|
|
37
|
-
definition,
|
|
38
|
-
keys
|
|
39
|
-
});
|
|
40
|
-
await writeFile(`${databasePath}${recordName}.json`, JSON.stringify(recordContent, null, 2));
|
|
41
|
-
await mkdir(`${databasePath}${recordName}`, {
|
|
42
|
-
recursive: true
|
|
43
|
-
});
|
|
44
|
-
await (0, _registerRecord.registerRecord)(recordName);
|
|
45
|
-
return recordContent;
|
|
46
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.create = void 0;
|
|
7
|
+
require("core-js/modules/es.json.stringify.js");
|
|
8
|
+
var _record = require("./definitions/record");
|
|
9
|
+
var _registerRecord = require("../utilities/registerRecord");
|
|
10
|
+
var _config = require("../utilities/config");
|
|
11
|
+
/**
|
|
12
|
+
* Create a new record.
|
|
13
|
+
* @param recordName
|
|
14
|
+
* @param definition
|
|
15
|
+
* @param keys
|
|
16
|
+
*/
|
|
17
|
+
const create = async (recordName, definition = [], keys = []) => {
|
|
18
|
+
const {
|
|
19
|
+
writeFile,
|
|
20
|
+
mkdir
|
|
21
|
+
} = require('fs/promises');
|
|
22
|
+
const {
|
|
23
|
+
existsSync
|
|
24
|
+
} = require('fs');
|
|
25
|
+
const databasePath = (0, _config.getSetting)('databasePath', 'database/');
|
|
26
|
+
if (recordName === '__RECORDS') {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
if (existsSync(`${databasePath}${recordName}.json`)) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
await mkdir(databasePath, {
|
|
33
|
+
recursive: true
|
|
34
|
+
});
|
|
35
|
+
const recordContent = (0, _record.record)({
|
|
36
|
+
path: recordName,
|
|
37
|
+
definition,
|
|
38
|
+
keys
|
|
39
|
+
});
|
|
40
|
+
await writeFile(`${databasePath}${recordName}.json`, JSON.stringify(recordContent, null, 2));
|
|
41
|
+
await mkdir(`${databasePath}${recordName}`, {
|
|
42
|
+
recursive: true
|
|
43
|
+
});
|
|
44
|
+
await (0, _registerRecord.registerRecord)(recordName);
|
|
45
|
+
return recordContent;
|
|
46
|
+
};
|
|
47
47
|
exports.create = create;
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.field = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* Generate a field for a record.
|
|
9
|
-
* @param properties
|
|
10
|
-
* @param properties.name
|
|
11
|
-
* @param properties.type
|
|
12
|
-
* @param properties.optional
|
|
13
|
-
* @param properties.useDefault
|
|
14
|
-
* @param properties.defaultValue
|
|
15
|
-
* @param properties.autoGenerate
|
|
16
|
-
*/
|
|
17
|
-
const field = ({
|
|
18
|
-
name = '',
|
|
19
|
-
type = 'string',
|
|
20
|
-
optional = false,
|
|
21
|
-
useDefault = false,
|
|
22
|
-
defaultValue = '',
|
|
23
|
-
autoGenerate = false
|
|
24
|
-
} = {}) => {
|
|
25
|
-
const returnField = {
|
|
26
|
-
name,
|
|
27
|
-
type,
|
|
28
|
-
optional,
|
|
29
|
-
autoGenerate
|
|
30
|
-
};
|
|
31
|
-
if (useDefault) {
|
|
32
|
-
returnField['default'] = defaultValue;
|
|
33
|
-
}
|
|
34
|
-
return returnField;
|
|
35
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.field = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Generate a field for a record.
|
|
9
|
+
* @param properties
|
|
10
|
+
* @param properties.name
|
|
11
|
+
* @param properties.type
|
|
12
|
+
* @param properties.optional
|
|
13
|
+
* @param properties.useDefault
|
|
14
|
+
* @param properties.defaultValue
|
|
15
|
+
* @param properties.autoGenerate
|
|
16
|
+
*/
|
|
17
|
+
const field = ({
|
|
18
|
+
name = '',
|
|
19
|
+
type = 'string',
|
|
20
|
+
optional = false,
|
|
21
|
+
useDefault = false,
|
|
22
|
+
defaultValue = '',
|
|
23
|
+
autoGenerate = false
|
|
24
|
+
} = {}) => {
|
|
25
|
+
const returnField = {
|
|
26
|
+
name,
|
|
27
|
+
type,
|
|
28
|
+
optional,
|
|
29
|
+
autoGenerate
|
|
30
|
+
};
|
|
31
|
+
if (useDefault) {
|
|
32
|
+
returnField['default'] = defaultValue;
|
|
33
|
+
}
|
|
34
|
+
return returnField;
|
|
35
|
+
};
|
|
36
36
|
exports.field = field;
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.key = void 0;
|
|
7
|
-
require("core-js/modules/esnext.iterator.constructor.js");
|
|
8
|
-
require("core-js/modules/esnext.iterator.map.js");
|
|
9
|
-
var _keyReference = require("./keyReference");
|
|
10
|
-
/**
|
|
11
|
-
* Create a field key.
|
|
12
|
-
* @param properties
|
|
13
|
-
* @param properties.type
|
|
14
|
-
* @param properties.fields
|
|
15
|
-
* @param properties.lookup
|
|
16
|
-
* @param properties.references
|
|
17
|
-
*/
|
|
18
|
-
const key = ({
|
|
19
|
-
type = 'index',
|
|
20
|
-
fields = [],
|
|
21
|
-
lookup = '',
|
|
22
|
-
references = []
|
|
23
|
-
} = {}) => {
|
|
24
|
-
switch (type) {
|
|
25
|
-
case 'primary':
|
|
26
|
-
case 'index':
|
|
27
|
-
case 'unique':
|
|
28
|
-
references = [];
|
|
29
|
-
break;
|
|
30
|
-
case 'multi':
|
|
31
|
-
if (fields.length < 2) {
|
|
32
|
-
throw new Error('Multi key indicated with less than two fields');
|
|
33
|
-
}
|
|
34
|
-
break;
|
|
35
|
-
case 'foreign':
|
|
36
|
-
if (references.length < 1) {
|
|
37
|
-
throw new Error('Foreign key must have one reference to an external record');
|
|
38
|
-
}
|
|
39
|
-
break;
|
|
40
|
-
default:
|
|
41
|
-
throw new Error('Unrecognized key type; must be index, primary, unique, multi, or foreign');
|
|
42
|
-
}
|
|
43
|
-
const keyDefinition = {
|
|
44
|
-
type,
|
|
45
|
-
fields,
|
|
46
|
-
lookup
|
|
47
|
-
};
|
|
48
|
-
if (typeof references !== 'undefined' && references.length > 0) {
|
|
49
|
-
keyDefinition['references'] = references.map(_keyReference.keyReference);
|
|
50
|
-
}
|
|
51
|
-
return keyDefinition;
|
|
52
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.key = void 0;
|
|
7
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
8
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
9
|
+
var _keyReference = require("./keyReference");
|
|
10
|
+
/**
|
|
11
|
+
* Create a field key.
|
|
12
|
+
* @param properties
|
|
13
|
+
* @param properties.type
|
|
14
|
+
* @param properties.fields
|
|
15
|
+
* @param properties.lookup
|
|
16
|
+
* @param properties.references
|
|
17
|
+
*/
|
|
18
|
+
const key = ({
|
|
19
|
+
type = 'index',
|
|
20
|
+
fields = [],
|
|
21
|
+
lookup = '',
|
|
22
|
+
references = []
|
|
23
|
+
} = {}) => {
|
|
24
|
+
switch (type) {
|
|
25
|
+
case 'primary':
|
|
26
|
+
case 'index':
|
|
27
|
+
case 'unique':
|
|
28
|
+
references = [];
|
|
29
|
+
break;
|
|
30
|
+
case 'multi':
|
|
31
|
+
if (fields.length < 2) {
|
|
32
|
+
throw new Error('Multi key indicated with less than two fields');
|
|
33
|
+
}
|
|
34
|
+
break;
|
|
35
|
+
case 'foreign':
|
|
36
|
+
if (references.length < 1) {
|
|
37
|
+
throw new Error('Foreign key must have one reference to an external record');
|
|
38
|
+
}
|
|
39
|
+
break;
|
|
40
|
+
default:
|
|
41
|
+
throw new Error('Unrecognized key type; must be index, primary, unique, multi, or foreign');
|
|
42
|
+
}
|
|
43
|
+
const keyDefinition = {
|
|
44
|
+
type,
|
|
45
|
+
fields,
|
|
46
|
+
lookup
|
|
47
|
+
};
|
|
48
|
+
if (typeof references !== 'undefined' && references.length > 0) {
|
|
49
|
+
keyDefinition['references'] = references.map(_keyReference.keyReference);
|
|
50
|
+
}
|
|
51
|
+
return keyDefinition;
|
|
52
|
+
};
|
|
53
53
|
exports.key = key;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.keyReference = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* Create a reference to a remote (foreign; existing on another record) key.
|
|
9
|
-
* @param properties
|
|
10
|
-
* @param properties.fields
|
|
11
|
-
* @param properties.lookup
|
|
12
|
-
*/
|
|
13
|
-
const keyReference = ({
|
|
14
|
-
fields = [],
|
|
15
|
-
lookup = ''
|
|
16
|
-
} = {}) => ({
|
|
17
|
-
fields,
|
|
18
|
-
lookup
|
|
19
|
-
});
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.keyReference = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Create a reference to a remote (foreign; existing on another record) key.
|
|
9
|
+
* @param properties
|
|
10
|
+
* @param properties.fields
|
|
11
|
+
* @param properties.lookup
|
|
12
|
+
*/
|
|
13
|
+
const keyReference = ({
|
|
14
|
+
fields = [],
|
|
15
|
+
lookup = ''
|
|
16
|
+
} = {}) => ({
|
|
17
|
+
fields,
|
|
18
|
+
lookup
|
|
19
|
+
});
|
|
20
20
|
exports.keyReference = keyReference;
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.record = void 0;
|
|
7
|
-
require("core-js/modules/esnext.iterator.constructor.js");
|
|
8
|
-
require("core-js/modules/esnext.iterator.map.js");
|
|
9
|
-
var _field = require("./field");
|
|
10
|
-
var _key = require("./key");
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* @param properties
|
|
14
|
-
* @param properties.path
|
|
15
|
-
* @param properties.definition
|
|
16
|
-
* @param properties.keys
|
|
17
|
-
* @param properties.entries
|
|
18
|
-
*/
|
|
19
|
-
const record = ({
|
|
20
|
-
path = '',
|
|
21
|
-
definition = [],
|
|
22
|
-
keys = [],
|
|
23
|
-
entries = []
|
|
24
|
-
} = {}) => {
|
|
25
|
-
return {
|
|
26
|
-
path,
|
|
27
|
-
definition: definition.map(_field.field),
|
|
28
|
-
keys: keys.map(_key.key),
|
|
29
|
-
entries
|
|
30
|
-
};
|
|
31
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.record = void 0;
|
|
7
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
8
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
9
|
+
var _field = require("./field");
|
|
10
|
+
var _key = require("./key");
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param properties
|
|
14
|
+
* @param properties.path
|
|
15
|
+
* @param properties.definition
|
|
16
|
+
* @param properties.keys
|
|
17
|
+
* @param properties.entries
|
|
18
|
+
*/
|
|
19
|
+
const record = ({
|
|
20
|
+
path = '',
|
|
21
|
+
definition = [],
|
|
22
|
+
keys = [],
|
|
23
|
+
entries = []
|
|
24
|
+
} = {}) => {
|
|
25
|
+
return {
|
|
26
|
+
path,
|
|
27
|
+
definition: definition.map(_field.field),
|
|
28
|
+
keys: keys.map(_key.key),
|
|
29
|
+
entries
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
32
|
exports.record = record;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.describe = void 0;
|
|
7
|
-
var _retrieveFile = require("../utilities/retrieveFile");
|
|
8
|
-
const describe = async (record = '__RECORDS') => {
|
|
9
|
-
const recordFile = await (0, _retrieveFile.retrieveFile)(`${record}.json`);
|
|
10
|
-
if (record === '__RECORDS') {
|
|
11
|
-
return recordFile.entries;
|
|
12
|
-
}
|
|
13
|
-
return recordFile.definition;
|
|
14
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.describe = void 0;
|
|
7
|
+
var _retrieveFile = require("../utilities/retrieveFile");
|
|
8
|
+
const describe = async (record = '__RECORDS') => {
|
|
9
|
+
const recordFile = await (0, _retrieveFile.retrieveFile)(`${record}.json`);
|
|
10
|
+
if (record === '__RECORDS') {
|
|
11
|
+
return recordFile.entries;
|
|
12
|
+
}
|
|
13
|
+
return recordFile.definition;
|
|
14
|
+
};
|
|
15
15
|
exports.describe = describe;
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/esnext.async-iterator.constructor.js");
|
|
4
|
-
require("core-js/modules/esnext.async-iterator.drop.js");
|
|
5
|
-
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
-
require("core-js/modules/esnext.iterator.drop.js");
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.drop = void 0;
|
|
11
|
-
var _retrieveFile = require("../utilities/retrieveFile");
|
|
12
|
-
var _deregisterRecord = require("../utilities/deregisterRecord");
|
|
13
|
-
var _config = require("../utilities/config");
|
|
14
|
-
const {
|
|
15
|
-
rm
|
|
16
|
-
} = require('fs/promises');
|
|
17
|
-
const drop = async record => {
|
|
18
|
-
const databasePath = (0, _config.getSetting)('databasePath', 'database/');
|
|
19
|
-
if (record === '__RECORDS') {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
const recordFile = await (0, _retrieveFile.retrieveFile)(`${record}.json`);
|
|
23
|
-
for (const file of recordFile.entries) {
|
|
24
|
-
await rm(`${databasePath}${recordFile.path}/${file}`);
|
|
25
|
-
}
|
|
26
|
-
await rm(`${databasePath}${recordFile.path}`, {
|
|
27
|
-
recursive: true,
|
|
28
|
-
force: true
|
|
29
|
-
});
|
|
30
|
-
await rm(`${databasePath}__indexes/${recordFile.path}`, {
|
|
31
|
-
recursive: true,
|
|
32
|
-
force: true
|
|
33
|
-
});
|
|
34
|
-
await rm(`${databasePath}${record}.json`);
|
|
35
|
-
await (0, _deregisterRecord.deregisterRecord)(record);
|
|
36
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/esnext.async-iterator.constructor.js");
|
|
4
|
+
require("core-js/modules/esnext.async-iterator.drop.js");
|
|
5
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
+
require("core-js/modules/esnext.iterator.drop.js");
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.drop = void 0;
|
|
11
|
+
var _retrieveFile = require("../utilities/retrieveFile");
|
|
12
|
+
var _deregisterRecord = require("../utilities/deregisterRecord");
|
|
13
|
+
var _config = require("../utilities/config");
|
|
14
|
+
const {
|
|
15
|
+
rm
|
|
16
|
+
} = require('fs/promises');
|
|
17
|
+
const drop = async record => {
|
|
18
|
+
const databasePath = (0, _config.getSetting)('databasePath', 'database/');
|
|
19
|
+
if (record === '__RECORDS') {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const recordFile = await (0, _retrieveFile.retrieveFile)(`${record}.json`);
|
|
23
|
+
for (const file of recordFile.entries) {
|
|
24
|
+
await rm(`${databasePath}${recordFile.path}/${file}`);
|
|
25
|
+
}
|
|
26
|
+
await rm(`${databasePath}${recordFile.path}`, {
|
|
27
|
+
recursive: true,
|
|
28
|
+
force: true
|
|
29
|
+
});
|
|
30
|
+
await rm(`${databasePath}__indexes/${recordFile.path}`, {
|
|
31
|
+
recursive: true,
|
|
32
|
+
force: true
|
|
33
|
+
});
|
|
34
|
+
await rm(`${databasePath}${record}.json`);
|
|
35
|
+
await (0, _deregisterRecord.deregisterRecord)(record);
|
|
36
|
+
};
|
|
37
37
|
exports.drop = drop;
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/esnext.async-iterator.constructor.js");
|
|
4
|
-
require("core-js/modules/esnext.async-iterator.drop.js");
|
|
5
|
-
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
-
require("core-js/modules/esnext.iterator.drop.js");
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
Object.defineProperty(exports, "create", {
|
|
11
|
-
enumerable: true,
|
|
12
|
-
get: function () {
|
|
13
|
-
return _create.create;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
Object.defineProperty(exports, "describe", {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: function () {
|
|
19
|
-
return _describe.describe;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
Object.defineProperty(exports, "drop", {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
get: function () {
|
|
25
|
-
return _drop.drop;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
var _create = require("./create");
|
|
29
|
-
var _drop = require("./drop");
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/esnext.async-iterator.constructor.js");
|
|
4
|
+
require("core-js/modules/esnext.async-iterator.drop.js");
|
|
5
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
+
require("core-js/modules/esnext.iterator.drop.js");
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
Object.defineProperty(exports, "create", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _create.create;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "describe", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () {
|
|
19
|
+
return _describe.describe;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(exports, "drop", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function () {
|
|
25
|
+
return _drop.drop;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
var _create = require("./create");
|
|
29
|
+
var _drop = require("./drop");
|
|
30
30
|
var _describe = require("./describe");
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.foreignKeyExists = void 0;
|
|
7
7
|
var _retrieveRecords = require("../../utilities/retrieveRecords");
|
|
8
8
|
var _where = require("../../queries/where");
|
|
9
|
+
var _retrieveRecord = require("../../utilities/retrieveRecord");
|
|
10
|
+
var _fieldType = require("../../utilities/fieldType");
|
|
9
11
|
/**
|
|
10
12
|
* Check whether any record in the referenced entity has the given property set to the given
|
|
11
13
|
* value - the mirror image of keyUnique(), which checks that no record already has a value.
|
|
@@ -15,10 +17,12 @@ var _where = require("../../queries/where");
|
|
|
15
17
|
*/
|
|
16
18
|
const foreignKeyExists = async (entity, property, value) => {
|
|
17
19
|
const records = await (0, _retrieveRecords.retrieveRecords)(entity);
|
|
20
|
+
const type = (0, _fieldType.fieldType)(await (0, _retrieveRecord.retrieveRecord)(entity), property);
|
|
18
21
|
const found = (0, _where.where)(records, {
|
|
19
22
|
property,
|
|
20
23
|
comparator: '=',
|
|
21
|
-
value
|
|
24
|
+
value,
|
|
25
|
+
type
|
|
22
26
|
});
|
|
23
27
|
return found.length > 0;
|
|
24
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.foreignKeyExists=void 0;var _retrieveRecords=require("../../utilities/retrieveRecords"),_where=require("../../queries/where");const foreignKeyExists=async(e,r,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.foreignKeyExists=void 0;var _retrieveRecords=require("../../utilities/retrieveRecords"),_where=require("../../queries/where"),_retrieveRecord=require("../../utilities/retrieveRecord"),_fieldType=require("../../utilities/fieldType");const foreignKeyExists=async(e,r,i)=>{const t=await(0,_retrieveRecords.retrieveRecords)(e),s=(0,_fieldType.fieldType)(await(0,_retrieveRecord.retrieveRecord)(e),r);return(0,_where.where)(t,{property:r,comparator:"=",value:i,type:s}).length>0};exports.foreignKeyExists=foreignKeyExists;
|
|
@@ -8,6 +8,7 @@ var _describe = require("../describe");
|
|
|
8
8
|
var _retrieveRecord = require("../../utilities/retrieveRecord");
|
|
9
9
|
var _retrieveRecords = require("../../utilities/retrieveRecords");
|
|
10
10
|
var _where = require("../../queries/where");
|
|
11
|
+
var _fieldType = require("../../utilities/fieldType");
|
|
11
12
|
var _splitEntityProperty = require("../../utilities/parsers/splitEntityProperty");
|
|
12
13
|
/**
|
|
13
14
|
* Check whether any other record, in any entity, still has a single-field foreign key pointing
|
|
@@ -40,7 +41,8 @@ const hasDependents = async (entity, property, value) => {
|
|
|
40
41
|
const found = (0, _where.where)(records, {
|
|
41
42
|
property: key.fields[0],
|
|
42
43
|
comparator: '=',
|
|
43
|
-
value
|
|
44
|
+
value,
|
|
45
|
+
type: (0, _fieldType.fieldType)(otherRecord, key.fields[0])
|
|
44
46
|
});
|
|
45
47
|
if (found.length) {
|
|
46
48
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.hasDependents=void 0;var _describe=require("../describe"),_retrieveRecord=require("../../utilities/retrieveRecord"),_retrieveRecords=require("../../utilities/retrieveRecords"),_where=require("../../queries/where"),_splitEntityProperty=require("../../utilities/parsers/splitEntityProperty");const hasDependents=async(e,r,t)=>{const i=await(0,_describe.describe)();for(const s of i){const i=s.replace(/\.json$/,""),o=await(0,_retrieveRecord.retrieveRecord)(i);for(const s of o.keys){if("foreign"!==s.type||1!==s.fields.length||!s.references||1!==s.references.length)continue;const{entity:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.hasDependents=void 0;var _describe=require("../describe"),_retrieveRecord=require("../../utilities/retrieveRecord"),_retrieveRecords=require("../../utilities/retrieveRecords"),_where=require("../../queries/where"),_fieldType=require("../../utilities/fieldType"),_splitEntityProperty=require("../../utilities/parsers/splitEntityProperty");const hasDependents=async(e,r,t)=>{const i=await(0,_describe.describe)();for(const s of i){const i=s.replace(/\.json$/,""),o=await(0,_retrieveRecord.retrieveRecord)(i);for(const s of o.keys){if("foreign"!==s.type||1!==s.fields.length||!s.references||1!==s.references.length)continue;const{entity:n,property:c}=(0,_splitEntityProperty.splitEntityProperty)(s.references[0].fields[0]);if(n!==e||c!==r)continue;const p=await(0,_retrieveRecords.retrieveRecords)(i);if((0,_where.where)(p,{property:s.fields[0],comparator:"=",value:t,type:(0,_fieldType.fieldType)(o,s.fields[0])}).length)return!0}}return!1};exports.hasDependents=hasDependents;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.keyGenerate = void 0;
|
|
7
|
-
var _keyUnique = require("./keyUnique");
|
|
8
|
-
const keyGenerate = async (entity, references = []) => {
|
|
9
|
-
let uuid = null;
|
|
10
|
-
let isUnique = false;
|
|
11
|
-
while (!isUnique) {
|
|
12
|
-
uuid = crypto.randomUUID();
|
|
13
|
-
isUnique = await (0, _keyUnique.keyUnique)(entity, references, [uuid]);
|
|
14
|
-
}
|
|
15
|
-
return uuid;
|
|
16
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.keyGenerate = void 0;
|
|
7
|
+
var _keyUnique = require("./keyUnique");
|
|
8
|
+
const keyGenerate = async (entity, references = []) => {
|
|
9
|
+
let uuid = null;
|
|
10
|
+
let isUnique = false;
|
|
11
|
+
while (!isUnique) {
|
|
12
|
+
uuid = crypto.randomUUID();
|
|
13
|
+
isUnique = await (0, _keyUnique.keyUnique)(entity, references, [uuid]);
|
|
14
|
+
}
|
|
15
|
+
return uuid;
|
|
16
|
+
};
|
|
17
17
|
exports.keyGenerate = keyGenerate;
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.keyUnique = void 0;
|
|
7
7
|
var _retrieveRecords = require("../../utilities/retrieveRecords");
|
|
8
8
|
var _where = require("../../queries/where");
|
|
9
|
+
var _retrieveRecord = require("../../utilities/retrieveRecord");
|
|
10
|
+
var _fieldType = require("../../utilities/fieldType");
|
|
9
11
|
/**
|
|
10
12
|
* Check that no existing record already has this combination of values across all of the given
|
|
11
13
|
* fields - a single field for a normal unique/primary key, or several for a composite one.
|
|
@@ -19,11 +21,13 @@ const keyUnique = async (entity, references = [], checkKeys = []) => {
|
|
|
19
21
|
return false;
|
|
20
22
|
}
|
|
21
23
|
let records = await (0, _retrieveRecords.retrieveRecords)(entity);
|
|
24
|
+
const record = await (0, _retrieveRecord.retrieveRecord)(entity);
|
|
22
25
|
for (let i = 0; i < references.length; i++) {
|
|
23
26
|
records = (0, _where.where)(records, {
|
|
24
27
|
property: references[i],
|
|
25
28
|
comparator: '=',
|
|
26
|
-
value: checkKeys[i]
|
|
29
|
+
value: checkKeys[i],
|
|
30
|
+
type: (0, _fieldType.fieldType)(record, references[i])
|
|
27
31
|
});
|
|
28
32
|
}
|
|
29
33
|
return !records.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.keyUnique=void 0;var _retrieveRecords=require("../../utilities/retrieveRecords"),_where=require("../../queries/where");const keyUnique=async(e,r=[],t=[])=>{if(!r.length||r.length!==t.length)return!1;let i=await(0,_retrieveRecords.retrieveRecords)(e);for(let e=0;e<r.length;e++)i=(0,_where.where)(i,{property:r[e],comparator:"=",value:t[e]});return!i.length};exports.keyUnique=keyUnique;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.keyUnique=void 0;var _retrieveRecords=require("../../utilities/retrieveRecords"),_where=require("../../queries/where"),_retrieveRecord=require("../../utilities/retrieveRecord"),_fieldType=require("../../utilities/fieldType");const keyUnique=async(e,r=[],t=[])=>{if(!r.length||r.length!==t.length)return!1;let i=await(0,_retrieveRecords.retrieveRecords)(e);const o=await(0,_retrieveRecord.retrieveRecord)(e);for(let e=0;e<r.length;e++)i=(0,_where.where)(i,{property:r[e],comparator:"=",value:t[e],type:(0,_fieldType.fieldType)(o,r[e])});return!i.length};exports.keyUnique=keyUnique;
|