Urara-Blog/node_modules/.pnpm-store/v3/files/3b/a00ab9a0963bb0ac4e456a19cda409a2bccdca2ea14dbb22b9d32c82c4be89356e462833c6b61e95aea0dc0f98aabaad702ff8ed6fff8ada06c6020421d1cc
2022-08-14 01:14:53 +08:00

53 lines
No EOL
1.1 KiB
Text

import * as fs from 'graceful-fs';
import { dirname } from 'path';
import mkdirp from 'mkdirp';
import resolvePath from '../utils/resolvePath';
export const rename = asyncMethod( 'rename' );
export const link = asyncMethod( 'link' );
export const renameSync = syncMethod( 'renameSync' );
export const linkSync = syncMethod( 'linkSync' );
function asyncMethod ( methodName ) {
return function () {
const src = resolvePath( arguments );
return {
to () {
const dest = resolvePath( arguments );
return new Promise( ( fulfil, reject ) => {
mkdirp( dirname( dest ), err => {
if ( err ) {
reject( err );
} else {
fs[ methodName ]( src, dest, err => {
if ( err ) {
reject( err );
} else {
fulfil();
}
});
}
});
});
}
};
};
}
function syncMethod ( methodName ) {
return function () {
const src = resolvePath( arguments );
return {
to () {
const dest = resolvePath( arguments );
mkdirp.sync( dirname( dest ) );
return fs[ methodName ]( src, dest );
}
};
};
}