{"version":3,"file":"magic-renamer-browser.mjs","sources":["../../../tmp-libs-for-dist/magic-renamer/projects/magic-renamer/src/lib/rename-rule.ts","../../../tmp-libs-for-dist/magic-renamer/projects/magic-renamer/src/lib/magic-renamer.ts","../../../tmp-libs-for-dist/magic-renamer/projects/magic-renamer/src/lib/start.ts","../../../tmp-libs-for-dist/magic-renamer/projects/magic-renamer/src/magic-renamer-browser.ts"],"sourcesContent":["import { Log, Level } from 'ng2-logger/browser';\nimport { Helpers, Utils } from 'tnp-core/browser';\nimport { _, UtilsString } from 'tnp-core/browser';\nconst log = Log.create('rename-rule', Level.WARN, Level.ERROR);\n\nexport class RenameRule {\n  static from(pArgs: string): RenameRule[] {\n    pArgs = pArgs.replace(/\\=\\>/g, '->');\n    let args = pArgs.split(/(\\'|\\\")(\\ )+(\\'|\\\")/).filter(f => !!f) as string[];\n    log.d('---- Rules ----');\n    args.forEach(a => {\n      log.d(a);\n    });\n    log.d('---------------');\n    return args\n      .filter(a => a.search('->') !== -1)\n      .map(a => {\n        const [from, to] = a.split('->');\n        if (!from || !to) {\n          Helpers.error(\n            `Incorrect rule\n        \"${from}\" -> \"${to}\"\n        please follow pattern: 'test name -> my new name '`,\n            false,\n            true,\n          );\n        }\n        return new RenameRule(from.trim(), to.trim());\n      });\n  }\n\n  public readonly fromWhiteSpaceReplaced: string;\n\n  public readonly toWhiteSpaceReplaced: string;\n\n  constructor(\n    public readonly from: string,\n    public readonly to: string,\n  ) {\n    this.fromWhiteSpaceReplaced = from.trim().toLowerCase().replace(/\\W/g, ' ');\n    this.toWhiteSpaceReplaced = to.trim().toLowerCase().replace(/\\W/g, ' ');\n  }\n\n  applyTo(s: string): boolean {\n    s = s.trim().toLowerCase().replace(/\\W/g, '');\n    const res = s.search(this.from.replace(/\\W/g, '')) !== -1;\n    return res;\n  }\n\n  toString = () => {\n    return `${this.from} => ${this.to}`;\n  };\n\n  includes(orgString) {\n    return !_.isUndefined(\n      this.combinationsData(true).combinationsAll.find(v => {\n        const [from, to] = v;\n        return orgString === to;\n      }),\n    );\n  }\n\n  combinationsData(getAll = false): {\n    isWeakFrom: boolean;\n    combinationsAll?: string[][];\n    combinationsInClass?: string[][];\n    combinationsInTemplate?: string[][];\n  } {\n    const thisTo = this.toWhiteSpaceReplaced;\n    const thisFrom = this.fromWhiteSpaceReplaced;\n\n    /**\n     * Example: thisFrom === 'entity'; thisTo => 'entity-new'\n     * - we are not sure if 'entity' alone should be 'entity-new' or 'entityNew'\n     */\n    const isWeakFrom = _.kebabCase(thisFrom).split('-').length <= 1;\n\n    if (isWeakFrom && !getAll) {\n      return {\n        isWeakFrom,\n        combinationsInTemplate: [\n          [_.upperCase(thisFrom), _.snakeCase(thisTo).toUpperCase()], // ENTITY => HELLO_KITTY\n          [\n            _.upperFirst(_.camelCase(thisFrom)),\n            _.upperFirst(_.camelCase(thisTo)),\n          ], // Entity => HelloKitty\n          ['\"' + _.camelCase(thisFrom) + '.', '\"' + _.camelCase(thisTo) + '.'], // entity => helloKitty\n          [\n            UtilsString.kebabCaseNoSplitNumbers(thisFrom),\n            UtilsString.kebabCaseNoSplitNumbers(thisTo),\n          ], // entity1 => hello1-kitty\n        ],\n        combinationsInClass: [\n          [\n            _.upperFirst(_.camelCase(thisFrom)),\n            _.upperFirst(_.camelCase(thisTo)),\n          ], // Entity => HelloKitty\n          [_.upperCase(thisFrom), _.snakeCase(thisTo).toUpperCase()], // MY ENTITY => HELLO_KITTY\n          [_.camelCase(thisFrom), _.camelCase(thisTo)], // entity => helloKitty\n        ],\n      };\n    }\n    return {\n      isWeakFrom: false,\n      combinationsAll: [\n        // TODO 'rs.asdasd-asd-A.'\n        [\n          UtilsString.kebabCaseNoSplitNumbers(thisFrom),\n          UtilsString.kebabCaseNoSplitNumbers(thisTo),\n        ], // my-entity => hello1-kitty\n        [_.kebabCase(thisFrom), _.kebabCase(thisTo)], // my-entity => hello-kitty\n        [_.camelCase(thisFrom), _.camelCase(thisTo)], // myEntity => helloKitty\n        [\n          _.upperFirst(_.camelCase(thisFrom)),\n          _.upperFirst(_.camelCase(thisTo)),\n        ], // MyEntity => HelloKitty\n        [_.snakeCase(thisFrom), _.snakeCase(thisTo)], // my_entity => hello_kitty\n        [\n          _.snakeCase(thisFrom).toUpperCase(),\n          _.snakeCase(thisTo).toUpperCase(),\n        ], // MY_ENTITY => HELLO_KITTY\n        [_.startCase(thisFrom), _.startCase(thisTo)], // My Entity => Hello Kitty\n        [_.upperCase(thisFrom), _.upperCase(thisTo)], // MY ENTITY => HELLO KITTY\n        [_.lowerCase(thisFrom), _.lowerCase(thisTo)], // my entity => hello kitty\n        [\n          _.camelCase(thisFrom).toLocaleLowerCase(),\n          _.camelCase(thisTo).toLocaleLowerCase(),\n        ], // myentity => hellokitty\n      ],\n    };\n  }\n\n  /**\n   * @param orgString input string\n   * @returns string with all possible combinations replaced\n   */\n  replaceInString(orgString: string): string {\n    return this.replace({\n      orgString,\n      replaceAllPossibilities: true,\n    });\n  }\n\n  /**\n   *\n   * @param orgString (file name OR file content)\n   * @param replaceAllPossibilities when changing file notent (not name only)\n   */\n  replace(options: {\n    /**\n     * file name for debugging\n     */\n    fileName?: string;\n    orgString: string;\n    replaceAllPossibilities?: boolean;\n  }) {\n    let { fileName, orgString, replaceAllPossibilities } = options;\n    if (typeof orgString !== 'string') {\n      Helpers.log({ orgString });\n      Helpers.warn(`[magic-renamer][not a string] fielname ${fileName}`);\n      return orgString;\n    }\n    replaceAllPossibilities = !!replaceAllPossibilities;\n    const combinationsData = this.combinationsData();\n    if (combinationsData.isWeakFrom) {\n      const lines = orgString.split('\\n');\n      for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {\n        const line = lines[lineIndex];\n\n        let combinations = combinationsData.combinationsInTemplate;\n        if (line.includes('inject(')) {\n          // QUICK_FIX for component class variables\n          combinations = combinationsData.combinationsInClass;\n        }\n\n        for (\n          let combinationIndex = 0;\n          combinationIndex < combinations.length;\n          combinationIndex++\n        ) {\n          let [from, to] = combinations[combinationIndex];\n          // console.log({ from, to });\n\n          lines[lineIndex] = lines[lineIndex].replace(\n            new RegExp(Utils.escapeStringForRegEx(from), 'g'),\n            to,\n          );\n        }\n      }\n      orgString = lines.join('\\n');\n    } else {\n      const combinations = combinationsData.combinationsAll;\n      for (\n        let combinationIndex = 0;\n        combinationIndex < combinations.length;\n        combinationIndex++\n      ) {\n        const combination = combinations[combinationIndex];\n        let [from, to] = combination;\n        if (orgString.search(from) !== -1) {\n          const regex = new RegExp(Utils.escapeStringForRegEx(from));\n          log.i(`apply! \"${regex.source}\" to file ${fileName} => \"${to}\"`);\n          orgString = orgString.replace(\n            new RegExp(Utils.escapeStringForRegEx(from), 'g'),\n            to,\n          );\n\n          if (!replaceAllPossibilities) {\n            return orgString;\n          }\n        }\n      }\n    }\n\n    return orgString;\n  }\n}\n","//#region imports\nimport { Log, Level } from 'ng2-logger/browser';\nimport {\n  _,\n  path,\n  fse,\n  glob,\n  crossPlatformPath,\n  fg,\n  Utils,\n  dotTaonFolder,\n  dotTnpFolder,\n  UtilsFilesFoldersSync,\n  UtilsFilesFolders,\n} from 'tnp-core/browser';\nimport { Helpers } from 'tnp-core/browser';\n\nimport { shouldDebug } from './magic-renamer-data';\nimport { RenameRule } from './rename-rule';\n\n//#endregion\nconst log = Log.create('magic-renemer', Level.WARN, Level.ERROR);\n\nexport class MagicRenamer {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n}\n","import { MagicRenamer } from './magic-renamer';\n\nexport async function start(argsv: string[]): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  return (void 0);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["log"],"mappings":"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"}