Spaces:
Running
Running
const fs = require('fs/promises') | |
const getOptions = require('../common/get-options.js') | |
const node = require('../common/node.js') | |
const polyfill = require('./polyfill.js') | |
// node 16.7.0 added fs.cp | |
const useNative = node.satisfies('>=16.7.0') | |
const cp = async (src, dest, opts) => { | |
const options = getOptions(opts, { | |
copy: ['dereference', 'errorOnExist', 'filter', 'force', 'preserveTimestamps', 'recursive'], | |
}) | |
// the polyfill is tested separately from this module, no need to hack | |
// process.version to try to trigger it just for coverage | |
// istanbul ignore next | |
return useNative | |
? fs.cp(src, dest, options) | |
: polyfill(src, dest, options) | |
} | |
module.exports = cp | |