UNPKG

6.14 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","formatter","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 =>\n\tpick(input, 'extends', 'rules', 'parserPreset', 'formatter');\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(\n\t\t{extends: [], rules: {}, formatter: '@commitlint/format'},\n\t\tpick(config, 'extends')\n\t);\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