Blame view

node_modules/require-from-string/index.js 866 Bytes
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  'use strict';
  
  var Module = require('module');
  var path = require('path');
  
  module.exports = function requireFromString(code, filename, opts) {
  	if (typeof filename === 'object') {
  		opts = filename;
  		filename = undefined;
  	}
  
  	opts = opts || {};
  	filename = filename || '';
  
  	opts.appendPaths = opts.appendPaths || [];
  	opts.prependPaths = opts.prependPaths || [];
  
  	if (typeof code !== 'string') {
  		throw new Error('code must be a string, not ' + typeof code);
  	}
  
  	var paths = Module._nodeModulePaths(path.dirname(filename));
  
  	var parent = module.parent;
  	var m = new Module(filename, parent);
  	m.filename = filename;
  	m.paths = [].concat(opts.prependPaths).concat(paths).concat(opts.appendPaths);
  	m._compile(code, filename);
  
  	var exports = m.exports;
  	parent && parent.children && parent.children.splice(parent.children.indexOf(m), 1);
  
  	return exports;
  };