mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-01 12:09:30 +08:00
53 lines
No EOL
1.1 KiB
Text
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 );
|
|
}
|
|
};
|
|
};
|
|
} |