{"version":3,"file":"lodash-walk-object-browser.mjs","sources":["../../../tmp-libs-for-dist/lodash-walk-object/projects/lodash-walk-object/src/lib/lodash-walk-object.ts","../../../tmp-libs-for-dist/lodash-walk-object/projects/lodash-walk-object/src/lib/index.ts","../../../tmp-libs-for-dist/lodash-walk-object/projects/lodash-walk-object/src/lodash-walk-object-browser.ts"],"sourcesContent":["import { _ } from 'tnp-core/browser';\nimport { CLASS } from 'typescript-class-helpers/browser';\n\nexport interface Circ {\n  /**\n   * This path value will be overriten with circural object value\n   */\n  pathToObj: string;\n  /**\n   * lodash path to circural objects\n   * OR\n   * actual object for circural mapping\n   */\n  circuralTargetPath: string | any;\n}\n\n// let counter = 0\nexport namespace Models {\n  export interface InDBType {\n    target: any;\n    path: string;\n  }\n\n  export interface Ver {\n    v: any;\n    p: string;\n    parent: Ver;\n    isGetter?: boolean;\n  }\n\n  export interface StartIteratorOptions {\n    walkGetters?: boolean;\n\n    /**\n     * Default in breadhTwalk\n     */\n    checkCircural?: boolean;\n    breadthWalk?: boolean;\n    include?: string[];\n    exclude?: string[];\n  }\n\n  export interface AdditionalIteratorOptions extends StartIteratorOptions {\n    skipObject?: () => void;\n    isGetter?: boolean;\n    /**\n     * Breadth walk will skip content of circural objects\n     */\n    isCircural?: boolean;\n    exit?: () => void;\n  }\n\n  export interface InternalValues extends AdditionalIteratorOptions {\n    stack?: any[];\n    circural?: Circ[];\n    hasIterator?: boolean;\n    _valueChanged: boolean;\n    _skip: boolean;\n    _exit: boolean;\n  }\n}\n\nfunction findChildren(\n  ver: Models.Ver,\n  lp: string,\n  walkGetters: boolean,\n): Models.Ver[] {\n  const obj = ver.v;\n  if (_.isArray(obj)) {\n    return obj.map((v, i) => {\n      return { v, p: `${lp}[${i}]`, parent: ver, isGetter: false };\n    });\n  } else if (_.isObject(obj)) {\n    const allKeys = !walkGetters ? [] : Object.getOwnPropertyNames(obj);\n    const children: Models.Ver[] = [];\n    for (const key in obj) {\n      if (\n        _.isObject(obj) &&\n        _.isFunction(obj.hasOwnProperty) &&\n        obj.hasOwnProperty(key)\n      ) {\n        _.pull(allKeys, key);\n        children.push({\n          v: obj[key],\n          p: `${lp === '' ? '' : `${lp}.`}${key}`,\n          parent: ver,\n          isGetter: false,\n        });\n      }\n    }\n    if (walkGetters) {\n      for (let index = 0; index < allKeys.length; index++) {\n        if (_.isObject(obj)) {\n          const key = allKeys[index];\n          children.push({\n            v: obj[key],\n            p: `${lp === '' ? '' : `${lp}.`}${key}`,\n            parent: ver,\n            isGetter: true,\n          });\n        }\n      }\n    }\n    return children;\n  }\n  return [];\n}\n\nexport type Iterator = (\n  value: any,\n  lodashPath: string,\n  // @ts-ignore\n  changeValueTo: (newValue) => void,\n  options?: Models.AdditionalIteratorOptions,\n) => void;\nexport class Helpers {\n  public static get Walk() {\n    const self = this;\n    return {\n      Object(\n        json: Object,\n        iterator: Iterator,\n        optionsOrWalkGettersValue?: Models.StartIteratorOptions,\n      ) {\n        if (_.isUndefined(optionsOrWalkGettersValue)) {\n          optionsOrWalkGettersValue = {};\n        }\n\n        (optionsOrWalkGettersValue as Models.InternalValues).hasIterator =\n          _.isFunction(iterator);\n\n        if (_.isUndefined(optionsOrWalkGettersValue.breadthWalk)) {\n          optionsOrWalkGettersValue.breadthWalk = false;\n        }\n\n        let { circural } = self._walk(\n          json,\n          json,\n          iterator,\n          void 0,\n          optionsOrWalkGettersValue as any,\n        );\n\n        return { circs: circural };\n      },\n      ObjectBy(\n        property: string,\n        inContext: Object,\n        iterator: Iterator,\n        options?: Models.StartIteratorOptions,\n      ) {\n        if (_.isFunction(iterator)) {\n          iterator(inContext, '', self._changeValue(inContext, property, true)); // TODO Add optoins\n        }\n        // @ts-ignore\n        const json = inContext[property];\n        return self.Walk.Object(json, iterator, options);\n      },\n    };\n  }\n\n  private static _changeValue(\n    json: Object,\n    lodahPath: string,\n    simpleChange = false,\n    options?: Models.InternalValues,\n  ) {\n    var { contextPath, property } = this._prepareParams(lodahPath);\n    var context = _.get(json, contextPath);\n\n    return (newValue: any) => {\n      if (contextPath === '') {\n        simpleChange = true;\n      }\n\n      if (simpleChange) {\n        // @ts-ignore\n        json[property] = newValue;\n      } else {\n        // console.log(`CONTEXT VALUE CHANGE!  \"${contextPath}\" + \"${property}\" `, newValue)\n        // console.log('context', context)\n        if (context) {\n          context[property] = newValue;\n        }\n      }\n      if (options) {\n        options._valueChanged = true;\n      }\n    };\n  }\n\n  private static _prepareParams(lodashPath: string) {\n    // console.log('contextPath before', lodashPath)\n    const contextPath = this._Helpers.Path.getContextPath(lodashPath);\n    // console.log('contextPath after', contextPath)\n\n    let property = this._Helpers.Path.getPropertyPath(lodashPath, contextPath);\n    // console.log('property after process', property)\n    if (\n      _.isString(property) &&\n      property.trim() !== '' &&\n      !_.isNaN(Number(property))\n    ) {\n      property = Number(property);\n    }\n    return {\n      contextPath,\n      property,\n    };\n  }\n\n  private static get _Helpers() {\n    return {\n      get Path() {\n        return {\n          // @ts-ignore\n          getPropertyPath(lodahPath, contetPath) {\n            return lodahPath\n              .replace(contetPath, '')\n              .replace(/^\\./, '')\n              .replace(/\\[/, '')\n              .replace(/\\]/, '');\n          },\n          getContextPath(p: string) {\n            let res: string;\n            if (p.endsWith(']')) {\n              res = p.replace(/\\[(\\\"|\\')?[0-9]+(\\\"|\\')?\\]$/, '');\n            } else {\n              res = p.replace(/\\.([a-zA-Z0-9]|\\$|\\_|\\@|\\-|\\/|\\:)+$/, '');\n            }\n            return res === p ? '' : res;\n          },\n        };\n      },\n    };\n  }\n\n  private static _shoudlReturn(include = [], exclude = [], lodashPath: string) {\n    let res = false;\n    if (lodashPath.replace(/^\\[(\\'|\\\")?[0-9]*(\\'|\\\")?\\]/, '').trim() !== '') {\n      lodashPath = lodashPath.replace(/^\\[(\\'|\\\")?[0-9]*(\\'|\\\")?\\]\\./, '');\n      res =\n        (_.isArray(include) &&\n          include.length > 0 &&\n          !include.find(p => lodashPath.startsWith(p))) ||\n        (_.isArray(exclude) &&\n          exclude.length > 0 &&\n          !!exclude.find(p => lodashPath.startsWith(p)));\n    }\n\n    return res;\n  }\n\n  // @ts-ignore\n  private static prepareOptions(\n    options: Models.InternalValues,\n    obj,\n    lodashPath,\n  ) {\n    if (options._exit) {\n      return;\n    }\n\n    if (_.isUndefined(options.walkGetters)) {\n      options.walkGetters = true;\n    }\n\n    if (_.isUndefined(options.checkCircural)) {\n      options.checkCircural = false;\n    }\n\n    if (_.isUndefined(options.isGetter)) {\n      // @ts-ignore\n      options.isGetter = false;\n    }\n\n    if (_.isUndefined(options._valueChanged)) {\n      options._valueChanged = false;\n    }\n\n    if (_.isUndefined(options._exit)) {\n      // @ts-ignore\n      options._exit = false;\n    }\n\n    if (_.isUndefined(options.exit)) {\n      options.exit = () => {\n        options._exit = true;\n      };\n    }\n\n    if (_.isUndefined(options._skip)) {\n      // @ts-ignore\n      options._skip = false;\n    }\n\n    if (_.isUndefined(options.skipObject)) {\n      options.skipObject = () => {\n        options._skip = true;\n      };\n    }\n\n    if (options.checkCircural) {\n      if (_.isUndefined(options.stack)) {\n        options.stack = [];\n      }\n\n      if (_.isUndefined(options.circural)) {\n        options.circural = [];\n      }\n    }\n\n    const { stack } = options;\n    options.isCircural = false;\n\n    if (options.checkCircural && _.isObject(obj)) {\n      const inStack = stack.find((c: Models.InDBType) => c.target == obj);\n\n      if (!_.isUndefined(inStack)) {\n        const circ: Circ = {\n          pathToObj: lodashPath,\n          circuralTargetPath: inStack.path,\n        };\n\n        options.circural.push(circ);\n        options.isCircural = true;\n      } else {\n        stack.push({\n          path: lodashPath,\n          target: obj,\n        } as Models.InDBType);\n      }\n    }\n    return options;\n  }\n\n  private static _walk(\n    json: Object,\n    objOrWhatever: unknown,\n    iterator: Iterator,\n    lodashPath = '',\n    options?: Models.InternalValues,\n    depthLevel = 0,\n  ) {\n    if (!options) {\n      options = {} as any;\n    }\n\n    // @ts-ignore\n    if (!options.breadthWalk) {\n      // @ts-ignore\n      options = this.prepareOptions(options, objOrWhatever, lodashPath);\n\n      // @ts-ignore\n      if (this._shoudlReturn(options.include, options.exclude, lodashPath)) {\n        return;\n      }\n\n      // @ts-ignore\n      if (options.hasIterator && lodashPath !== '') {\n        iterator(\n          objOrWhatever,\n          lodashPath,\n          this._changeValue(json, lodashPath, false, options),\n          options,\n        );\n      }\n\n      // @ts-ignore\n      if (options._valueChanged) {\n        objOrWhatever = _.get(json, lodashPath);\n      }\n      options._valueChanged = false;\n\n      if (options.isCircural) {\n        options._skip = true;\n      }\n\n      if (options._skip) {\n        // @ts-ignore\n        options._skip = false;\n        return;\n      }\n    }\n\n    if (options.breadthWalk) {\n      let queue: Models.Ver[] = [{ v: json, p: lodashPath, parent: void 0 }];\n\n      // const pathesToSkip = {};\n      while (queue.length > 0) {\n        const ver = queue.shift();\n        // console.log(`pathes to skip`, pathesToSkip);\n        // if (!_.isUndefined(Object.keys(pathesToSkip).find(key => ver.p.startsWith(pathesToSkip[key])))) {\n        // console.log(`skip: ${ver.p}`)\n        // continue;\n        // }\n        // @ts-ignore\n        if (this._shoudlReturn(options.include, options.exclude, ver.p)) {\n          // pathesToSkip[ver.p] = true;\n          // console.log(`skip2: ${ver.p}`)\n          continue;\n        }\n\n        // console.log(`not skip value ${ver.p}`)\n\n        // @ts-ignore\n        let { v, p } = ver;\n        // @ts-ignore\n        options = this.prepareOptions(options, v, p);\n\n        if (options._exit) {\n          console.log('EXIT');\n          return options;\n        }\n        if (options.hasIterator && p !== '') {\n          iterator(v, p, this._changeValue(json, p, false, options), options);\n        }\n\n        // @ts-ignore\n        if (options._valueChanged) {\n          ver.v = _.get(json, p);\n        }\n        options._valueChanged = false;\n\n        if (options.isCircural) {\n          // pathesToSkip[ver.p] = true;\n          continue;\n        }\n\n        if (options._skip) {\n          // @ts-ignore\n          options._skip = false;\n          // pathesToSkip[ver.p] = true;\n          continue;\n        }\n        // console.log(`LOOK FOR CHILDREN OF ${ver.p}`)\n        if (_.isArray(v)) {\n          // @ts-ignore\n          queue = queue.concat(findChildren(ver, p, options.walkGetters));\n        } else if (_.isObject(v)) {\n          // @ts-ignore\n          queue = queue.concat(findChildren(ver, p, options.walkGetters));\n        }\n      }\n    } else {\n      // @ts-ignore\n      const { walkGetters } = options;\n\n      if (Array.isArray(objOrWhatever)) {\n        objOrWhatever.forEach((o, i) => {\n          // @ts-ignore\n          this._walk(\n            json,\n            objOrWhatever[i],\n            iterator,\n            `${lodashPath}[${i}]`,\n            options,\n            depthLevel + 1,\n          );\n        });\n      } else if (_.isObject(objOrWhatever)) {\n        const allKeys = !walkGetters\n          ? []\n          : Object.getOwnPropertyNames(objOrWhatever);\n\n        // @ts-ignore\n        for (const key in objOrWhatever) {\n          // console.log('KEY', key)\n          if (_.isObject(objOrWhatever) && objOrWhatever.hasOwnProperty(key)) {\n            _.pull(allKeys, key);\n\n            let newPropKey = key;\n            options.isGetter = false;\n            if (newPropKey.includes('.')) {\n              newPropKey = `['${newPropKey}']`;\n            }\n            // @ts-ignore\n            this._walk(\n              json,\n              objOrWhatever[newPropKey],\n              iterator,\n              `${lodashPath === '' ? '' : `${lodashPath}.`}${newPropKey}`,\n              options,\n              depthLevel + 1,\n            );\n          }\n        }\n        if (walkGetters) {\n          for (let index = 0; index < allKeys.length; index++) {\n            if (_.isObject(objOrWhatever)) {\n              const key = allKeys[index];\n\n              // @ts-ignore\n              options.isGetter = true;\n              // @ts-ignore\n              this._walk(\n                json,\n                objOrWhatever[key],\n                iterator,\n                `${lodashPath === '' ? '' : `${lodashPath}.`}${key}`,\n                options,\n                depthLevel + 1,\n              );\n            }\n          }\n        }\n      }\n\n      // @ts-ignore\n      if (options._exit && json === objOrWhatever) {\n        // @ts-ignore\n        options._exit = false;\n      }\n    }\n\n    return options;\n  }\n}\n\nexport const walk = {\n  Object: Helpers.Walk.Object,\n  ObjectBy: Helpers.Walk.ObjectBy,\n};","export * from './lodash-walk-object';\n// export * from './start-cli'; // @backend","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}