From 17f688de63d600c7bfd1ac211418c73db1a481c0 Mon Sep 17 00:00:00 2001 From: Ronan Jouchet Date: Fri, 15 Jan 2021 21:50:07 -0500 Subject: [PATCH] Get rid of lodash --- package.json | 2 -- src/build/prepareElectronApp.ts | 3 +-- src/infer/inferUserAgent.ts | 24 ++++++++++++++++++------ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 9e54d5c..2a053ca 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,6 @@ }, "dependencies": { "@types/cheerio": "0.x", - "@types/lodash": "4.x", "@types/ncp": "2.x", "@types/node": "10.x", "@types/page-icon": "0.x", @@ -66,7 +65,6 @@ "electron-packager": "15.x", "gitcloud": "0.x", "hasbin": "1.x", - "lodash": "4.x", "loglevel": "1.x", "ncp": "2.x", "page-icon": "0.x", diff --git a/src/build/prepareElectronApp.ts b/src/build/prepareElectronApp.ts index 5afa9da..fef9260 100644 --- a/src/build/prepareElectronApp.ts +++ b/src/build/prepareElectronApp.ts @@ -3,7 +3,6 @@ import * as crypto from 'crypto'; import * as path from 'path'; import { promisify } from 'util'; -import { kebabCase } from 'lodash'; import * as log from 'loglevel'; import { copyFileOrDir } from '../helpers/helpers'; @@ -106,7 +105,7 @@ function normalizeAppName(appName: string, url: string): string { const hash = crypto.createHash('md5'); hash.update(url); const postFixHash = hash.digest('hex').substring(0, 6); - const normalized = kebabCase(appName.toLowerCase()); + const normalized = appName.toLowerCase().replace(/[\s_]/g, '-'); return `${normalized}-nativefier-${postFixHash}`; } diff --git a/src/infer/inferUserAgent.ts b/src/infer/inferUserAgent.ts index 4213e89..95968a4 100644 --- a/src/infer/inferUserAgent.ts +++ b/src/infer/inferUserAgent.ts @@ -1,10 +1,22 @@ -import * as _ from 'lodash'; import axios from 'axios'; import * as log from 'loglevel'; import { DEFAULT_CHROME_VERSION } from '../constants'; const ELECTRON_VERSIONS_URL = 'https://atom.io/download/atom-shell/index.json'; +type ElectronRelease = { + version: string; + date: string; + node: string; + v8: string; + uv: string; + zlib: string; + openssl: string; + modules: string; + chrome: string; + files: string[]; +}; + async function getChromeVersionForElectronVersion( electronVersion: string, url = ELECTRON_VERSIONS_URL, @@ -14,11 +26,11 @@ async function getChromeVersionForElectronVersion( if (response.status !== 200) { throw new Error(`Bad request: Status code ${response.status}`); } - const { data } = response; - const electronVersionToChromeVersion: _.Dictionary = _.zipObject( - data.map((d) => d.version), - data.map((d) => d.chrome), - ); + const electronReleases: ElectronRelease[] = response.data; + const electronVersionToChromeVersion: { [key: string]: string } = {}; + for (const release of electronReleases) { + electronVersionToChromeVersion[release.version] = release.chrome; + } if (!(electronVersion in electronVersionToChromeVersion)) { throw new Error( `Electron version '${electronVersion}' not found in retrieved version list!`,