diff --git a/build.js b/build.js index 1afcb1f..0dfd1a9 100644 --- a/build.js +++ b/build.js @@ -1,7 +1,6 @@ 'use strict'; -const fs = require('fs'); -const extra = require('fs-extra'); +const fs = require('@npmcli/fs') const util = require('util'); const exec = util.promisify(require('child_process').exec); const zaf = require('zip-a-folder'); @@ -13,8 +12,8 @@ const BROWSERS = { 'Chromium': 'manifest_chromium.json', }; -function adjustManifest(manifest) { - const manifestFile = fs.readFileSync(DEFAULT, 'utf8'); +async function adjustManifest(manifest) { + const manifestFile = await fs.readFile(DEFAULT, { encoding: 'utf8' }); const data = JSON.parse(manifestFile); const browser = manifest.substring(manifest.indexOf('_') + 1, manifest.indexOf('.')); @@ -30,7 +29,7 @@ function adjustManifest(manifest) { delete data['applications']; } - fs.writeFileSync(manifest, JSON.stringify(data, null, 4)); + await fs.writeFile(manifest, JSON.stringify(data, null, 4)); return `keepassxc-browser_${data['version']}_${browser}.zip`; } @@ -42,15 +41,20 @@ async function updateTranslations() { (async() => { await updateTranslations(); - fs.copyFileSync(`${DEST}/manifest.json`, `./${DEFAULT}`); + await fs.copyFile(`${DEST}/manifest.json`, `./${DEFAULT}`); for (const browser in BROWSERS) { console.log(`KeePassXC-Browser: Creating extension package for ${browser}`); - const fileName = adjustManifest(BROWSERS[browser]); - fs.copyFileSync(BROWSERS[browser], `${DEST}/manifest.json`); - extra.removeSync(fileName); + + const fileName = await adjustManifest(BROWSERS[browser]); + await fs.copyFile(BROWSERS[browser], `${DEST}/manifest.json`); + + if (await fs.exists(fileName)) { + await fs.rm(fileName); + } + await zaf.zip(DEST, fileName); - extra.removeSync(BROWSERS[browser]); + await fs.rm(BROWSERS[browser], { recursive: true }); console.log('Done'); } diff --git a/package-lock.json b/package-lock.json index 470b477..bc6c22b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1206,9 +1206,9 @@ } }, "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dependencies": { "lodash": "^4.17.14" } @@ -5147,9 +5147,9 @@ } }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "requires": { "lodash": "^4.17.14" } diff --git a/package.json b/package.json index 5d211f0..c637544 100644 --- a/package.json +++ b/package.json @@ -10,9 +10,9 @@ "eslint-plugin-import": "^2.24.2" }, "dependencies": { - "file-url": "^3.0.0", - "fs-extra": "^8.1.0", - "zip-a-folder": "0.0.12" + "@npmcli/fs": "^2.1.0", + "file-url": "^4.0.0", + "zip-a-folder": "^1.1.3" }, "scripts": { "build": "node build.js",