46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # fs-monkey
 | |
| 
 | |
| [![][npm-img]][npm-url] [![][travis-badge]][travis-url]
 | |
| 
 | |
| Monkey-patches for filesystem related things.
 | |
| 
 | |
|   - Rewrite `require` function to load Node's modules from memory.
 | |
|   - Or rewrite the whole `fs` filesystem module.
 | |
| 
 | |
| ## Install
 | |
| 
 | |
| ```shell
 | |
| npm install --save fs-monkey
 | |
| ```
 | |
| 
 | |
| ## Terms
 | |
| 
 | |
| An *fs-like* object is an object that implements methods of Node's
 | |
| [filesystem API](https://nodejs.org/api/fs.html).
 | |
| It is denoted as `vol`:
 | |
| 
 | |
| ```js
 | |
| let vol = {
 | |
|     readFile: () => { /* ... */ },
 | |
|     readFileSync: () => { /* ... */ },
 | |
|     // etc...
 | |
| }
 | |
| ```
 | |
| 
 | |
| 
 | |
| ## Reference
 | |
| 
 | |
|  - [`patchFs`](./docs/api/patchFs.md) - rewrites Node's filesystem module `fs` with *fs-like* object `vol`
 | |
|  - [`patchRequire`](./docs/api/patchRequire.md) - rewrites `require` function, patches Node's `module` module to use a given *fs-like* object for module loading
 | |
| 
 | |
| 
 | |
| [npm-img]: https://img.shields.io/npm/v/fs-monkey.svg
 | |
| [npm-url]: https://www.npmjs.com/package/fs-monkey
 | |
| [travis-url]: https://travis-ci.org/streamich/fs-monkey
 | |
| [travis-badge]: https://travis-ci.org/streamich/fs-monkey.svg?branch=master
 | |
| 
 | |
| 
 | |
| ## License
 | |
| 
 | |
| [Unlicense](./LICENSE) - public domain.
 |