0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-04-15 03:02:51 -05:00

fix: improve support for fs promises older nodejs (#3570)

* fix: improve support for fs promises older nodejs

* second try with fallback for nodejs18
This commit is contained in:
Juan Picado 2023-01-22 09:48:04 +01:00 committed by GitHub
parent 1ca60b1b4d
commit ef88da3b47
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 60 additions and 41 deletions

View file

@ -0,0 +1,18 @@
---
'@verdaccio/api': minor
'@verdaccio/config': minor
'@verdaccio/core': minor
'@verdaccio/file-locking': minor
'@verdaccio/tarball': minor
'@verdaccio/types': minor
'@verdaccio/url': minor
'@verdaccio/hooks': minor
'@verdaccio/loaders': minor
'@verdaccio/logger': minor
'@verdaccio/logger-prettify': minor
'@verdaccio/local-storage': minor
'@verdaccio/utils': minor
'verdaccio': minor
---
feat: improve support for fs promises older nodejs

View file

@ -16,7 +16,7 @@ import { buildToken, generateRandomHexString } from '@verdaccio/utils';
import apiMiddleware from '../../src'; import apiMiddleware from '../../src';
setup(); setup({});
export const getConf = (conf) => { export const getConf = (conf) => {
const configPath = path.join(__dirname, 'config', conf); const configPath = path.join(__dirname, 'config', conf);

View file

@ -26,8 +26,7 @@
"verdaccio" "verdaccio"
], ],
"engines": { "engines": {
"node": ">=14", "node": ">=12"
"npm": ">=6"
}, },
"scripts": { "scripts": {
"clean": "rimraf ./build", "clean": "rimraf ./build",

View file

@ -1,4 +1,4 @@
import { writeFile } from 'fs/promises'; import fs from 'fs';
import path from 'path'; import path from 'path';
import { fileUtils } from '@verdaccio/core'; import { fileUtils } from '@verdaccio/core';
@ -6,6 +6,8 @@ import { fileUtils } from '@verdaccio/core';
import { fromJStoYAML, parseConfigFile } from '../src'; import { fromJStoYAML, parseConfigFile } from '../src';
import { parseConfigurationFile } from './utils'; import { parseConfigurationFile } from './utils';
const { writeFile } = fs.promises ? fs.promises : require('fs/promises');
describe('parse', () => { describe('parse', () => {
describe('parseConfigFile', () => { describe('parseConfigFile', () => {
describe('JSON format', () => { describe('JSON format', () => {

View file

@ -19,8 +19,7 @@
"license": "MIT", "license": "MIT",
"homepage": "https://verdaccio.org", "homepage": "https://verdaccio.org",
"engines": { "engines": {
"node": ">=14", "node": ">=12"
"npm": ">=6"
}, },
"repository": { "repository": {
"type": "https", "type": "https",

View file

@ -1,4 +1,4 @@
import { mkdir, mkdtemp } from 'fs/promises'; import fs from 'fs';
import os from 'os'; import os from 'os';
import path from 'path'; import path from 'path';
@ -6,6 +6,8 @@ export const Files = {
DatabaseName: '.verdaccio-db.json', DatabaseName: '.verdaccio-db.json',
}; };
const { mkdir, mkdtemp } = fs.promises ? fs.promises : require('fs/promises');
/** /**
* Create a temporary folder. * Create a temporary folder.
* @param prefix The prefix of the folder name. * @param prefix The prefix of the folder name.

View file

@ -17,8 +17,7 @@
"license": "MIT", "license": "MIT",
"homepage": "https://verdaccio.org", "homepage": "https://verdaccio.org",
"engines": { "engines": {
"node": ">=14", "node": ">=12"
"npm": ">=6"
}, },
"repository": { "repository": {
"type": "https", "type": "https",

View file

@ -1,10 +1,12 @@
import fs from 'fs/promises'; import fs from 'fs';
import locker from 'lockfile'; import locker from 'lockfile';
import path from 'path'; import path from 'path';
import { promisify } from 'util'; import { promisify } from 'util';
export const readFile = fs.readFile; const fsP = fs.promises ? fs.promises : require('fs/promises');
const statPromise = fs.stat;
export const readFile = fsP.readFile;
const statPromise = fsP.stat;
// https://github.com/npm/lockfile/issues/33 // https://github.com/npm/lockfile/issues/33
const lfLock = promisify(locker.lock); const lfLock = promisify(locker.lock);
const lfUnlock = promisify(locker.unlock); const lfUnlock = promisify(locker.unlock);

View file

@ -19,8 +19,7 @@
"license": "MIT", "license": "MIT",
"homepage": "https://verdaccio.org", "homepage": "https://verdaccio.org",
"engines": { "engines": {
"node": ">=14", "node": ">=12"
"npm": ">=6"
}, },
"repository": { "repository": {
"type": "https", "type": "https",

View file

@ -17,8 +17,7 @@
"license": "MIT", "license": "MIT",
"homepage": "https://verdaccio.org", "homepage": "https://verdaccio.org",
"engines": { "engines": {
"node": ">=14", "node": ">=12"
"npm": ">=6"
}, },
"repository": { "repository": {
"type": "https", "type": "https",

View file

@ -19,8 +19,7 @@
"license": "MIT", "license": "MIT",
"homepage": "https://verdaccio.org", "homepage": "https://verdaccio.org",
"engines": { "engines": {
"node": ">=14", "node": ">=12"
"npm": ">=6"
}, },
"repository": { "repository": {
"type": "https", "type": "https",

View file

@ -26,8 +26,7 @@
"verdaccio" "verdaccio"
], ],
"engines": { "engines": {
"node": ">=14", "node": ">=16"
"npm": ">=6"
}, },
"dependencies": { "dependencies": {
"@verdaccio/core": "workspace:6.0.0-6-next.53", "@verdaccio/core": "workspace:6.0.0-6-next.53",

View file

@ -38,8 +38,7 @@
"verdaccio" "verdaccio"
], ],
"engines": { "engines": {
"node": ">=14", "node": ">=12"
"npm": ">=6"
}, },
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {

View file

@ -1,5 +1,5 @@
import buildDebug from 'debug'; import buildDebug from 'debug';
import { lstat } from 'fs/promises'; import fs from 'fs';
import { dirname, isAbsolute, join, resolve } from 'path'; import { dirname, isAbsolute, join, resolve } from 'path';
import { pluginUtils } from '@verdaccio/core'; import { pluginUtils } from '@verdaccio/core';
@ -10,6 +10,8 @@ import { PluginType, isES6, isValid, tryLoad } from './utils';
const debug = buildDebug('verdaccio:plugin:loader:async'); const debug = buildDebug('verdaccio:plugin:loader:async');
const { lstat } = fs.promises ? fs.promises : require('fs/promises');
async function isDirectory(pathFolder: string) { async function isDirectory(pathFolder: string) {
const stat = await lstat(pathFolder); const stat = await lstat(pathFolder);
return stat.isDirectory(); return stat.isDirectory();

View file

@ -26,8 +26,7 @@
"verdaccio" "verdaccio"
], ],
"engines": { "engines": {
"node": ">=14", "node": ">=12"
"npm": ">=6"
}, },
"scripts": { "scripts": {
"clean": "rimraf ./build", "clean": "rimraf ./build",

View file

@ -26,8 +26,7 @@
"verdaccio" "verdaccio"
], ],
"engines": { "engines": {
"node": ">=14", "node": ">=12"
"npm": ">=6"
}, },
"scripts": { "scripts": {
"clean": "rimraf ./build", "clean": "rimraf ./build",

View file

@ -1,16 +1,18 @@
import fsCallback from 'fs'; import fsCallback from 'fs';
import fs from 'fs/promises'; import fs from 'fs';
const readFile = fs.readFile; const fsP = fs.promises ? fs.promises : require('fs/promises');
const mkdirPromise = fs.mkdir;
const accessPromise = fs.access; const readFile = fsP.readFile;
const writeFilePromise = fs.writeFile; const mkdirPromise = fsP.mkdir;
const readdirPromise = fs.readdir; const accessPromise = fsP.access;
const statPromise = fs.stat; const writeFilePromise = fsP.writeFile;
const unlinkPromise = fs.unlink; const readdirPromise = fsP.readdir;
const rmdirPromise = fs.rmdir; const statPromise = fsP.stat;
const renamePromise = fs.rename; const unlinkPromise = fsP.unlink;
const openPromise = fs.open; const rmdirPromise = fsP.rmdir;
const renamePromise = fsP.rename;
const openPromise = fsP.open;
const readFilePromise = async (path) => { const readFilePromise = async (path) => {
return await readFile(path, 'utf8'); return await readFile(path, 'utf8');

View file

@ -26,8 +26,7 @@
"verdaccio" "verdaccio"
], ],
"engines": { "engines": {
"node": ">=14", "node": ">=12"
"npm": ">=6"
}, },
"dependencies": { "dependencies": {
"@verdaccio/core": "workspace:6.0.0-6-next.53", "@verdaccio/core": "workspace:6.0.0-6-next.53",

View file

@ -1,6 +1,6 @@
import { ChildProcess, fork } from 'child_process'; import { ChildProcess, fork } from 'child_process';
import buildDebug from 'debug'; import buildDebug from 'debug';
import { writeFile } from 'fs/promises'; import fs from 'fs';
import getPort from 'get-port'; import getPort from 'get-port';
import path from 'path'; import path from 'path';
@ -11,6 +11,8 @@ import { buildToken } from '@verdaccio/utils';
import { ServerQuery } from './request'; import { ServerQuery } from './request';
const { writeFile } = fs.promises ? fs.promises : require('fs/promises');
const buildAuthHeader = (token: string): string => { const buildAuthHeader = (token: string): string => {
return buildToken(TOKEN_BEARER, token); return buildToken(TOKEN_BEARER, token);
}; };