refactor: init cypress-cucumber-preprocessor install.
This commit is contained in:
98
node_modules/cosmiconfig/dist/loadDefinedFile.js
generated
vendored
Normal file
98
node_modules/cosmiconfig/dist/loadDefinedFile.js
generated
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
//
|
||||
'use strict';
|
||||
|
||||
const yaml = require('js-yaml');
|
||||
const requireFromString = require('require-from-string');
|
||||
const readFile = require('./readFile');
|
||||
const parseJson = require('./parseJson');
|
||||
const path = require('path');
|
||||
|
||||
module.exports = function loadDefinedFile(
|
||||
filepath ,
|
||||
options
|
||||
|
||||
|
||||
|
||||
) {
|
||||
function parseContent(content ) {
|
||||
if (!content) {
|
||||
throw new Error(`Config file is empty! Filepath - "${filepath}".`);
|
||||
}
|
||||
|
||||
let parsedConfig;
|
||||
|
||||
switch (options.format || inferFormat(filepath)) {
|
||||
case 'json':
|
||||
parsedConfig = parseJson(content, filepath);
|
||||
break;
|
||||
case 'yaml':
|
||||
parsedConfig = yaml.safeLoad(content, {
|
||||
filename: filepath,
|
||||
});
|
||||
break;
|
||||
case 'js':
|
||||
parsedConfig = requireFromString(content, filepath);
|
||||
break;
|
||||
default:
|
||||
parsedConfig = tryAllParsing(content, filepath);
|
||||
}
|
||||
|
||||
if (!parsedConfig) {
|
||||
throw new Error(`Failed to parse "${filepath}" as JSON, JS, or YAML.`);
|
||||
}
|
||||
|
||||
return {
|
||||
config: parsedConfig,
|
||||
filepath,
|
||||
};
|
||||
}
|
||||
|
||||
return !options.sync
|
||||
? readFile(filepath, { throwNotFound: true }).then(parseContent)
|
||||
: parseContent(readFile.sync(filepath, { throwNotFound: true }));
|
||||
};
|
||||
|
||||
function inferFormat(filepath ) {
|
||||
switch (path.extname(filepath)) {
|
||||
case '.js':
|
||||
return 'js';
|
||||
case '.json':
|
||||
return 'json';
|
||||
// istanbul ignore next
|
||||
case '.yml':
|
||||
case '.yaml':
|
||||
return 'yaml';
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
function tryAllParsing(content , filepath ) {
|
||||
return tryYaml(content, filepath, () => {
|
||||
return tryRequire(content, filepath, () => {
|
||||
return null;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function tryYaml(content , filepath , cb ) {
|
||||
try {
|
||||
const result = yaml.safeLoad(content, {
|
||||
filename: filepath,
|
||||
});
|
||||
if (typeof result === 'string') {
|
||||
return cb();
|
||||
}
|
||||
return result;
|
||||
} catch (e) {
|
||||
return cb();
|
||||
}
|
||||
}
|
||||
|
||||
function tryRequire(content , filepath , cb ) {
|
||||
try {
|
||||
return requireFromString(content, filepath);
|
||||
} catch (e) {
|
||||
return cb();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user