function bindings(opts) { // Argument surgery if (typeof opts == 'string') { opts = { bindings: opts } } else if (!opts) { opts = {} } opts.__proto__ = defaults // Get the module root if (!opts.module_root) { opts.module_root = exports.getRoot(exports.getFileName()) } // Ensure the given bindings name ends with .node if (path.extname(opts.bindings) != '.node') { opts.bindings += '.node' } var tries = [] , i = 0 , l = opts.try.length , n , b , err for (; i<l; i++) { n = join.apply(null, opts.try[i].map(function (p) { return opts[p] || p })) tries.push(n) try { b = opts.path ? require.resolve(n) : require(n) if (!opts.path) { b.path = n } return b } catch (e) { if (!/not find/i.test(e.message)) { throw e } } } err = new Error('Could not locate the bindings file. Tried:\n' + tries.map(function (a) { return opts.arrow + a }).join('\n')) err.tries = tries throw err }
n/a
function getFileName(calling_file) { var origPST = Error.prepareStackTrace , origSTL = Error.stackTraceLimit , dummy = {} , fileName Error.stackTraceLimit = 10 Error.prepareStackTrace = function (e, st) { for (var i=0, l=st.length; i<l; i++) { fileName = st[i].getFileName() if (fileName !== __filename) { if (calling_file) { if (fileName !== calling_file) { return } } else { return } } } } // run the 'prepareStackTrace' function above Error.captureStackTrace(dummy) dummy.stack // cleanup Error.prepareStackTrace = origPST Error.stackTraceLimit = origSTL return fileName }
n/a
function getRoot(file) { var dir = dirname(file) , prev while (true) { if (dir === '.') { // Avoids an infinite loop in rare cases, like the REPL dir = process.cwd() } if (exists(join(dir, 'package.json')) || exists(join(dir, 'node_modules'))) { // Found the 'package.json' file or 'node_modules' dir; we're done return dir } if (prev === dir) { // Got to the top throw new Error('Could not find module root given file: "' + file + '". Do you have a `package.json` file? ') } // Try the parent dir next prev = dir dir = join(dir, '..') } }
n/a
function bindings(opts) { // Argument surgery if (typeof opts == 'string') { opts = { bindings: opts } } else if (!opts) { opts = {} } opts.__proto__ = defaults // Get the module root if (!opts.module_root) { opts.module_root = exports.getRoot(exports.getFileName()) } // Ensure the given bindings name ends with .node if (path.extname(opts.bindings) != '.node') { opts.bindings += '.node' } var tries = [] , i = 0 , l = opts.try.length , n , b , err for (; i<l; i++) { n = join.apply(null, opts.try[i].map(function (p) { return opts[p] || p })) tries.push(n) try { b = opts.path ? require.resolve(n) : require(n) if (!opts.path) { b.path = n } return b } catch (e) { if (!/not find/i.test(e.message)) { throw e } } } err = new Error('Could not locate the bindings file. Tried:\n' + tries.map(function (a) { return opts.arrow + a }).join('\n')) err.tries = tries throw err }
n/a
function getFileName(calling_file) { var origPST = Error.prepareStackTrace , origSTL = Error.stackTraceLimit , dummy = {} , fileName Error.stackTraceLimit = 10 Error.prepareStackTrace = function (e, st) { for (var i=0, l=st.length; i<l; i++) { fileName = st[i].getFileName() if (fileName !== __filename) { if (calling_file) { if (fileName !== calling_file) { return } } else { return } } } } // run the 'prepareStackTrace' function above Error.captureStackTrace(dummy) dummy.stack // cleanup Error.prepareStackTrace = origPST Error.stackTraceLimit = origSTL return fileName }
n/a
function getRoot(file) { var dir = dirname(file) , prev while (true) { if (dir === '.') { // Avoids an infinite loop in rare cases, like the REPL dir = process.cwd() } if (exists(join(dir, 'package.json')) || exists(join(dir, 'node_modules'))) { // Found the 'package.json' file or 'node_modules' dir; we're done return dir } if (prev === dir) { // Got to the top throw new Error('Could not find module root given file: "' + file + '". Do you have a `package.json` file? ') } // Try the parent dir next prev = dir dir = join(dir, '..') } }
n/a