mirror of
				https://gitee.com/onvia/ccc-tnt-psd2ui
				synced 2025-11-04 05:17:44 +00:00 
			
		
		
		
	支持 mac
This commit is contained in:
		
							
								
								
									
										69
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/file.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/file.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
 | 
			
		||||
const u = require('universalify').fromCallback
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const fs = require('graceful-fs')
 | 
			
		||||
const mkdir = require('../mkdirs')
 | 
			
		||||
 | 
			
		||||
function createFile (file, callback) {
 | 
			
		||||
  function makeFile () {
 | 
			
		||||
    fs.writeFile(file, '', err => {
 | 
			
		||||
      if (err) return callback(err)
 | 
			
		||||
      callback()
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err
 | 
			
		||||
    if (!err && stats.isFile()) return callback()
 | 
			
		||||
    const dir = path.dirname(file)
 | 
			
		||||
    fs.stat(dir, (err, stats) => {
 | 
			
		||||
      if (err) {
 | 
			
		||||
        // if the directory doesn't exist, make it
 | 
			
		||||
        if (err.code === 'ENOENT') {
 | 
			
		||||
          return mkdir.mkdirs(dir, err => {
 | 
			
		||||
            if (err) return callback(err)
 | 
			
		||||
            makeFile()
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
        return callback(err)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (stats.isDirectory()) makeFile()
 | 
			
		||||
      else {
 | 
			
		||||
        // parent is not a directory
 | 
			
		||||
        // This is just to cause an internal ENOTDIR error to be thrown
 | 
			
		||||
        fs.readdir(dir, err => {
 | 
			
		||||
          if (err) return callback(err)
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function createFileSync (file) {
 | 
			
		||||
  let stats
 | 
			
		||||
  try {
 | 
			
		||||
    stats = fs.statSync(file)
 | 
			
		||||
  } catch {}
 | 
			
		||||
  if (stats && stats.isFile()) return
 | 
			
		||||
 | 
			
		||||
  const dir = path.dirname(file)
 | 
			
		||||
  try {
 | 
			
		||||
    if (!fs.statSync(dir).isDirectory()) {
 | 
			
		||||
      // parent is not a directory
 | 
			
		||||
      // This is just to cause an internal ENOTDIR error to be thrown
 | 
			
		||||
      fs.readdirSync(dir)
 | 
			
		||||
    }
 | 
			
		||||
  } catch (err) {
 | 
			
		||||
    // If the stat call above failed because the directory doesn't exist, create it
 | 
			
		||||
    if (err && err.code === 'ENOENT') mkdir.mkdirsSync(dir)
 | 
			
		||||
    else throw err
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  fs.writeFileSync(file, '')
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  createFile: u(createFile),
 | 
			
		||||
  createFileSync
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/index.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
 | 
			
		||||
const { createFile, createFileSync } = require('./file')
 | 
			
		||||
const { createLink, createLinkSync } = require('./link')
 | 
			
		||||
const { createSymlink, createSymlinkSync } = require('./symlink')
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  // file
 | 
			
		||||
  createFile,
 | 
			
		||||
  createFileSync,
 | 
			
		||||
  ensureFile: createFile,
 | 
			
		||||
  ensureFileSync: createFileSync,
 | 
			
		||||
  // link
 | 
			
		||||
  createLink,
 | 
			
		||||
  createLinkSync,
 | 
			
		||||
  ensureLink: createLink,
 | 
			
		||||
  ensureLinkSync: createLinkSync,
 | 
			
		||||
  // symlink
 | 
			
		||||
  createSymlink,
 | 
			
		||||
  createSymlinkSync,
 | 
			
		||||
  ensureSymlink: createSymlink,
 | 
			
		||||
  ensureSymlinkSync: createSymlinkSync
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										64
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/link.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/link.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
 | 
			
		||||
const u = require('universalify').fromCallback
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const fs = require('graceful-fs')
 | 
			
		||||
const mkdir = require('../mkdirs')
 | 
			
		||||
const pathExists = require('../path-exists').pathExists
 | 
			
		||||
const { areIdentical } = require('../util/stat')
 | 
			
		||||
 | 
			
		||||
function createLink (srcpath, dstpath, callback) {
 | 
			
		||||
  function makeLink (srcpath, dstpath) {
 | 
			
		||||
    fs.link(srcpath, dstpath, err => {
 | 
			
		||||
      if (err) return callback(err)
 | 
			
		||||
      callback(null)
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  fs.lstat(dstpath, (_, dstStat) => {
 | 
			
		||||
    fs.lstat(srcpath, (err, srcStat) => {
 | 
			
		||||
      if (err) {
 | 
			
		||||
        err.message = err.message.replace('lstat', 'ensureLink')
 | 
			
		||||
        return callback(err)
 | 
			
		||||
      }
 | 
			
		||||
      if (dstStat && areIdentical(srcStat, dstStat)) return callback(null)
 | 
			
		||||
 | 
			
		||||
      const dir = path.dirname(dstpath)
 | 
			
		||||
      pathExists(dir, (err, dirExists) => {
 | 
			
		||||
        if (err) return callback(err)
 | 
			
		||||
        if (dirExists) return makeLink(srcpath, dstpath)
 | 
			
		||||
        mkdir.mkdirs(dir, err => {
 | 
			
		||||
          if (err) return callback(err)
 | 
			
		||||
          makeLink(srcpath, dstpath)
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function createLinkSync (srcpath, dstpath) {
 | 
			
		||||
  let dstStat
 | 
			
		||||
  try {
 | 
			
		||||
    dstStat = fs.lstatSync(dstpath)
 | 
			
		||||
  } catch {}
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    const srcStat = fs.lstatSync(srcpath)
 | 
			
		||||
    if (dstStat && areIdentical(srcStat, dstStat)) return
 | 
			
		||||
  } catch (err) {
 | 
			
		||||
    err.message = err.message.replace('lstat', 'ensureLink')
 | 
			
		||||
    throw err
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const dir = path.dirname(dstpath)
 | 
			
		||||
  const dirExists = fs.existsSync(dir)
 | 
			
		||||
  if (dirExists) return fs.linkSync(srcpath, dstpath)
 | 
			
		||||
  mkdir.mkdirsSync(dir)
 | 
			
		||||
 | 
			
		||||
  return fs.linkSync(srcpath, dstpath)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  createLink: u(createLink),
 | 
			
		||||
  createLinkSync
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										99
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/symlink-paths.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/symlink-paths.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const fs = require('graceful-fs')
 | 
			
		||||
const pathExists = require('../path-exists').pathExists
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Function that returns two types of paths, one relative to symlink, and one
 | 
			
		||||
 * relative to the current working directory. Checks if path is absolute or
 | 
			
		||||
 * relative. If the path is relative, this function checks if the path is
 | 
			
		||||
 * relative to symlink or relative to current working directory. This is an
 | 
			
		||||
 * initiative to find a smarter `srcpath` to supply when building symlinks.
 | 
			
		||||
 * This allows you to determine which path to use out of one of three possible
 | 
			
		||||
 * types of source paths. The first is an absolute path. This is detected by
 | 
			
		||||
 * `path.isAbsolute()`. When an absolute path is provided, it is checked to
 | 
			
		||||
 * see if it exists. If it does it's used, if not an error is returned
 | 
			
		||||
 * (callback)/ thrown (sync). The other two options for `srcpath` are a
 | 
			
		||||
 * relative url. By default Node's `fs.symlink` works by creating a symlink
 | 
			
		||||
 * using `dstpath` and expects the `srcpath` to be relative to the newly
 | 
			
		||||
 * created symlink. If you provide a `srcpath` that does not exist on the file
 | 
			
		||||
 * system it results in a broken symlink. To minimize this, the function
 | 
			
		||||
 * checks to see if the 'relative to symlink' source file exists, and if it
 | 
			
		||||
 * does it will use it. If it does not, it checks if there's a file that
 | 
			
		||||
 * exists that is relative to the current working directory, if does its used.
 | 
			
		||||
 * This preserves the expectations of the original fs.symlink spec and adds
 | 
			
		||||
 * the ability to pass in `relative to current working direcotry` paths.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
function symlinkPaths (srcpath, dstpath, callback) {
 | 
			
		||||
  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)
 | 
			
		||||
          })
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function symlinkPathsSync (srcpath, dstpath) {
 | 
			
		||||
  let exists
 | 
			
		||||
  if (path.isAbsolute(srcpath)) {
 | 
			
		||||
    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)
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  symlinkPaths,
 | 
			
		||||
  symlinkPathsSync
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/symlink-type.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/symlink-type.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
 | 
			
		||||
const fs = require('graceful-fs')
 | 
			
		||||
 | 
			
		||||
function symlinkType (srcpath, type, callback) {
 | 
			
		||||
  callback = (typeof type === 'function') ? type : callback
 | 
			
		||||
  type = (typeof type === 'function') ? false : type
 | 
			
		||||
  if (type) return callback(null, type)
 | 
			
		||||
  fs.lstat(srcpath, (err, stats) => {
 | 
			
		||||
    if (err) return callback(null, 'file')
 | 
			
		||||
    type = (stats && stats.isDirectory()) ? 'dir' : 'file'
 | 
			
		||||
    callback(null, type)
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function symlinkTypeSync (srcpath, type) {
 | 
			
		||||
  let stats
 | 
			
		||||
 | 
			
		||||
  if (type) return type
 | 
			
		||||
  try {
 | 
			
		||||
    stats = fs.lstatSync(srcpath)
 | 
			
		||||
  } catch {
 | 
			
		||||
    return 'file'
 | 
			
		||||
  }
 | 
			
		||||
  return (stats && stats.isDirectory()) ? 'dir' : 'file'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  symlinkType,
 | 
			
		||||
  symlinkTypeSync
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										82
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/symlink.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								npm-packages/mac-v3.4.+/fs-extra/lib/ensure/symlink.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,82 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
 | 
			
		||||
const u = require('universalify').fromCallback
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const fs = require('../fs')
 | 
			
		||||
const _mkdirs = require('../mkdirs')
 | 
			
		||||
const mkdirs = _mkdirs.mkdirs
 | 
			
		||||
const mkdirsSync = _mkdirs.mkdirsSync
 | 
			
		||||
 | 
			
		||||
const _symlinkPaths = require('./symlink-paths')
 | 
			
		||||
const symlinkPaths = _symlinkPaths.symlinkPaths
 | 
			
		||||
const symlinkPathsSync = _symlinkPaths.symlinkPathsSync
 | 
			
		||||
 | 
			
		||||
const _symlinkType = require('./symlink-type')
 | 
			
		||||
const symlinkType = _symlinkType.symlinkType
 | 
			
		||||
const symlinkTypeSync = _symlinkType.symlinkTypeSync
 | 
			
		||||
 | 
			
		||||
const pathExists = require('../path-exists').pathExists
 | 
			
		||||
 | 
			
		||||
const { areIdentical } = require('../util/stat')
 | 
			
		||||
 | 
			
		||||
function createSymlink (srcpath, dstpath, type, callback) {
 | 
			
		||||
  callback = (typeof type === 'function') ? type : callback
 | 
			
		||||
  type = (typeof type === 'function') ? false : type
 | 
			
		||||
 | 
			
		||||
  fs.lstat(dstpath, (err, stats) => {
 | 
			
		||||
    if (!err && stats.isSymbolicLink()) {
 | 
			
		||||
      Promise.all([
 | 
			
		||||
        fs.stat(srcpath),
 | 
			
		||||
        fs.stat(dstpath)
 | 
			
		||||
      ]).then(([srcStat, dstStat]) => {
 | 
			
		||||
        if (areIdentical(srcStat, dstStat)) return callback(null)
 | 
			
		||||
        _createSymlink(srcpath, dstpath, type, callback)
 | 
			
		||||
      })
 | 
			
		||||
    } else _createSymlink(srcpath, dstpath, type, callback)
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function _createSymlink (srcpath, dstpath, type, callback) {
 | 
			
		||||
  symlinkPaths(srcpath, dstpath, (err, relative) => {
 | 
			
		||||
    if (err) return callback(err)
 | 
			
		||||
    srcpath = relative.toDst
 | 
			
		||||
    symlinkType(relative.toCwd, type, (err, type) => {
 | 
			
		||||
      if (err) return callback(err)
 | 
			
		||||
      const dir = path.dirname(dstpath)
 | 
			
		||||
      pathExists(dir, (err, dirExists) => {
 | 
			
		||||
        if (err) return callback(err)
 | 
			
		||||
        if (dirExists) return fs.symlink(srcpath, dstpath, type, callback)
 | 
			
		||||
        mkdirs(dir, err => {
 | 
			
		||||
          if (err) return callback(err)
 | 
			
		||||
          fs.symlink(srcpath, dstpath, type, callback)
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function createSymlinkSync (srcpath, dstpath, type) {
 | 
			
		||||
  let stats
 | 
			
		||||
  try {
 | 
			
		||||
    stats = fs.lstatSync(dstpath)
 | 
			
		||||
  } catch {}
 | 
			
		||||
  if (stats && stats.isSymbolicLink()) {
 | 
			
		||||
    const srcStat = fs.statSync(srcpath)
 | 
			
		||||
    const dstStat = fs.statSync(dstpath)
 | 
			
		||||
    if (areIdentical(srcStat, dstStat)) return
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const relative = symlinkPathsSync(srcpath, dstpath)
 | 
			
		||||
  srcpath = relative.toDst
 | 
			
		||||
  type = symlinkTypeSync(relative.toCwd, type)
 | 
			
		||||
  const dir = path.dirname(dstpath)
 | 
			
		||||
  const exists = fs.existsSync(dir)
 | 
			
		||||
  if (exists) return fs.symlinkSync(srcpath, dstpath, type)
 | 
			
		||||
  mkdirsSync(dir)
 | 
			
		||||
  return fs.symlinkSync(srcpath, dstpath, type)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  createSymlink: u(createSymlink),
 | 
			
		||||
  createSymlinkSync
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user