Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yml2
-rw-r--r--lib/shrinkwrap.js4
-rw-r--r--lib/utils/reify-finish.js4
-rw-r--r--test/lib/shrinkwrap.js8
-rw-r--r--test/lib/utils/reify-finish.js10
5 files changed, 24 insertions, 4 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 939f295e9..851b3fdcb 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -41,7 +41,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- node-version: [10.x, 12.x, 14.x]
+ node-version: ['10.1', 10.x, '12.1', 12.x, '14.1', 14.x]
platform:
- os: ubuntu-latest
shell: bash
diff --git a/lib/shrinkwrap.js b/lib/shrinkwrap.js
index 74e129297..60e49f3c8 100644
--- a/lib/shrinkwrap.js
+++ b/lib/shrinkwrap.js
@@ -1,5 +1,7 @@
const { resolve, basename } = require('path')
-const { promises: { unlink } } = require('fs')
+const util = require('util')
+const fs = require('fs')
+const { unlink } = fs.promises || util.promisify(fs.unlink)
const Arborist = require('@npmcli/arborist')
const log = require('npmlog')
diff --git a/lib/utils/reify-finish.js b/lib/utils/reify-finish.js
index 76dba06cb..9c95e9fcf 100644
--- a/lib/utils/reify-finish.js
+++ b/lib/utils/reify-finish.js
@@ -1,7 +1,9 @@
const reifyOutput = require('./reify-output.js')
const npm = require('../npm.js')
const ini = require('ini')
-const {writeFile} = require('fs').promises
+const util = require('util')
+const fs = require('fs')
+const { writeFile } = fs.promises || { writeFile: util.promisify(fs.writeFile) }
const {resolve} = require('path')
const reifyFinish = async arb => {
diff --git a/test/lib/shrinkwrap.js b/test/lib/shrinkwrap.js
index 65b16b147..ed8fd329c 100644
--- a/test/lib/shrinkwrap.js
+++ b/test/lib/shrinkwrap.js
@@ -1,4 +1,5 @@
const t = require('tap')
+const fs = require('fs')
const requireInject = require('require-inject')
const npm = {
@@ -327,3 +328,10 @@ t.test('shrinkwrap --global', t => {
t.end()
})
})
+
+t.test('works without fs.promises', async t => {
+ t.doesNotThrow(() => requireInject('../../lib/shrinkwrap.js', {
+ ...mocks,
+ fs: { ...fs, promises: null },
+ }))
+})
diff --git a/test/lib/utils/reify-finish.js b/test/lib/utils/reify-finish.js
index d6c7d2e7b..39277f21a 100644
--- a/test/lib/utils/reify-finish.js
+++ b/test/lib/utils/reify-finish.js
@@ -20,7 +20,7 @@ let expectWrite = false
const realFs = require('fs')
const fs = {
...realFs,
- promises: {
+ promises: realFs.promises && {
...realFs.promises,
writeFile: async (path, data) => {
if (!expectWrite)
@@ -78,3 +78,11 @@ t.test('should write if everything above passes', async t => {
const data = fs.readFileSync(`${path}/npmrc`, 'utf8').replace(/\r\n/g, '\n')
t.matchSnapshot(data, 'written config')
})
+
+t.test('works without fs.promises', async t => {
+ t.doesNotThrow(() => requireInject('../../../lib/utils/reify-finish.js', {
+ fs: { ...fs, promises: null },
+ '../../../lib/npm.js': npm,
+ '../../../lib/utils/reify-output.js': reifyOutput,
+ }))
+})