File size: 970 Bytes
bc20498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import { dirname } from 'path';
import * as fs from 'graceful-fs';
import mkdirp from 'mkdirp';
import resolvePath from '../utils/resolvePath';
import resolvePathAndOptions from '../utils/resolvePathAndOptions';

export function symlink () {
	const src = resolvePath( arguments );

	return {
		to () {
			const { options, resolvedPath: dest } = resolvePathAndOptions( arguments );

			return new Promise( ( fulfil, reject ) => {
				mkdirp( dirname( dest ), err => {
					if ( err ) {
						reject( err );
					} else {
						fs.symlink( src, dest, options.type, err => {
							if ( err ) {
								reject( err );
							} else {
								fulfil();
							}
						});
					}
				});
			});
		}
	};
}

export function symlinkSync () {
	const src = resolvePath( arguments );

	return {
		to () {
			const { options, resolvedPath: dest } = resolvePathAndOptions( arguments );
			mkdirp.sync( dirname( dest ) );
			return fs.symlinkSync( src, dest, options.type );
		}
	};
}