StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
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.
 
 
 
 
StackGenVis/frontend/node_modules/resolve-file/index.js

130 lines
3.2 KiB

/*!
* resolve-file <https://github.com/doowb/resolve-file>
*
* Copyright (c) 2015, Brian Woodward, Jon Schlinkert.
* Licensed under the MIT License.
*/
'use strict';
var path = require('path');
var utils = require('./utils');
/**
* Resolve the path to a file located in one of the following places:
*
* - local to the current project (`'./index.js'`)
* - absolute (`'/usr/something.rc'`)
* - node module "main" file (`'cwd'`)
* - specific file inside a node module (`'cwd/LICENSE'`)
* - file located in user's home directory (`'~/.npmrc'`)
*
* ```js
* var fp = resolve('./index.js')
* //=> /path/to/resolve-file/index.js
* ```
*
* @param {String} `name` Filename to resolve
* @param {Object} `options` Additional options to specify `cwd`
* @return {String} Resolved `filepath` if found
* @api public
*/
function resolve(name, options) {
var file = resolve.file(name, options);
return file && file.path;
}
/**
* Resolve the path to a file located in one of the following places:
*
* - local to the current project (`'./index.js'`)
* - absolute (`'/usr/something.rc'`)
* - node module "main" file (`'cwd'`)
* - specific file inside a node module (`'cwd/LICENSE'`)
* - file located in user's home directory (`'~/.npmrc'`)
*
* ```js
* var file = resolve.file('./index.js')
* //=> {
* //=> cwd: '/path/to/resolve-file',
* //=> path: '/path/to/resolve-file/index.js'
* //=> }
* ```
*
* @param {String} `name` Filename to resolve
* @param {Object} `options` Additional options to specify `cwd`
* @return {Object} File object with resolved `path` if found.
* @api public
*/
resolve.file = function(name, options) {
var file = {};
if (name && typeof name === 'object' && name.path) {
file = name;
name = file.path;
}
if (typeof options === 'function') {
options = { resolve: options };
}
var opts = utils.extend({cwd: process.cwd()}, options);
var first = name.charAt(0);
file.cwd = opts.cwd;
if (name.indexOf('npm:') === 0) {
try {
file.path = utils.resolve.sync(path.resolve(file.cwd, name.slice(4)));
file.cwd = path.dirname(file.path);
} catch (err) {
throw new Error(`cannot resolve: '${name}'`);
}
} else {
switch (first) {
case '~':
file.cwd = utils.home();
file.path = utils.expandTilde(name);
break;
case '.':
default: {
file.path = path.resolve(file.cwd, name);
break;
}
}
}
if (!utils.exists(file.path)) {
try {
if (/[\\\/]/.test(name)) {
file.basename = path.basename(name);
var dirname = path.dirname(name);
file.name = path.basename(dirname);
file.main = require.resolve(dirname);
file.path = path.resolve(path.dirname(file.main), file.basename);
}
if (!utils.exists(file.path)) {
file.path = utils.resolve.sync(name);
file.main = file.path;
}
} catch (err) {
if (err.code !== 'MODULE_NOT_FOUND' && !/Cannot find module/.test(err.message)) {
throw err;
}
};
}
if (utils.exists(file.path)) {
return utils.decorate(file, opts.resolve);
}
return null;
};
/**
* Export `resolve`
* @type {Function}
*/
module.exports = resolve;