// @ts-nocheck /* ============================================================================ - TAON READONLY SOURCE - DO NOT MODIFY THIS FILE. - Changes may be overwritten. - Use command: taon build:watch:lib inside magic-renamer project repository for watch development of third party modules like this. * ========================================================================== */ import { Level, Log__NS__create, Log__NS__disableAllLogs, Log__NS__disableAllLogsPermanetly, Log__NS__enableAllLogs, Log__NS__onlyLevel, Log__NS__onlyModules, Log__NS__setGlobalLevel, Log__NS__settings } from 'ng2-logger/browser-prod'; import { Helpers__NS___fixCommand, Helpers__NS__ActionInstance, Helpers__NS__actionStarted, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsVerboseModeOrTnp, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logTaskDone, Helpers__NS__logTaskStarted, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, Utils__NS__camelize, Utils__NS__css__NS__numValue, Utils__NS__escapeStringForRegEx, Utils__NS__fullDate, Utils__NS__fullDateTime, Utils__NS__getFreePort, Utils__NS__removeChalkSpecialChars, Utils__NS__requireUncached, Utils__NS__sortKeys, Utils__NS__uniqArray, Utils__NS__wait, Utils__NS__waitMilliseconds } from 'tnp-core/browser-prod'; import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsString__NS__kebabCaseNoSplitNumbers, UtilsString__NS__listDiff } from 'tnp-core/browser-prod'; const log = Log__NS__create('rename-rule', Level.WARN, Level.ERROR); export class RenameRule { static from(pArgs: string): RenameRule[] { pArgs = pArgs.replace(/\=\>/g, '->'); let args = pArgs.split(/(\'|\")(\ )+(\'|\")/).filter(f => !!f) as string[]; log.d('---- Rules ----'); args.forEach(a => { log.d(a); }); log.d('---------------'); return args .filter(a => a.search('->') !== -1) .map(a => { const [from, to] = a.split('->'); if (!from || !to) { Helpers__NS__error(`Incorrect rule "${from}" -> "${to}" please follow pattern: 'test name -> my new name '`, false, true); } return new RenameRule(from.trim(), to.trim()); }); } public readonly fromWhiteSpaceReplaced: string; public readonly toWhiteSpaceReplaced: string; constructor(public readonly from: string, public readonly to: string) { this.fromWhiteSpaceReplaced = from.trim().toLowerCase().replace(/\W/g, ' '); this.toWhiteSpaceReplaced = to.trim().toLowerCase().replace(/\W/g, ' '); } applyTo(s: string): boolean { s = s.trim().toLowerCase().replace(/\W/g, ''); const res = s.search(this.from.replace(/\W/g, '')) !== -1; return res; } toString = () => { return `${this.from} => ${this.to}`; }; includes(orgString) { return !___NS__isUndefined(this.combinationsData(true).combinationsAll.find(v => { const [from, to] = v; return orgString === to; })); } combinationsData(getAll = false): { isWeakFrom: boolean; combinationsAll?: string[][]; combinationsInClass?: string[][]; combinationsInTemplate?: string[][]; } { const thisTo = this.toWhiteSpaceReplaced; const thisFrom = this.fromWhiteSpaceReplaced; const isWeakFrom = ___NS__kebabCase(thisFrom).split('-').length <= 1; if (isWeakFrom && !getAll) { return { isWeakFrom, combinationsInTemplate: [ [___NS__upperCase(thisFrom), ___NS__snakeCase(thisTo).toUpperCase()], [ ___NS__upperFirst(___NS__camelCase(thisFrom)), ___NS__upperFirst(___NS__camelCase(thisTo)), ], ['"' + ___NS__camelCase(thisFrom) + '.', '"' + ___NS__camelCase(thisTo) + '.'], [ UtilsString__NS__kebabCaseNoSplitNumbers(thisFrom), UtilsString__NS__kebabCaseNoSplitNumbers(thisTo), ], ], combinationsInClass: [ [ ___NS__upperFirst(___NS__camelCase(thisFrom)), ___NS__upperFirst(___NS__camelCase(thisTo)), ], [___NS__upperCase(thisFrom), ___NS__snakeCase(thisTo).toUpperCase()], [___NS__camelCase(thisFrom), ___NS__camelCase(thisTo)], ], }; } return { isWeakFrom: false, combinationsAll: [ [ UtilsString__NS__kebabCaseNoSplitNumbers(thisFrom), UtilsString__NS__kebabCaseNoSplitNumbers(thisTo), ], [___NS__kebabCase(thisFrom), ___NS__kebabCase(thisTo)], [___NS__camelCase(thisFrom), ___NS__camelCase(thisTo)], [ ___NS__upperFirst(___NS__camelCase(thisFrom)), ___NS__upperFirst(___NS__camelCase(thisTo)), ], [___NS__snakeCase(thisFrom), ___NS__snakeCase(thisTo)], [ ___NS__snakeCase(thisFrom).toUpperCase(), ___NS__snakeCase(thisTo).toUpperCase(), ], [___NS__startCase(thisFrom), ___NS__startCase(thisTo)], [___NS__upperCase(thisFrom), ___NS__upperCase(thisTo)], [___NS__lowerCase(thisFrom), ___NS__lowerCase(thisTo)], [ ___NS__camelCase(thisFrom).toLocaleLowerCase(), ___NS__camelCase(thisTo).toLocaleLowerCase(), ], ], }; } replaceInString(orgString: string): string { return this.replace({ orgString, replaceAllPossibilities: true, }); } replace(options: { fileName?: string; orgString: string; replaceAllPossibilities?: boolean; }) { let { fileName, orgString, replaceAllPossibilities } = options; if (typeof orgString !== 'string') { Helpers__NS__log({ orgString }); Helpers__NS__warn(`[magic-renamer][not a string] fielname ${fileName}`); return orgString; } replaceAllPossibilities = !!replaceAllPossibilities; const combinationsData = this.combinationsData(); if (combinationsData.isWeakFrom) { const lines = orgString.split('\n'); for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) { const line = lines[lineIndex]; let combinations = combinationsData.combinationsInTemplate; if (line.includes('inject(')) { combinations = combinationsData.combinationsInClass; } for (let combinationIndex = 0; combinationIndex < combinations.length; combinationIndex++) { let [from, to] = combinations[combinationIndex]; lines[lineIndex] = lines[lineIndex].replace(new RegExp(Utils__NS__escapeStringForRegEx(from), 'g'), to); } } orgString = lines.join('\n'); } else { const combinations = combinationsData.combinationsAll; for (let combinationIndex = 0; combinationIndex < combinations.length; combinationIndex++) { const combination = combinations[combinationIndex]; let [from, to] = combination; if (orgString.search(from) !== -1) { const regex = new RegExp(Utils__NS__escapeStringForRegEx(from)); log.i(`apply! "${regex.source}" to file ${fileName} => "${to}"`); orgString = orgString.replace(new RegExp(Utils__NS__escapeStringForRegEx(from), 'g'), to); if (!replaceAllPossibilities) { return orgString; } } } } return orgString; } }