Urara-Blog/node_modules/.pnpm-store/v3/files/dc/68b3fd7260953e43eb94d9280538c0804c35f89a78589dd5bd516e5dac807f769eb034d70a6275ba374b2bb1af8251f4d32280fe43efeb9dba7f6870e0cbba
2022-08-14 01:14:53 +08:00

47 lines
No EOL
1.2 KiB
Text

import * as fs from 'graceful-fs';
import { dirname } from 'path';
import mkdirp from 'mkdirp';
import resolvePathAndOptions from '../utils/resolvePathAndOptions';
export function copyFile () {
const { resolvedPath: src, options: readOptions } = resolvePathAndOptions( arguments );
return {
to () {
const { resolvedPath: dest, options: writeOptions } = resolvePathAndOptions( arguments );
return new Promise( ( fulfil, reject ) => {
mkdirp( dirname( dest ), err => {
if ( err ) {
reject( err );
} else {
const readStream = fs.createReadStream( src, readOptions );
const writeStream = fs.createWriteStream( dest, writeOptions );
readStream.on( 'error', reject );
writeStream.on( 'error', reject );
writeStream.on( 'close', fulfil );
readStream.pipe( writeStream );
}
});
});
}
};
}
export function copyFileSync () {
const { resolvedPath: src, options: readOptions } = resolvePathAndOptions( arguments );
return {
to () {
const { resolvedPath: dest, options: writeOptions } = resolvePathAndOptions( arguments );
const data = fs.readFileSync( src, readOptions );
mkdirp.sync( dirname( dest ) );
fs.writeFileSync( dest, data, writeOptions );
}
};
}