UNPKG

6.04 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/index.js"],"names":["w","a","b","Array","isArray","undefined","valid","input","seed","options","cwd","process","loadConfig","file","loaded","base","filepath","dirname","config","opts","extends","rules","parserPreset","resolvedParserPreset","require","name","path","parserOpts","extended","prefix","preset","then","Promise","all","map","key","item","value","entry","executedValue","reduce","registry","executed","configPath","explorer","rcExtensions","resolve","load","local"],"mappings":"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","file":"index.js","sourcesContent":["import path from 'path';\nimport executeRule from '@commitlint/execute-rule';\nimport resolveExtends from '@commitlint/resolve-extends';\nimport cosmiconfig from 'cosmiconfig';\nimport entries from 'lodash.topairs';\nimport merge from 'lodash.merge';\nimport mergeWith from 'lodash.mergewith';\nimport pick from 'lodash.pick';\nimport resolveFrom from 'resolve-from';\n\nconst w = (a, b) => (Array.isArray(b) ? b : undefined);\nconst valid = input => pick(input, 'extends', 'rules', 'parserPreset');\n\nexport default async (seed = {}, options = {cwd: process.cwd()}) => {\n\tconst loaded = await loadConfig(options.cwd, options.file);\n\tconst base = loaded.filepath ? path.dirname(loaded.filepath) : options.cwd;\n\n\t// Merge passed config with file based options\n\tconst config = valid(merge(loaded.config, seed));\n\tconst opts = merge({extends: [], rules: {}}, pick(config, 'extends'));\n\n\t// Resolve parserPreset key\n\tif (typeof config.parserPreset === 'string') {\n\t\tconst resolvedParserPreset = resolveFrom(base, config.parserPreset);\n\n\t\tconfig.parserPreset = {\n\t\t\tname: config.parserPreset,\n\t\t\tpath: resolvedParserPreset,\n\t\t\tparserOpts: (await require(resolvedParserPreset)).parserOpts\n\t\t};\n\t}\n\n\t// Resolve extends key\n\tconst extended = resolveExtends(opts, {\n\t\tprefix: 'commitlint-config',\n\t\tcwd: base,\n\t\tparserPreset: config.parserPreset\n\t});\n\n\tconst preset = valid(mergeWith(extended, config, w));\n\t// Await parser-preset if applicable\n\tif (\n\t\ttypeof preset.parserPreset === 'object' &&\n\t\ttypeof preset.parserPreset.parserOpts === 'object' &&\n\t\ttypeof preset.parserPreset.parserOpts.then === 'function'\n\t) {\n\t\tpreset.parserPreset.parserOpts = (await preset.parserPreset\n\t\t\t.parserOpts).parserOpts;\n\t}\n\n\t// Execute rule config functions if needed\n\tconst executed = await Promise.all(\n\t\t['rules']\n\t\t\t.map(key => {\n\t\t\t\treturn [key, preset[key]];\n\t\t\t})\n\t\t\t.map(async item => {\n\t\t\t\tconst [key, value] = item;\n\t\t\t\tconst executedValue = await Promise.all(\n\t\t\t\t\tentries(value || {}).map(entry => executeRule(entry))\n\t\t\t\t);\n\t\t\t\treturn [\n\t\t\t\t\tkey,\n\t\t\t\t\texecutedValue.reduce((registry, item) => {\n\t\t\t\t\t\tconst [key, value] = item;\n\t\t\t\t\t\tregistry[key] = value;\n\t\t\t\t\t\treturn registry;\n\t\t\t\t\t}, {})\n\t\t\t\t];\n\t\t\t})\n\t);\n\n\t// Merge executed config keys into preset\n\treturn executed.reduce((registry, item) => {\n\t\tconst [key, value] = item;\n\t\tregistry[key] = value;\n\t\treturn registry;\n\t}, preset);\n};\n\nasync function loadConfig(cwd, configPath) {\n\tconst explorer = cosmiconfig('commitlint', {\n\t\trcExtensions: true,\n\t\tconfigPath: configPath ? path.resolve(cwd, configPath) : null\n\t});\n\n\tconst local = await explorer.load(cwd);\n\n\tif (local) {\n\t\treturn local;\n\t}\n\n\treturn {};\n}\n"]}
\No newline at end of file