From 808d5095fa423d4812b296622abdd3e41b478d83 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Tue, 7 Apr 2020 23:36:37 +0200 Subject: [PATCH] refactor(cdnurl): use autoReplace (#5909) --- .../cdnurl/__snapshots__/extract.spec.ts.snap | 30 ----------- lib/manager/cdnurl/extract.ts | 7 --- lib/manager/cdnurl/index.ts | 5 +- lib/manager/cdnurl/update.spec.ts | 53 ------------------- lib/manager/cdnurl/update.ts | 28 ---------- 5 files changed, 3 insertions(+), 120 deletions(-) delete mode 100644 lib/manager/cdnurl/update.spec.ts delete mode 100644 lib/manager/cdnurl/update.ts diff --git a/lib/manager/cdnurl/__snapshots__/extract.spec.ts.snap b/lib/manager/cdnurl/__snapshots__/extract.spec.ts.snap index e2a4e18e201138..a392f80bc536e2 100644 --- a/lib/manager/cdnurl/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/cdnurl/__snapshots__/extract.spec.ts.snap @@ -8,90 +8,60 @@ Object { "datasource": "cdnjs", "depName": "prop-types", "lookupName": "prop-types/prop-types.min.js", - "managerData": Object { - "fileReplacePosition": 51, - }, }, Object { "currentValue": "16.3.2", "datasource": "cdnjs", "depName": "react", "lookupName": "react/umd/react.production.min.js", - "managerData": Object { - "fileReplacePosition": 115, - }, }, Object { "currentValue": "16.3.2", "datasource": "cdnjs", "depName": "react-dom", "lookupName": "react-dom/umd/react-dom.production.min.js", - "managerData": Object { - "fileReplacePosition": 199, - }, }, Object { "currentValue": "2.2.1", "datasource": "cdnjs", "depName": "react-transition-group", "lookupName": "react-transition-group/react-transition-group.min.js", - "managerData": Object { - "fileReplacePosition": 351, - }, }, Object { "currentValue": "1.14.3", "datasource": "cdnjs", "depName": "popper.js", "lookupName": "popper.js/umd/popper.min.js", - "managerData": Object { - "fileReplacePosition": 436, - }, }, Object { "currentValue": "0.10.4", "datasource": "cdnjs", "depName": "react-popper", "lookupName": "react-popper/umd/react-popper.min.js", - "managerData": Object { - "fileReplacePosition": 513, - }, }, Object { "currentValue": "7.1.0", "datasource": "cdnjs", "depName": "reactstrap", "lookupName": "reactstrap/reactstrap.min.js", - "managerData": Object { - "fileReplacePosition": 594, - }, }, Object { "currentValue": "4.3.1", "datasource": "cdnjs", "depName": "react-router", "lookupName": "react-router/react-router.min.js", - "managerData": Object { - "fileReplacePosition": 670, - }, }, Object { "currentValue": "4.0.6", "datasource": "cdnjs", "depName": "react-markdown", "lookupName": "react-markdown/react-markdown.js", - "managerData": Object { - "fileReplacePosition": 750, - }, }, Object { "currentValue": "0.18.0", "datasource": "cdnjs", "depName": "axios", "lookupName": "axios/axios.min.js", - "managerData": Object { - "fileReplacePosition": 888, - }, }, ], } diff --git a/lib/manager/cdnurl/extract.ts b/lib/manager/cdnurl/extract.ts index e4658a3bbbfe3a..eeb45569ba9de3 100644 --- a/lib/manager/cdnurl/extract.ts +++ b/lib/manager/cdnurl/extract.ts @@ -12,10 +12,6 @@ export function extractPackageFile(content: string): PackageFile { while (match) { const [wholeSubstr] = match; const { depName, currentValue, asset } = match.groups; - - const fileReplacePosition = - offset + match.index + wholeSubstr.indexOf(currentValue); - offset += match.index + wholeSubstr.length; rest = content.slice(offset); match = cloudflareUrlRegex.exec(rest); @@ -25,9 +21,6 @@ export function extractPackageFile(content: string): PackageFile { depName, lookupName: `${depName}/${asset}`, currentValue, - managerData: { - fileReplacePosition, - }, }); } diff --git a/lib/manager/cdnurl/index.ts b/lib/manager/cdnurl/index.ts index 96ebfa3c27b98b..db62cd69747430 100644 --- a/lib/manager/cdnurl/index.ts +++ b/lib/manager/cdnurl/index.ts @@ -1,8 +1,9 @@ import * as semverVersioning from '../../versioning/semver'; import { extractPackageFile } from './extract'; -import { updateDependency } from './update'; -export { extractPackageFile, updateDependency }; +export { extractPackageFile }; + +export const autoReplace = true; export const defaultConfig = { fileMatch: [], diff --git a/lib/manager/cdnurl/update.spec.ts b/lib/manager/cdnurl/update.spec.ts deleted file mode 100644 index 5253603a9405fe..00000000000000 --- a/lib/manager/cdnurl/update.spec.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { readFileSync } from 'fs'; -import { resolve } from 'path'; -import { extractPackageFile, updateDependency } from '.'; - -const content = readFileSync( - resolve(__dirname, `./__fixtures__/sample.txt`), - 'utf8' -); - -describe('manager/cdnurl/update', () => { - it('updates dependency', () => { - const { deps } = extractPackageFile(content); - const dep = deps.pop(); - const upgrade = { - ...dep, - newValue: '9.9.999', - }; - const { currentValue, newValue } = upgrade; - const newFileContent = updateDependency({ fileContent: content, upgrade }); - const cmpContent = content.replace(currentValue, newValue); - expect(newFileContent).toEqual(cmpContent); - }); - it('returns same string for already updated dependency', () => { - const { deps } = extractPackageFile(content); - const dep = deps.pop(); - const upgrade = { - ...dep, - newValue: '9.9.999', - }; - const { currentValue } = upgrade; - const alreadyUpdated = content.replace(currentValue, '9.9.999'); - const newFileContent = updateDependency({ - fileContent: alreadyUpdated, - upgrade, - }); - expect(newFileContent).toBe(alreadyUpdated); - }); - it('returns null if content has changed', () => { - const { deps } = extractPackageFile(content); - const dep = deps.pop(); - const upgrade = { - ...dep, - newValue: '9.9.999', - }; - const { currentValue } = upgrade; - const alreadyUpdated = content.replace(currentValue, '2020.1'); - const newFileContent = updateDependency({ - fileContent: alreadyUpdated, - upgrade, - }); - expect(newFileContent).toBeNull(); - }); -}); diff --git a/lib/manager/cdnurl/update.ts b/lib/manager/cdnurl/update.ts deleted file mode 100644 index f3fd77d648e740..00000000000000 --- a/lib/manager/cdnurl/update.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { logger } from '../../logger'; -import { UpdateDependencyConfig } from '../common'; - -export function updateDependency({ - fileContent, - upgrade, -}: UpdateDependencyConfig): string { - const { depName, currentValue, newValue, managerData } = upgrade; - const { fileReplacePosition } = managerData; - const leftPart = fileContent.slice(0, fileReplacePosition); - const rightPart = fileContent.slice(fileReplacePosition); - const versionClosePosition = rightPart.indexOf('/'); - const restPart = rightPart.slice(versionClosePosition); - const versionPart = rightPart.slice(0, versionClosePosition); - const version = versionPart.trim(); - if (version === newValue) { - return fileContent; - } - if (version === currentValue) { - const replacedPart = versionPart.replace(version, newValue); - return leftPart + replacedPart + restPart; - } - logger.debug( - { depName, version, currentValue, newValue }, - 'File content was changed in unexpected way' - ); - return null; -}