UNPKG

4.42 kBJavaScriptView Raw
1"use strict";
2var __spreadArrays = (this && this.__spreadArrays) || function () {
3 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
4 for (var r = Array(s), k = 0, i = 0; i < il; i++)
5 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
6 r[k] = a[j];
7 return r;
8};
9var __importDefault = (this && this.__importDefault) || function (mod) {
10 return (mod && mod.__esModule) ? mod : { "default": mod };
11};
12exports.__esModule = true;
13var path_1 = __importDefault(require("path"));
14require("resolve-global");
15var resolve_from_1 = __importDefault(require("resolve-from"));
16var lodash_1 = require("lodash");
17var importFresh = require('import-fresh');
18function resolveExtends(config, context) {
19 if (config === void 0) { config = {}; }
20 if (context === void 0) { context = {}; }
21 var e = config["extends"];
22 var extended = loadExtends(config, context).reduceRight(function (r, c) {
23 return lodash_1.mergeWith(r, lodash_1.omit(c, 'extends'), function (objValue, srcValue) {
24 if (lodash_1.isArray(objValue)) {
25 return srcValue;
26 }
27 });
28 }, e ? { "extends": e } : {});
29 return lodash_1.merge({}, extended, config);
30}
31exports["default"] = resolveExtends;
32function loadExtends(config, context) {
33 if (config === void 0) { config = {}; }
34 if (context === void 0) { context = {}; }
35 return (config["extends"] || []).reduce(function (configs, raw) {
36 var load = context.require || require;
37 var resolved = resolveConfig(raw, context);
38 var c = load(resolved);
39 var cwd = path_1["default"].dirname(resolved);
40 var ctx = lodash_1.merge({}, context, { cwd: cwd });
41 // Resolve parser preset if none was present before
42 if (!context.parserPreset &&
43 typeof c === 'object' &&
44 typeof c.parserPreset === 'string') {
45 var resolvedParserPreset = resolve_from_1["default"](cwd, c.parserPreset);
46 var parserPreset = {
47 name: c.parserPreset,
48 path: ("./" + path_1["default"].relative(process.cwd(), resolvedParserPreset))
49 .split(path_1["default"].sep)
50 .join('/'),
51 parserOpts: require(resolvedParserPreset)
52 };
53 ctx.parserPreset = parserPreset;
54 config.parserPreset = parserPreset;
55 }
56 return __spreadArrays(configs, [c], loadExtends(c, ctx));
57 }, []);
58}
59function getId(raw, prefix) {
60 if (raw === void 0) { raw = ''; }
61 if (prefix === void 0) { prefix = ''; }
62 var first = raw.charAt(0);
63 var scoped = first === '@';
64 var relative = first === '.';
65 var absolute = path_1["default"].isAbsolute(raw);
66 if (scoped) {
67 return raw.includes('/') ? raw : [raw, prefix].filter(String).join('/');
68 }
69 return relative || absolute ? raw : [prefix, raw].filter(String).join('-');
70}
71function resolveConfig(raw, context) {
72 if (context === void 0) { context = {}; }
73 var resolve = context.resolve || resolveId;
74 var id = getId(raw, context.prefix);
75 try {
76 return resolve(id, context);
77 }
78 catch (err) {
79 var legacy = getId(raw, 'conventional-changelog-lint-config');
80 var resolved = resolve(legacy, context);
81 console.warn("Resolving " + raw + " to legacy config " + legacy + ". To silence this warning raise an issue at 'npm repo " + legacy + "' to rename to " + id + ".");
82 return resolved;
83 }
84}
85function resolveId(id, context) {
86 if (context === void 0) { context = {}; }
87 var cwd = context.cwd || process.cwd();
88 var localPath = resolveFromSilent(cwd, id);
89 if (typeof localPath === 'string') {
90 return localPath;
91 }
92 var resolveGlobal = context.resolveGlobal || resolveGlobalSilent;
93 var globalPath = resolveGlobal(id);
94 if (typeof globalPath === 'string') {
95 return globalPath;
96 }
97 var err = new Error("Cannot find module \"" + id + "\" from \"" + cwd + "\"");
98 err.code = 'MODULE_NOT_FOUND';
99 throw err;
100}
101function resolveFromSilent(cwd, id) {
102 try {
103 return resolve_from_1["default"](cwd, id);
104 }
105 catch (err) { }
106}
107function resolveGlobalSilent(id) {
108 try {
109 var resolveGlobal = importFresh('resolve-global');
110 return resolveGlobal(id);
111 }
112 catch (err) { }
113}
114//# sourceMappingURL=index.js.map
\No newline at end of file