json10 13.1.36 → 13.1.37
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/app.js +3 -3
- package/browser/README.md +24 -24
- package/browser/esm2020/json10.mjs +4 -4
- package/browser/esm2020/lib/index.mjs +53 -53
- package/browser/esm2020/public-api.mjs +1 -1
- package/browser/fesm2015/json10.mjs +51 -51
- package/browser/fesm2020/json10.mjs +51 -51
- package/browser/json10.d.ts +4 -4
- package/browser/lib/index.d.ts +14 -14
- package/client/README.md +24 -24
- package/client/esm2020/json10.mjs +4 -4
- package/client/esm2020/lib/index.mjs +53 -53
- package/client/esm2020/public-api.mjs +1 -1
- package/client/fesm2015/json10.mjs +51 -51
- package/client/fesm2020/json10.mjs +51 -51
- package/client/json10.d.ts +4 -4
- package/client/lib/index.d.ts +14 -14
- package/index.d.ts +1 -1
- package/lib/index.d.ts +15 -15
- package/package.json +3 -3
- package/package.json_devDependencies.json +224 -224
- package/package.json_tnp.json5 +51 -51
- package/tmp-environment.json +35 -38
- package/websql/README.md +24 -24
- package/websql/esm2020/json10.mjs +4 -4
- package/websql/esm2020/lib/index.mjs +53 -53
- package/websql/esm2020/public-api.mjs +1 -1
- package/websql/fesm2015/json10.mjs +51 -51
- package/websql/fesm2020/json10.mjs +51 -51
- package/websql/json10.d.ts +4 -4
- package/websql/lib/index.d.ts +14 -14
package/app.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
5
|
-
exports.
|
|
3
|
+
exports.dummy1682221190397 = void 0;
|
|
4
|
+
function dummy1682221190397() { }
|
|
5
|
+
exports.dummy1682221190397 = dummy1682221190397;
|
|
6
6
|
//# sourceMappingURL=app.js.map
|
package/browser/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# MyLib
|
|
2
|
-
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
-
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
-
|
|
10
|
-
## Build
|
|
11
|
-
|
|
12
|
-
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
-
|
|
14
|
-
## Publishing
|
|
15
|
-
|
|
16
|
-
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
-
|
|
18
|
-
## Running unit tests
|
|
19
|
-
|
|
20
|
-
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
-
|
|
22
|
-
## Further help
|
|
23
|
-
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
1
|
+
# MyLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbjEwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS9qc29uMTAvcHJvamVjdHMvanNvbjEwL3NyYy9qc29uMTAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import { _ } from 'tnp-core/browser';
|
|
2
|
-
import { walk } from 'lodash-walk-object/browser';
|
|
3
|
-
import { CLASS } from 'typescript-class-helpers/browser';
|
|
4
|
-
export class JSON10 {
|
|
5
|
-
static structureArray(anyJSON, options) {
|
|
6
|
-
let pathes = [];
|
|
7
|
-
const { include, exclude } = options || {};
|
|
8
|
-
walk.Object(anyJSON, (value, lodashPath) => {
|
|
9
|
-
if (!_.isUndefined(value)) {
|
|
10
|
-
pathes.push(lodashPath);
|
|
11
|
-
}
|
|
12
|
-
}, { include, exclude, checkCircural: true });
|
|
13
|
-
return pathes;
|
|
14
|
-
}
|
|
15
|
-
static cleaned(json, onCircs, options) {
|
|
16
|
-
const result = _.isArray(json) ? [] : {};
|
|
17
|
-
const classFN = CLASS.OBJECT(json).isClassObject && CLASS.getFromObject(json);
|
|
18
|
-
const { exclude, include, breadthWalk } = options || { exclude: [], include: [], breadthWalk: false };
|
|
19
|
-
const { circs } = walk.Object(json, (value, lodashPath, changeValueTo, options) => {
|
|
20
|
-
if (_.isObject(value) && options.isCircural) {
|
|
21
|
-
_.set(result, lodashPath, null);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
_.set(result, lodashPath, _.cloneDeep(value));
|
|
25
|
-
}
|
|
26
|
-
}, { include, exclude, breadthWalk, checkCircural: true });
|
|
27
|
-
if (_.isFunction(onCircs)) {
|
|
28
|
-
onCircs(circs);
|
|
29
|
-
}
|
|
30
|
-
return _.isFunction(classFN) ? _.merge(new classFN(), result) : result;
|
|
31
|
-
}
|
|
32
|
-
static stringify(anyJSON, replace, spaces, onCircs) {
|
|
33
|
-
const json = this.cleaned(anyJSON, onCircs);
|
|
34
|
-
return JSON.stringify(json, replace, spaces);
|
|
35
|
-
}
|
|
36
|
-
static parse(json, circs = []) {
|
|
37
|
-
let res = JSON.parse(json);
|
|
38
|
-
if (_.isArray(circs)) {
|
|
39
|
-
circs.forEach(({ circuralTargetPath, pathToObj }) => {
|
|
40
|
-
if (circuralTargetPath === '') {
|
|
41
|
-
_.set(res, pathToObj, res);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
let v = _.get(res, circuralTargetPath);
|
|
45
|
-
_.set(res, pathToObj, v);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
return res;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
;
|
|
53
|
-
({}); // @--end-of-file-for-module=json10 lib/index.ts
|
|
1
|
+
import { _ } from 'tnp-core/browser';
|
|
2
|
+
import { walk } from 'lodash-walk-object/browser';
|
|
3
|
+
import { CLASS } from 'typescript-class-helpers/browser';
|
|
4
|
+
export class JSON10 {
|
|
5
|
+
static structureArray(anyJSON, options) {
|
|
6
|
+
let pathes = [];
|
|
7
|
+
const { include, exclude } = options || {};
|
|
8
|
+
walk.Object(anyJSON, (value, lodashPath) => {
|
|
9
|
+
if (!_.isUndefined(value)) {
|
|
10
|
+
pathes.push(lodashPath);
|
|
11
|
+
}
|
|
12
|
+
}, { include, exclude, checkCircural: true });
|
|
13
|
+
return pathes;
|
|
14
|
+
}
|
|
15
|
+
static cleaned(json, onCircs, options) {
|
|
16
|
+
const result = _.isArray(json) ? [] : {};
|
|
17
|
+
const classFN = CLASS.OBJECT(json).isClassObject && CLASS.getFromObject(json);
|
|
18
|
+
const { exclude, include, breadthWalk } = options || { exclude: [], include: [], breadthWalk: false };
|
|
19
|
+
const { circs } = walk.Object(json, (value, lodashPath, changeValueTo, options) => {
|
|
20
|
+
if (_.isObject(value) && options.isCircural) {
|
|
21
|
+
_.set(result, lodashPath, null);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
_.set(result, lodashPath, _.cloneDeep(value));
|
|
25
|
+
}
|
|
26
|
+
}, { include, exclude, breadthWalk, checkCircural: true });
|
|
27
|
+
if (_.isFunction(onCircs)) {
|
|
28
|
+
onCircs(circs);
|
|
29
|
+
}
|
|
30
|
+
return _.isFunction(classFN) ? _.merge(new classFN(), result) : result;
|
|
31
|
+
}
|
|
32
|
+
static stringify(anyJSON, replace, spaces, onCircs) {
|
|
33
|
+
const json = this.cleaned(anyJSON, onCircs);
|
|
34
|
+
return JSON.stringify(json, replace, spaces);
|
|
35
|
+
}
|
|
36
|
+
static parse(json, circs = []) {
|
|
37
|
+
let res = JSON.parse(json);
|
|
38
|
+
if (_.isArray(circs)) {
|
|
39
|
+
circs.forEach(({ circuralTargetPath, pathToObj }) => {
|
|
40
|
+
if (circuralTargetPath === '') {
|
|
41
|
+
_.set(res, pathToObj, res);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
let v = _.get(res, circuralTargetPath);
|
|
45
|
+
_.set(res, pathToObj, v);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return res;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
;
|
|
53
|
+
({}); // @--end-of-file-for-module=json10 lib/index.ts
|
|
54
54
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL2pzb24xMC9wcm9qZWN0cy9qc29uMTAvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBVSxNQUFNLDRCQUE0QixDQUFDO0FBRTFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQU16RCxNQUFNLE9BQU8sTUFBTTtJQUVWLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZSxFQUFFLE9BQW9EO1FBQ2hHLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUNmLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQVMsQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRTtZQUV6QyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTthQUN4QjtRQUVILENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDN0MsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUdNLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQWdDLEVBQUUsT0FLM0Q7UUFFRCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUN4QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFFdEcsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFFaEYsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQzNDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQTthQUNoQztpQkFBTTtnQkFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO2FBQzlDO1FBRUgsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUNmO1FBRUQsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUssT0FBZSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsRixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFlLEVBQUUsT0FBYSxFQUFFLE1BQWUsRUFBRSxPQUFnQztRQUN2RyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRTtRQUNsRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO2dCQUVsRCxJQUFJLGtCQUFrQixLQUFLLEVBQUUsRUFBRTtvQkFDN0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFBO2lCQUMzQjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO29CQUN2QyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUE7aUJBQ3pCO1lBRUgsQ0FBQyxDQUFDLENBQUE7U0FDSDtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnREFBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyB3YWxrLCBNb2RlbHMgfSBmcm9tICdsb2Rhc2gtd2Fsay1vYmplY3QvYnJvd3Nlcic7XG5leHBvcnQgdHlwZSBDaXJjID0gTW9kZWxzLkNpcmM7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcblxuXG5cblxuXG5leHBvcnQgY2xhc3MgSlNPTjEwIHtcblxuICBwdWJsaWMgc3RhdGljIHN0cnVjdHVyZUFycmF5KGFueUpTT046IE9iamVjdCwgb3B0aW9ucz86IHsgaW5jbHVkZT86IHN0cmluZ1tdOyBleGNsdWRlPzogc3RyaW5nW10gfSkge1xuICAgIGxldCBwYXRoZXMgPSBbXVxuICAgIGNvbnN0IHsgaW5jbHVkZSwgZXhjbHVkZSB9ID0gb3B0aW9ucyB8fCB7fSBhcyBhbnk7XG4gICAgd2Fsay5PYmplY3QoYW55SlNPTiwgKHZhbHVlLCBsb2Rhc2hQYXRoKSA9PiB7XG5cbiAgICAgIGlmICghXy5pc1VuZGVmaW5lZCh2YWx1ZSkpIHtcbiAgICAgICAgcGF0aGVzLnB1c2gobG9kYXNoUGF0aClcbiAgICAgIH1cblxuICAgIH0sIHsgaW5jbHVkZSwgZXhjbHVkZSwgY2hlY2tDaXJjdXJhbDogdHJ1ZSB9KVxuICAgIHJldHVybiBwYXRoZXM7XG4gIH1cblxuXG4gIHB1YmxpYyBzdGF0aWMgY2xlYW5lZChqc29uLCBvbkNpcmNzPzogKGNpcmNzOiBDaXJjW10pID0+IGFueSwgb3B0aW9ucz86XG4gICAge1xuICAgICAgZXhjbHVkZT86IHN0cmluZ1tdO1xuICAgICAgaW5jbHVkZT86IHN0cmluZ1tdO1xuICAgICAgYnJlYWR0aFdhbGs/OiBib29sZWFuO1xuICAgIH0pIHtcblxuICAgIGNvbnN0IHJlc3VsdCA9IF8uaXNBcnJheShqc29uKSA/IFtdIDoge31cbiAgICBjb25zdCBjbGFzc0ZOID0gQ0xBU1MuT0JKRUNUKGpzb24pLmlzQ2xhc3NPYmplY3QgJiYgQ0xBU1MuZ2V0RnJvbU9iamVjdChqc29uKTtcblxuICAgIGNvbnN0IHsgZXhjbHVkZSwgaW5jbHVkZSwgYnJlYWR0aFdhbGsgfSA9IG9wdGlvbnMgfHwgeyBleGNsdWRlOiBbXSwgaW5jbHVkZTogW10sIGJyZWFkdGhXYWxrOiBmYWxzZSB9O1xuXG4gICAgY29uc3QgeyBjaXJjcyB9ID0gd2Fsay5PYmplY3QoanNvbiwgKHZhbHVlLCBsb2Rhc2hQYXRoLCBjaGFuZ2VWYWx1ZVRvLCBvcHRpb25zKSA9PiB7XG5cbiAgICAgIGlmIChfLmlzT2JqZWN0KHZhbHVlKSAmJiBvcHRpb25zLmlzQ2lyY3VyYWwpIHtcbiAgICAgICAgXy5zZXQocmVzdWx0LCBsb2Rhc2hQYXRoLCBudWxsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgXy5zZXQocmVzdWx0LCBsb2Rhc2hQYXRoLCBfLmNsb25lRGVlcCh2YWx1ZSkpXG4gICAgICB9XG5cbiAgICB9LCB7IGluY2x1ZGUsIGV4Y2x1ZGUsIGJyZWFkdGhXYWxrLCBjaGVja0NpcmN1cmFsOiB0cnVlIH0pO1xuXG4gICAgaWYgKF8uaXNGdW5jdGlvbihvbkNpcmNzKSkge1xuICAgICAgb25DaXJjcyhjaXJjcylcbiAgICB9XG5cbiAgICByZXR1cm4gXy5pc0Z1bmN0aW9uKGNsYXNzRk4pID8gXy5tZXJnZShuZXcgKGNsYXNzRk4gYXMgYW55KSgpLCByZXN1bHQpIDogcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdHJpbmdpZnkoYW55SlNPTjogT2JqZWN0LCByZXBsYWNlPzogYW55LCBzcGFjZXM/OiBudW1iZXIsIG9uQ2lyY3M/OiAoY2lyY3M6IENpcmNbXSkgPT4gYW55KSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuY2xlYW5lZChhbnlKU09OLCBvbkNpcmNzKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoanNvbiwgcmVwbGFjZSwgc3BhY2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2UoanNvbjogc3RyaW5nLCBjaXJjczogQ2lyY1tdID0gW10pIHtcbiAgICBsZXQgcmVzID0gSlNPTi5wYXJzZShqc29uKTtcbiAgICBpZiAoXy5pc0FycmF5KGNpcmNzKSkge1xuICAgICAgY2lyY3MuZm9yRWFjaCgoeyBjaXJjdXJhbFRhcmdldFBhdGgsIHBhdGhUb09iaiB9KSA9PiB7XG5cbiAgICAgICAgaWYgKGNpcmN1cmFsVGFyZ2V0UGF0aCA9PT0gJycpIHtcbiAgICAgICAgICBfLnNldChyZXMsIHBhdGhUb09iaiwgcmVzKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCB2ID0gXy5nZXQocmVzLCBjaXJjdXJhbFRhcmdldFBhdGgpO1xuICAgICAgICAgIF8uc2V0KHJlcywgcGF0aFRvT2JqLCB2KVxuICAgICAgICB9XG5cbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPWpzb24xMCBsaWIvaW5kZXgudHMiXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './lib';
|
|
1
|
+
export * from './lib';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvanNvbjEwL3Byb2plY3RzL2pzb24xMC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliJztcbiJdfQ==
|
|
@@ -2,59 +2,59 @@ import { _ } from 'tnp-core/browser';
|
|
|
2
2
|
import { walk } from 'lodash-walk-object/browser';
|
|
3
3
|
import { CLASS } from 'typescript-class-helpers/browser';
|
|
4
4
|
|
|
5
|
-
class JSON10 {
|
|
6
|
-
static structureArray(anyJSON, options) {
|
|
7
|
-
let pathes = [];
|
|
8
|
-
const { include, exclude } = options || {};
|
|
9
|
-
walk.Object(anyJSON, (value, lodashPath) => {
|
|
10
|
-
if (!_.isUndefined(value)) {
|
|
11
|
-
pathes.push(lodashPath);
|
|
12
|
-
}
|
|
13
|
-
}, { include, exclude, checkCircural: true });
|
|
14
|
-
return pathes;
|
|
15
|
-
}
|
|
16
|
-
static cleaned(json, onCircs, options) {
|
|
17
|
-
const result = _.isArray(json) ? [] : {};
|
|
18
|
-
const classFN = CLASS.OBJECT(json).isClassObject && CLASS.getFromObject(json);
|
|
19
|
-
const { exclude, include, breadthWalk } = options || { exclude: [], include: [], breadthWalk: false };
|
|
20
|
-
const { circs } = walk.Object(json, (value, lodashPath, changeValueTo, options) => {
|
|
21
|
-
if (_.isObject(value) && options.isCircural) {
|
|
22
|
-
_.set(result, lodashPath, null);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
_.set(result, lodashPath, _.cloneDeep(value));
|
|
26
|
-
}
|
|
27
|
-
}, { include, exclude, breadthWalk, checkCircural: true });
|
|
28
|
-
if (_.isFunction(onCircs)) {
|
|
29
|
-
onCircs(circs);
|
|
30
|
-
}
|
|
31
|
-
return _.isFunction(classFN) ? _.merge(new classFN(), result) : result;
|
|
32
|
-
}
|
|
33
|
-
static stringify(anyJSON, replace, spaces, onCircs) {
|
|
34
|
-
const json = this.cleaned(anyJSON, onCircs);
|
|
35
|
-
return JSON.stringify(json, replace, spaces);
|
|
36
|
-
}
|
|
37
|
-
static parse(json, circs = []) {
|
|
38
|
-
let res = JSON.parse(json);
|
|
39
|
-
if (_.isArray(circs)) {
|
|
40
|
-
circs.forEach(({ circuralTargetPath, pathToObj }) => {
|
|
41
|
-
if (circuralTargetPath === '') {
|
|
42
|
-
_.set(res, pathToObj, res);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
let v = _.get(res, circuralTargetPath);
|
|
46
|
-
_.set(res, pathToObj, v);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
return res;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
;
|
|
5
|
+
class JSON10 {
|
|
6
|
+
static structureArray(anyJSON, options) {
|
|
7
|
+
let pathes = [];
|
|
8
|
+
const { include, exclude } = options || {};
|
|
9
|
+
walk.Object(anyJSON, (value, lodashPath) => {
|
|
10
|
+
if (!_.isUndefined(value)) {
|
|
11
|
+
pathes.push(lodashPath);
|
|
12
|
+
}
|
|
13
|
+
}, { include, exclude, checkCircural: true });
|
|
14
|
+
return pathes;
|
|
15
|
+
}
|
|
16
|
+
static cleaned(json, onCircs, options) {
|
|
17
|
+
const result = _.isArray(json) ? [] : {};
|
|
18
|
+
const classFN = CLASS.OBJECT(json).isClassObject && CLASS.getFromObject(json);
|
|
19
|
+
const { exclude, include, breadthWalk } = options || { exclude: [], include: [], breadthWalk: false };
|
|
20
|
+
const { circs } = walk.Object(json, (value, lodashPath, changeValueTo, options) => {
|
|
21
|
+
if (_.isObject(value) && options.isCircural) {
|
|
22
|
+
_.set(result, lodashPath, null);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
_.set(result, lodashPath, _.cloneDeep(value));
|
|
26
|
+
}
|
|
27
|
+
}, { include, exclude, breadthWalk, checkCircural: true });
|
|
28
|
+
if (_.isFunction(onCircs)) {
|
|
29
|
+
onCircs(circs);
|
|
30
|
+
}
|
|
31
|
+
return _.isFunction(classFN) ? _.merge(new classFN(), result) : result;
|
|
32
|
+
}
|
|
33
|
+
static stringify(anyJSON, replace, spaces, onCircs) {
|
|
34
|
+
const json = this.cleaned(anyJSON, onCircs);
|
|
35
|
+
return JSON.stringify(json, replace, spaces);
|
|
36
|
+
}
|
|
37
|
+
static parse(json, circs = []) {
|
|
38
|
+
let res = JSON.parse(json);
|
|
39
|
+
if (_.isArray(circs)) {
|
|
40
|
+
circs.forEach(({ circuralTargetPath, pathToObj }) => {
|
|
41
|
+
if (circuralTargetPath === '') {
|
|
42
|
+
_.set(res, pathToObj, res);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
let v = _.get(res, circuralTargetPath);
|
|
46
|
+
_.set(res, pathToObj, v);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return res;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
;
|
|
54
54
|
({}); // @--end-of-file-for-module=json10 lib/index.ts
|
|
55
55
|
|
|
56
|
-
/**
|
|
57
|
-
* Generated bundle index. Do not edit.
|
|
56
|
+
/**
|
|
57
|
+
* Generated bundle index. Do not edit.
|
|
58
58
|
*/
|
|
59
59
|
|
|
60
60
|
export { JSON10 };
|
|
@@ -2,59 +2,59 @@ import { _ } from 'tnp-core/browser';
|
|
|
2
2
|
import { walk } from 'lodash-walk-object/browser';
|
|
3
3
|
import { CLASS } from 'typescript-class-helpers/browser';
|
|
4
4
|
|
|
5
|
-
class JSON10 {
|
|
6
|
-
static structureArray(anyJSON, options) {
|
|
7
|
-
let pathes = [];
|
|
8
|
-
const { include, exclude } = options || {};
|
|
9
|
-
walk.Object(anyJSON, (value, lodashPath) => {
|
|
10
|
-
if (!_.isUndefined(value)) {
|
|
11
|
-
pathes.push(lodashPath);
|
|
12
|
-
}
|
|
13
|
-
}, { include, exclude, checkCircural: true });
|
|
14
|
-
return pathes;
|
|
15
|
-
}
|
|
16
|
-
static cleaned(json, onCircs, options) {
|
|
17
|
-
const result = _.isArray(json) ? [] : {};
|
|
18
|
-
const classFN = CLASS.OBJECT(json).isClassObject && CLASS.getFromObject(json);
|
|
19
|
-
const { exclude, include, breadthWalk } = options || { exclude: [], include: [], breadthWalk: false };
|
|
20
|
-
const { circs } = walk.Object(json, (value, lodashPath, changeValueTo, options) => {
|
|
21
|
-
if (_.isObject(value) && options.isCircural) {
|
|
22
|
-
_.set(result, lodashPath, null);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
_.set(result, lodashPath, _.cloneDeep(value));
|
|
26
|
-
}
|
|
27
|
-
}, { include, exclude, breadthWalk, checkCircural: true });
|
|
28
|
-
if (_.isFunction(onCircs)) {
|
|
29
|
-
onCircs(circs);
|
|
30
|
-
}
|
|
31
|
-
return _.isFunction(classFN) ? _.merge(new classFN(), result) : result;
|
|
32
|
-
}
|
|
33
|
-
static stringify(anyJSON, replace, spaces, onCircs) {
|
|
34
|
-
const json = this.cleaned(anyJSON, onCircs);
|
|
35
|
-
return JSON.stringify(json, replace, spaces);
|
|
36
|
-
}
|
|
37
|
-
static parse(json, circs = []) {
|
|
38
|
-
let res = JSON.parse(json);
|
|
39
|
-
if (_.isArray(circs)) {
|
|
40
|
-
circs.forEach(({ circuralTargetPath, pathToObj }) => {
|
|
41
|
-
if (circuralTargetPath === '') {
|
|
42
|
-
_.set(res, pathToObj, res);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
let v = _.get(res, circuralTargetPath);
|
|
46
|
-
_.set(res, pathToObj, v);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
return res;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
;
|
|
5
|
+
class JSON10 {
|
|
6
|
+
static structureArray(anyJSON, options) {
|
|
7
|
+
let pathes = [];
|
|
8
|
+
const { include, exclude } = options || {};
|
|
9
|
+
walk.Object(anyJSON, (value, lodashPath) => {
|
|
10
|
+
if (!_.isUndefined(value)) {
|
|
11
|
+
pathes.push(lodashPath);
|
|
12
|
+
}
|
|
13
|
+
}, { include, exclude, checkCircural: true });
|
|
14
|
+
return pathes;
|
|
15
|
+
}
|
|
16
|
+
static cleaned(json, onCircs, options) {
|
|
17
|
+
const result = _.isArray(json) ? [] : {};
|
|
18
|
+
const classFN = CLASS.OBJECT(json).isClassObject && CLASS.getFromObject(json);
|
|
19
|
+
const { exclude, include, breadthWalk } = options || { exclude: [], include: [], breadthWalk: false };
|
|
20
|
+
const { circs } = walk.Object(json, (value, lodashPath, changeValueTo, options) => {
|
|
21
|
+
if (_.isObject(value) && options.isCircural) {
|
|
22
|
+
_.set(result, lodashPath, null);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
_.set(result, lodashPath, _.cloneDeep(value));
|
|
26
|
+
}
|
|
27
|
+
}, { include, exclude, breadthWalk, checkCircural: true });
|
|
28
|
+
if (_.isFunction(onCircs)) {
|
|
29
|
+
onCircs(circs);
|
|
30
|
+
}
|
|
31
|
+
return _.isFunction(classFN) ? _.merge(new classFN(), result) : result;
|
|
32
|
+
}
|
|
33
|
+
static stringify(anyJSON, replace, spaces, onCircs) {
|
|
34
|
+
const json = this.cleaned(anyJSON, onCircs);
|
|
35
|
+
return JSON.stringify(json, replace, spaces);
|
|
36
|
+
}
|
|
37
|
+
static parse(json, circs = []) {
|
|
38
|
+
let res = JSON.parse(json);
|
|
39
|
+
if (_.isArray(circs)) {
|
|
40
|
+
circs.forEach(({ circuralTargetPath, pathToObj }) => {
|
|
41
|
+
if (circuralTargetPath === '') {
|
|
42
|
+
_.set(res, pathToObj, res);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
let v = _.get(res, circuralTargetPath);
|
|
46
|
+
_.set(res, pathToObj, v);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return res;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
;
|
|
54
54
|
({}); // @--end-of-file-for-module=json10 lib/index.ts
|
|
55
55
|
|
|
56
|
-
/**
|
|
57
|
-
* Generated bundle index. Do not edit.
|
|
56
|
+
/**
|
|
57
|
+
* Generated bundle index. Do not edit.
|
|
58
58
|
*/
|
|
59
59
|
|
|
60
60
|
export { JSON10 };
|
package/browser/json10.d.ts
CHANGED
package/browser/lib/index.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import { Models } from 'lodash-walk-object/browser';
|
|
3
|
-
export declare type Circ = Models.Circ;
|
|
4
|
-
export declare class JSON10 {
|
|
5
|
-
static structureArray(anyJSON: Object, options?: {
|
|
6
|
-
include?: string[];
|
|
7
|
-
exclude?: string[];
|
|
8
|
-
}): any[];
|
|
9
|
-
static cleaned(json: any, onCircs?: (circs: Circ[]) => any, options?: {
|
|
10
|
-
exclude?: string[];
|
|
11
|
-
include?: string[];
|
|
12
|
-
breadthWalk?: boolean;
|
|
13
|
-
}): any;
|
|
14
|
-
static stringify(anyJSON: Object, replace?: any, spaces?: number, onCircs?: (circs: Circ[]) => any): string;
|
|
15
|
-
static parse(json: string, circs?: Circ[]): any;
|
|
2
|
+
import { Models } from 'lodash-walk-object/browser';
|
|
3
|
+
export declare type Circ = Models.Circ;
|
|
4
|
+
export declare class JSON10 {
|
|
5
|
+
static structureArray(anyJSON: Object, options?: {
|
|
6
|
+
include?: string[];
|
|
7
|
+
exclude?: string[];
|
|
8
|
+
}): any[];
|
|
9
|
+
static cleaned(json: any, onCircs?: (circs: Circ[]) => any, options?: {
|
|
10
|
+
exclude?: string[];
|
|
11
|
+
include?: string[];
|
|
12
|
+
breadthWalk?: boolean;
|
|
13
|
+
}): any;
|
|
14
|
+
static stringify(anyJSON: Object, replace?: any, spaces?: number, onCircs?: (circs: Circ[]) => any): string;
|
|
15
|
+
static parse(json: string, circs?: Circ[]): any;
|
|
16
16
|
}
|
package/client/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# MyLib
|
|
2
|
-
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
-
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
-
|
|
10
|
-
## Build
|
|
11
|
-
|
|
12
|
-
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
-
|
|
14
|
-
## Publishing
|
|
15
|
-
|
|
16
|
-
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
-
|
|
18
|
-
## Running unit tests
|
|
19
|
-
|
|
20
|
-
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
-
|
|
22
|
-
## Further help
|
|
23
|
-
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
1
|
+
# MyLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbjEwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS9qc29uMTAvcHJvamVjdHMvanNvbjEwL3NyYy9qc29uMTAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import { _ } from 'tnp-core/browser';
|
|
2
|
-
import { walk } from 'lodash-walk-object/browser';
|
|
3
|
-
import { CLASS } from 'typescript-class-helpers/browser';
|
|
4
|
-
export class JSON10 {
|
|
5
|
-
static structureArray(anyJSON, options) {
|
|
6
|
-
let pathes = [];
|
|
7
|
-
const { include, exclude } = options || {};
|
|
8
|
-
walk.Object(anyJSON, (value, lodashPath) => {
|
|
9
|
-
if (!_.isUndefined(value)) {
|
|
10
|
-
pathes.push(lodashPath);
|
|
11
|
-
}
|
|
12
|
-
}, { include, exclude, checkCircural: true });
|
|
13
|
-
return pathes;
|
|
14
|
-
}
|
|
15
|
-
static cleaned(json, onCircs, options) {
|
|
16
|
-
const result = _.isArray(json) ? [] : {};
|
|
17
|
-
const classFN = CLASS.OBJECT(json).isClassObject && CLASS.getFromObject(json);
|
|
18
|
-
const { exclude, include, breadthWalk } = options || { exclude: [], include: [], breadthWalk: false };
|
|
19
|
-
const { circs } = walk.Object(json, (value, lodashPath, changeValueTo, options) => {
|
|
20
|
-
if (_.isObject(value) && options.isCircural) {
|
|
21
|
-
_.set(result, lodashPath, null);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
_.set(result, lodashPath, _.cloneDeep(value));
|
|
25
|
-
}
|
|
26
|
-
}, { include, exclude, breadthWalk, checkCircural: true });
|
|
27
|
-
if (_.isFunction(onCircs)) {
|
|
28
|
-
onCircs(circs);
|
|
29
|
-
}
|
|
30
|
-
return _.isFunction(classFN) ? _.merge(new classFN(), result) : result;
|
|
31
|
-
}
|
|
32
|
-
static stringify(anyJSON, replace, spaces, onCircs) {
|
|
33
|
-
const json = this.cleaned(anyJSON, onCircs);
|
|
34
|
-
return JSON.stringify(json, replace, spaces);
|
|
35
|
-
}
|
|
36
|
-
static parse(json, circs = []) {
|
|
37
|
-
let res = JSON.parse(json);
|
|
38
|
-
if (_.isArray(circs)) {
|
|
39
|
-
circs.forEach(({ circuralTargetPath, pathToObj }) => {
|
|
40
|
-
if (circuralTargetPath === '') {
|
|
41
|
-
_.set(res, pathToObj, res);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
let v = _.get(res, circuralTargetPath);
|
|
45
|
-
_.set(res, pathToObj, v);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
return res;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
;
|
|
53
|
-
({}); // @--end-of-file-for-module=json10 lib/index.ts
|
|
1
|
+
import { _ } from 'tnp-core/browser';
|
|
2
|
+
import { walk } from 'lodash-walk-object/browser';
|
|
3
|
+
import { CLASS } from 'typescript-class-helpers/browser';
|
|
4
|
+
export class JSON10 {
|
|
5
|
+
static structureArray(anyJSON, options) {
|
|
6
|
+
let pathes = [];
|
|
7
|
+
const { include, exclude } = options || {};
|
|
8
|
+
walk.Object(anyJSON, (value, lodashPath) => {
|
|
9
|
+
if (!_.isUndefined(value)) {
|
|
10
|
+
pathes.push(lodashPath);
|
|
11
|
+
}
|
|
12
|
+
}, { include, exclude, checkCircural: true });
|
|
13
|
+
return pathes;
|
|
14
|
+
}
|
|
15
|
+
static cleaned(json, onCircs, options) {
|
|
16
|
+
const result = _.isArray(json) ? [] : {};
|
|
17
|
+
const classFN = CLASS.OBJECT(json).isClassObject && CLASS.getFromObject(json);
|
|
18
|
+
const { exclude, include, breadthWalk } = options || { exclude: [], include: [], breadthWalk: false };
|
|
19
|
+
const { circs } = walk.Object(json, (value, lodashPath, changeValueTo, options) => {
|
|
20
|
+
if (_.isObject(value) && options.isCircural) {
|
|
21
|
+
_.set(result, lodashPath, null);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
_.set(result, lodashPath, _.cloneDeep(value));
|
|
25
|
+
}
|
|
26
|
+
}, { include, exclude, breadthWalk, checkCircural: true });
|
|
27
|
+
if (_.isFunction(onCircs)) {
|
|
28
|
+
onCircs(circs);
|
|
29
|
+
}
|
|
30
|
+
return _.isFunction(classFN) ? _.merge(new classFN(), result) : result;
|
|
31
|
+
}
|
|
32
|
+
static stringify(anyJSON, replace, spaces, onCircs) {
|
|
33
|
+
const json = this.cleaned(anyJSON, onCircs);
|
|
34
|
+
return JSON.stringify(json, replace, spaces);
|
|
35
|
+
}
|
|
36
|
+
static parse(json, circs = []) {
|
|
37
|
+
let res = JSON.parse(json);
|
|
38
|
+
if (_.isArray(circs)) {
|
|
39
|
+
circs.forEach(({ circuralTargetPath, pathToObj }) => {
|
|
40
|
+
if (circuralTargetPath === '') {
|
|
41
|
+
_.set(res, pathToObj, res);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
let v = _.get(res, circuralTargetPath);
|
|
45
|
+
_.set(res, pathToObj, v);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return res;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
;
|
|
53
|
+
({}); // @--end-of-file-for-module=json10 lib/index.ts
|
|
54
54
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL2pzb24xMC9wcm9qZWN0cy9qc29uMTAvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBVSxNQUFNLDRCQUE0QixDQUFDO0FBRTFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQU16RCxNQUFNLE9BQU8sTUFBTTtJQUVWLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZSxFQUFFLE9BQW9EO1FBQ2hHLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUNmLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQVMsQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRTtZQUV6QyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTthQUN4QjtRQUVILENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDN0MsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUdNLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQWdDLEVBQUUsT0FLM0Q7UUFFRCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUN4QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFFdEcsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFFaEYsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQzNDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQTthQUNoQztpQkFBTTtnQkFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO2FBQzlDO1FBRUgsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUNmO1FBRUQsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUssT0FBZSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsRixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFlLEVBQUUsT0FBYSxFQUFFLE1BQWUsRUFBRSxPQUFnQztRQUN2RyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRTtRQUNsRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO2dCQUVsRCxJQUFJLGtCQUFrQixLQUFLLEVBQUUsRUFBRTtvQkFDN0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFBO2lCQUMzQjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO29CQUN2QyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUE7aUJBQ3pCO1lBRUgsQ0FBQyxDQUFDLENBQUE7U0FDSDtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnREFBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyB3YWxrLCBNb2RlbHMgfSBmcm9tICdsb2Rhc2gtd2Fsay1vYmplY3QvYnJvd3Nlcic7XG5leHBvcnQgdHlwZSBDaXJjID0gTW9kZWxzLkNpcmM7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcblxuXG5cblxuXG5leHBvcnQgY2xhc3MgSlNPTjEwIHtcblxuICBwdWJsaWMgc3RhdGljIHN0cnVjdHVyZUFycmF5KGFueUpTT046IE9iamVjdCwgb3B0aW9ucz86IHsgaW5jbHVkZT86IHN0cmluZ1tdOyBleGNsdWRlPzogc3RyaW5nW10gfSkge1xuICAgIGxldCBwYXRoZXMgPSBbXVxuICAgIGNvbnN0IHsgaW5jbHVkZSwgZXhjbHVkZSB9ID0gb3B0aW9ucyB8fCB7fSBhcyBhbnk7XG4gICAgd2Fsay5PYmplY3QoYW55SlNPTiwgKHZhbHVlLCBsb2Rhc2hQYXRoKSA9PiB7XG5cbiAgICAgIGlmICghXy5pc1VuZGVmaW5lZCh2YWx1ZSkpIHtcbiAgICAgICAgcGF0aGVzLnB1c2gobG9kYXNoUGF0aClcbiAgICAgIH1cblxuICAgIH0sIHsgaW5jbHVkZSwgZXhjbHVkZSwgY2hlY2tDaXJjdXJhbDogdHJ1ZSB9KVxuICAgIHJldHVybiBwYXRoZXM7XG4gIH1cblxuXG4gIHB1YmxpYyBzdGF0aWMgY2xlYW5lZChqc29uLCBvbkNpcmNzPzogKGNpcmNzOiBDaXJjW10pID0+IGFueSwgb3B0aW9ucz86XG4gICAge1xuICAgICAgZXhjbHVkZT86IHN0cmluZ1tdO1xuICAgICAgaW5jbHVkZT86IHN0cmluZ1tdO1xuICAgICAgYnJlYWR0aFdhbGs/OiBib29sZWFuO1xuICAgIH0pIHtcblxuICAgIGNvbnN0IHJlc3VsdCA9IF8uaXNBcnJheShqc29uKSA/IFtdIDoge31cbiAgICBjb25zdCBjbGFzc0ZOID0gQ0xBU1MuT0JKRUNUKGpzb24pLmlzQ2xhc3NPYmplY3QgJiYgQ0xBU1MuZ2V0RnJvbU9iamVjdChqc29uKTtcblxuICAgIGNvbnN0IHsgZXhjbHVkZSwgaW5jbHVkZSwgYnJlYWR0aFdhbGsgfSA9IG9wdGlvbnMgfHwgeyBleGNsdWRlOiBbXSwgaW5jbHVkZTogW10sIGJyZWFkdGhXYWxrOiBmYWxzZSB9O1xuXG4gICAgY29uc3QgeyBjaXJjcyB9ID0gd2Fsay5PYmplY3QoanNvbiwgKHZhbHVlLCBsb2Rhc2hQYXRoLCBjaGFuZ2VWYWx1ZVRvLCBvcHRpb25zKSA9PiB7XG5cbiAgICAgIGlmIChfLmlzT2JqZWN0KHZhbHVlKSAmJiBvcHRpb25zLmlzQ2lyY3VyYWwpIHtcbiAgICAgICAgXy5zZXQocmVzdWx0LCBsb2Rhc2hQYXRoLCBudWxsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgXy5zZXQocmVzdWx0LCBsb2Rhc2hQYXRoLCBfLmNsb25lRGVlcCh2YWx1ZSkpXG4gICAgICB9XG5cbiAgICB9LCB7IGluY2x1ZGUsIGV4Y2x1ZGUsIGJyZWFkdGhXYWxrLCBjaGVja0NpcmN1cmFsOiB0cnVlIH0pO1xuXG4gICAgaWYgKF8uaXNGdW5jdGlvbihvbkNpcmNzKSkge1xuICAgICAgb25DaXJjcyhjaXJjcylcbiAgICB9XG5cbiAgICByZXR1cm4gXy5pc0Z1bmN0aW9uKGNsYXNzRk4pID8gXy5tZXJnZShuZXcgKGNsYXNzRk4gYXMgYW55KSgpLCByZXN1bHQpIDogcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdHJpbmdpZnkoYW55SlNPTjogT2JqZWN0LCByZXBsYWNlPzogYW55LCBzcGFjZXM/OiBudW1iZXIsIG9uQ2lyY3M/OiAoY2lyY3M6IENpcmNbXSkgPT4gYW55KSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuY2xlYW5lZChhbnlKU09OLCBvbkNpcmNzKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoanNvbiwgcmVwbGFjZSwgc3BhY2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2UoanNvbjogc3RyaW5nLCBjaXJjczogQ2lyY1tdID0gW10pIHtcbiAgICBsZXQgcmVzID0gSlNPTi5wYXJzZShqc29uKTtcbiAgICBpZiAoXy5pc0FycmF5KGNpcmNzKSkge1xuICAgICAgY2lyY3MuZm9yRWFjaCgoeyBjaXJjdXJhbFRhcmdldFBhdGgsIHBhdGhUb09iaiB9KSA9PiB7XG5cbiAgICAgICAgaWYgKGNpcmN1cmFsVGFyZ2V0UGF0aCA9PT0gJycpIHtcbiAgICAgICAgICBfLnNldChyZXMsIHBhdGhUb09iaiwgcmVzKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCB2ID0gXy5nZXQocmVzLCBjaXJjdXJhbFRhcmdldFBhdGgpO1xuICAgICAgICAgIF8uc2V0KHJlcywgcGF0aFRvT2JqLCB2KVxuICAgICAgICB9XG5cbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPWpzb24xMCBsaWIvaW5kZXgudHMiXX0=
|