summaryrefslogtreecommitdiff
path: root/node_modules/fs-extra/lib/ensure/symlink-paths.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-12-21 22:46:53 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-12-21 22:46:53 +0800
commitf06956efd2dc4bf77244a9fcce2b883a00b925af (patch)
tree0123cb73ce67f1f4b17e1d6cbabff076ee44e31b /node_modules/fs-extra/lib/ensure/symlink-paths.js
parent8d980c13970c15b6d2312b6fc4ac51698dd0d220 (diff)
updated node modules
Diffstat (limited to 'node_modules/fs-extra/lib/ensure/symlink-paths.js')
-rw-r--r--node_modules/fs-extra/lib/ensure/symlink-paths.js112
1 files changed, 57 insertions, 55 deletions
diff --git a/node_modules/fs-extra/lib/ensure/symlink-paths.js b/node_modules/fs-extra/lib/ensure/symlink-paths.js
index 33cd7600..85dda475 100644
--- a/node_modules/fs-extra/lib/ensure/symlink-paths.js
+++ b/node_modules/fs-extra/lib/ensure/symlink-paths.js
@@ -1,8 +1,10 @@
'use strict'
const path = require('path')
-const fs = require('graceful-fs')
-const pathExists = require('../path-exists').pathExists
+const fs = require('../fs')
+const { pathExists } = require('../path-exists')
+
+const u = require('universalify').fromPromise
/**
* Function that returns two types of paths, one relative to symlink, and one
@@ -26,74 +28,74 @@ const pathExists = require('../path-exists').pathExists
* the ability to pass in `relative to current working direcotry` paths.
*/
-function symlinkPaths (srcpath, dstpath, callback) {
+async function symlinkPaths (srcpath, dstpath) {
if (path.isAbsolute(srcpath)) {
- return fs.lstat(srcpath, (err) => {
- if (err) {
- err.message = err.message.replace('lstat', 'ensureSymlink')
- return callback(err)
- }
- return callback(null, {
- toCwd: srcpath,
- toDst: srcpath
- })
- })
- } else {
- const dstdir = path.dirname(dstpath)
- const relativeToDst = path.join(dstdir, srcpath)
- return pathExists(relativeToDst, (err, exists) => {
- if (err) return callback(err)
- if (exists) {
- return callback(null, {
- toCwd: relativeToDst,
- toDst: srcpath
- })
- } else {
- return fs.lstat(srcpath, (err) => {
- if (err) {
- err.message = err.message.replace('lstat', 'ensureSymlink')
- return callback(err)
- }
- return callback(null, {
- toCwd: srcpath,
- toDst: path.relative(dstdir, srcpath)
- })
- })
- }
- })
+ try {
+ await fs.lstat(srcpath)
+ } catch (err) {
+ err.message = err.message.replace('lstat', 'ensureSymlink')
+ throw err
+ }
+
+ return {
+ toCwd: srcpath,
+ toDst: srcpath
+ }
+ }
+
+ const dstdir = path.dirname(dstpath)
+ const relativeToDst = path.join(dstdir, srcpath)
+
+ const exists = await pathExists(relativeToDst)
+ if (exists) {
+ return {
+ toCwd: relativeToDst,
+ toDst: srcpath
+ }
+ }
+
+ try {
+ await fs.lstat(srcpath)
+ } catch (err) {
+ err.message = err.message.replace('lstat', 'ensureSymlink')
+ throw err
+ }
+
+ return {
+ toCwd: srcpath,
+ toDst: path.relative(dstdir, srcpath)
}
}
function symlinkPathsSync (srcpath, dstpath) {
- let exists
if (path.isAbsolute(srcpath)) {
- exists = fs.existsSync(srcpath)
+ const exists = fs.existsSync(srcpath)
if (!exists) throw new Error('absolute srcpath does not exist')
return {
toCwd: srcpath,
toDst: srcpath
}
- } else {
- const dstdir = path.dirname(dstpath)
- const relativeToDst = path.join(dstdir, srcpath)
- exists = fs.existsSync(relativeToDst)
- if (exists) {
- return {
- toCwd: relativeToDst,
- toDst: srcpath
- }
- } else {
- exists = fs.existsSync(srcpath)
- if (!exists) throw new Error('relative srcpath does not exist')
- return {
- toCwd: srcpath,
- toDst: path.relative(dstdir, srcpath)
- }
+ }
+
+ const dstdir = path.dirname(dstpath)
+ const relativeToDst = path.join(dstdir, srcpath)
+ const exists = fs.existsSync(relativeToDst)
+ if (exists) {
+ return {
+ toCwd: relativeToDst,
+ toDst: srcpath
}
}
+
+ const srcExists = fs.existsSync(srcpath)
+ if (!srcExists) throw new Error('relative srcpath does not exist')
+ return {
+ toCwd: srcpath,
+ toDst: path.relative(dstdir, srcpath)
+ }
}
module.exports = {
- symlinkPaths,
+ symlinkPaths: u(symlinkPaths),
symlinkPathsSync
}