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.
		
		
		
		
		
			
		
			
				
					85 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					85 lines
				
				1.3 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const pa = require('path');
							 | 
						||
| 
								 | 
							
								const fs = require('fs');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class DefaultFileSystem {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									resolve(path) {
							 | 
						||
| 
								 | 
							
										return pa.resolve(path);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									isSeparator(char) {
							 | 
						||
| 
								 | 
							
										return char === '/' || char === pa.sep;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									isAbsolute(path) {
							 | 
						||
| 
								 | 
							
										return pa.isAbsolute(path);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									join(...paths) {
							 | 
						||
| 
								 | 
							
										return pa.join(...paths);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									basename(path) {
							 | 
						||
| 
								 | 
							
										return pa.basename(path);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									dirname(path) {
							 | 
						||
| 
								 | 
							
										return pa.dirname(path);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									statSync(path, options) {
							 | 
						||
| 
								 | 
							
										return fs.statSync(path, options);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									readFileSync(path, options) {
							 | 
						||
| 
								 | 
							
										return fs.readFileSync(path, options);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class VMFileSystem {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									constructor({fs: fsModule = fs, path: pathModule = pa} = {}) {
							 | 
						||
| 
								 | 
							
										this.fs = fsModule;
							 | 
						||
| 
								 | 
							
										this.path = pathModule;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									resolve(path) {
							 | 
						||
| 
								 | 
							
										return this.path.resolve(path);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									isSeparator(char) {
							 | 
						||
| 
								 | 
							
										return char === '/' || char === this.path.sep;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									isAbsolute(path) {
							 | 
						||
| 
								 | 
							
										return this.path.isAbsolute(path);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									join(...paths) {
							 | 
						||
| 
								 | 
							
										return this.path.join(...paths);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									basename(path) {
							 | 
						||
| 
								 | 
							
										return this.path.basename(path);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									dirname(path) {
							 | 
						||
| 
								 | 
							
										return this.path.dirname(path);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									statSync(path, options) {
							 | 
						||
| 
								 | 
							
										return this.fs.statSync(path, options);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									readFileSync(path, options) {
							 | 
						||
| 
								 | 
							
										return this.fs.readFileSync(path, options);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.DefaultFileSystem = DefaultFileSystem;
							 | 
						||
| 
								 | 
							
								exports.VMFileSystem = VMFileSystem;
							 |