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.
		
		
		
		
		
			
		
			
				
					36 lines
				
				718 B
			
		
		
			
		
	
	
					36 lines
				
				718 B
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const pa = require('path');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const {NodeVM, VMError} = require('../');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (process.argv[2]) {
							 | 
						||
| 
								 | 
							
									const path = pa.resolve(process.argv[2]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									console.log(`\x1B[90m[vm] creating VM for ${path}\x1B[39m`);
							 | 
						||
| 
								 | 
							
									const started = Date.now();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									try {
							 | 
						||
| 
								 | 
							
										NodeVM.file(path, {
							 | 
						||
| 
								 | 
							
											verbose: true,
							 | 
						||
| 
								 | 
							
											require: {
							 | 
						||
| 
								 | 
							
												external: true
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										console.log(`\x1B[90m[vm] VM completed in ${Date.now() - started}ms\x1B[39m`);
							 | 
						||
| 
								 | 
							
									} catch (ex) {
							 | 
						||
| 
								 | 
							
										if (ex instanceof VMError) {
							 | 
						||
| 
								 | 
							
											console.error(`\x1B[31m[vm:error] ${ex.message}\x1B[39m`);
							 | 
						||
| 
								 | 
							
										} else {
							 | 
						||
| 
								 | 
							
											const {stack} = ex;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											if (stack) {
							 | 
						||
| 
								 | 
							
												console.error(`\x1B[31m[vm:error] ${stack}\x1B[39m`);
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												console.error(`\x1B[31m[vm:error] ${ex}\x1B[39m`);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |