mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-05 07:29:31 +08:00
49 lines
No EOL
1 KiB
Text
49 lines
No EOL
1 KiB
Text
import * as fs from 'graceful-fs';
|
|
import resolvePath from '../utils/resolvePath';
|
|
|
|
function normaliseArguments ( args ) {
|
|
const len = args.length;
|
|
|
|
let buildingPath = true;
|
|
let pathargs = [];
|
|
let normalised = [ null ]; // null is a placeholder for the resolved path
|
|
let i;
|
|
|
|
for ( i = 0; i < len; i += 1 ) {
|
|
if ( buildingPath && typeof args[i] === 'string' ) {
|
|
pathargs[i] = args[i];
|
|
} else {
|
|
buildingPath = false;
|
|
normalised.push( args[i] );
|
|
}
|
|
}
|
|
|
|
normalised[0] = resolvePath( pathargs );
|
|
|
|
return normalised;
|
|
}
|
|
|
|
export function asyncMethod ( methodName ) {
|
|
return function () {
|
|
const args = normaliseArguments( arguments );
|
|
|
|
return new Promise( ( fulfil, reject ) => {
|
|
args.push( ( err, result ) => {
|
|
if ( err ) {
|
|
reject( err );
|
|
} else {
|
|
fulfil( result );
|
|
}
|
|
});
|
|
|
|
fs[ methodName ].apply( fs, args );
|
|
});
|
|
};
|
|
}
|
|
|
|
export function syncMethod ( methodName ) {
|
|
return function () {
|
|
const args = normaliseArguments( arguments );
|
|
return fs[ methodName ].apply( fs, args );
|
|
};
|
|
} |