42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. All Rights Reserved.
 | |
|  *
 | |
|  * Use of this source code is governed by an MIT-style license that can be
 | |
|  * found in the LICENSE file at https://angular.io/license
 | |
|  */
 | |
| 
 | |
| import {patchMacroTask} from '../common/utils';
 | |
| 
 | |
| Zone.__load_patch('fs', () => {
 | |
|   let fs: any;
 | |
|   try {
 | |
|     fs = require('fs');
 | |
|   } catch (err) {
 | |
|   }
 | |
| 
 | |
|   // watch, watchFile, unwatchFile has been patched
 | |
|   // because EventEmitter has been patched
 | |
|   const TO_PATCH_MACROTASK_METHODS = [
 | |
|     'access',  'appendFile', 'chmod',    'chown',    'close',     'exists',    'fchmod',
 | |
|     'fchown',  'fdatasync',  'fstat',    'fsync',    'ftruncate', 'futimes',   'lchmod',
 | |
|     'lchown',  'link',       'lstat',    'mkdir',    'mkdtemp',   'open',      'read',
 | |
|     'readdir', 'readFile',   'readlink', 'realpath', 'rename',    'rmdir',     'stat',
 | |
|     'symlink', 'truncate',   'unlink',   'utimes',   'write',     'writeFile',
 | |
|   ];
 | |
| 
 | |
|   if (fs) {
 | |
|     TO_PATCH_MACROTASK_METHODS.filter(name => !!fs[name] && typeof fs[name] === 'function')
 | |
|         .forEach(name => {
 | |
|           patchMacroTask(fs, name, (self: any, args: any[]) => {
 | |
|             return {
 | |
|               name: 'fs.' + name,
 | |
|               args: args,
 | |
|               cbIdx: args.length > 0 ? args.length - 1 : -1,
 | |
|               target: self
 | |
|             };
 | |
|           });
 | |
|         });
 | |
|   }
 | |
| });
 |