{"version":3,"file":"json10-browser.mjs","sources":["../../../tmp-libs-for-dist/json10/projects/json10/src/lib/index.ts","../../../tmp-libs-for-dist/json10/projects/json10/src/json10-browser.ts"],"sourcesContent":["import { _ } from 'tnp-core/browser';\nimport { walk, Models } from 'lodash-walk-object/browser';\nexport type Circ = Models.Circ;\nimport { CLASS } from 'typescript-class-helpers/browser';\n// import { Log } from 'ng2-logger'\n// const log = Log.create('JSON10')\n\n// let counter = 0\n\nexport class JSON10 {\n\n  public static structureArray(anyJSON: Object, options?: { include?: string[]; exclude?: string[] }) {\n    let pathes = []\n    const { include, exclude } = options || {} as any;\n    walk.Object(anyJSON, (value, lodashPath) => {\n\n      if (!_.isUndefined(value)) {\n        pathes.push(lodashPath)\n      }\n\n    }, { include, exclude, checkCircural: true })\n    return pathes;\n  }\n\n\n  public static cleaned(json, onCircs?: (circs: Circ[]) => any, options?:\n    {\n      exclude?: string[];\n      include?: string[];\n      breadthWalk?: boolean;\n    }) {\n    // console.log('BETTER SRUGUB', json)\n    const result = _.isArray(json) ? [] : {}\n    const classFN = CLASS.OBJECT(json).isClassObject && CLASS.getFromObject(json);\n\n    const { exclude, include, breadthWalk } = options || { exclude: [], include: [], breadthWalk: false };\n\n    const { circs } = walk.Object(json, (value, lodashPath, changeValueTo, options) => {\n\n      if (_.isObject(value) && options.isCircural) {\n        _.set(result, lodashPath, null)\n      } else {\n        _.set(result, lodashPath, _.cloneDeep(value))\n      }\n\n    }, { include, exclude, breadthWalk, checkCircural: true });\n\n    if (_.isFunction(onCircs)) {\n      onCircs(circs)\n    }\n\n    return _.isFunction(classFN) ? _.merge(new (classFN as any)(), result) : result;\n  }\n\n  public static stringify(anyJSON: Object, replace?: any, spaces?: number, onCircs?: (circs: Circ[]) => any) {\n    const json = this.cleaned(anyJSON, onCircs);\n    return JSON.stringify(json, replace, spaces);\n  }\n\n  public static parse(json: string, circs: Circ[] = []) {\n    let res = JSON.parse(json);\n    if (_.isArray(circs)) {\n      circs.forEach(({ circuralTargetPath, pathToObj }) => {\n\n        if (circuralTargetPath === '') {\n          _.set(res, pathToObj, res)\n        } else {\n          let v = _.get(res, circuralTargetPath);\n          _.set(res, pathToObj, v)\n        }\n\n      })\n    }\n    return res;\n  }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}