You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					63 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					63 lines
				
				1.0 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								
							 | 
						||
| 
								 | 
							
								var Promise = require('any-promise')
							 | 
						||
| 
								 | 
							
								var fs
							 | 
						||
| 
								 | 
							
								try {
							 | 
						||
| 
								 | 
							
								  fs = require('graceful-fs')
							 | 
						||
| 
								 | 
							
								} catch(err) {
							 | 
						||
| 
								 | 
							
								  fs = require('fs')
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var api = [
							 | 
						||
| 
								 | 
							
								  'appendFile',
							 | 
						||
| 
								 | 
							
								  'chmod',
							 | 
						||
| 
								 | 
							
								  'chown',
							 | 
						||
| 
								 | 
							
								  'close',
							 | 
						||
| 
								 | 
							
								  'fchmod',
							 | 
						||
| 
								 | 
							
								  'fchown',
							 | 
						||
| 
								 | 
							
								  'fdatasync',
							 | 
						||
| 
								 | 
							
								  'fstat',
							 | 
						||
| 
								 | 
							
								  'fsync',
							 | 
						||
| 
								 | 
							
								  'ftruncate',
							 | 
						||
| 
								 | 
							
								  'futimes',
							 | 
						||
| 
								 | 
							
								  'lchown',
							 | 
						||
| 
								 | 
							
								  'link',
							 | 
						||
| 
								 | 
							
								  'lstat',
							 | 
						||
| 
								 | 
							
								  'mkdir',
							 | 
						||
| 
								 | 
							
								  'open',
							 | 
						||
| 
								 | 
							
								  'read',
							 | 
						||
| 
								 | 
							
								  'readFile',
							 | 
						||
| 
								 | 
							
								  'readdir',
							 | 
						||
| 
								 | 
							
								  'readlink',
							 | 
						||
| 
								 | 
							
								  'realpath',
							 | 
						||
| 
								 | 
							
								  'rename',
							 | 
						||
| 
								 | 
							
								  'rmdir',
							 | 
						||
| 
								 | 
							
								  'stat',
							 | 
						||
| 
								 | 
							
								  'symlink',
							 | 
						||
| 
								 | 
							
								  'truncate',
							 | 
						||
| 
								 | 
							
								  'unlink',
							 | 
						||
| 
								 | 
							
								  'utimes',
							 | 
						||
| 
								 | 
							
								  'write',
							 | 
						||
| 
								 | 
							
								  'writeFile'
							 | 
						||
| 
								 | 
							
								]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typeof fs.access === 'function' && api.push('access')
							 | 
						||
| 
								 | 
							
								typeof fs.copyFile === 'function' && api.push('copyFile')
							 | 
						||
| 
								 | 
							
								typeof fs.mkdtemp === 'function' && api.push('mkdtemp')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								require('thenify-all').withCallback(fs, exports, api)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.exists = function (filename, callback) {
							 | 
						||
| 
								 | 
							
								  // callback
							 | 
						||
| 
								 | 
							
								  if (typeof callback === 'function') {
							 | 
						||
| 
								 | 
							
								    return fs.stat(filename, function (err) {
							 | 
						||
| 
								 | 
							
								      callback(null, !err);
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  // or promise
							 | 
						||
| 
								 | 
							
								  return new Promise(function (resolve) {
							 | 
						||
| 
								 | 
							
								    fs.stat(filename, function (err) {
							 | 
						||
| 
								 | 
							
								      resolve(!err)
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								  })
							 | 
						||
| 
								 | 
							
								}
							 |