UNPKG

7.35 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","silent","plugins","length","forEach","pluginKey","env","DEBUG","Promise","all","map","key","item","value","entry","executedValue","reduce","registry","executed","configPath","explorer","explicitPath","resolve","explore","load","search","searchPath","local"],"mappings":";;;;;;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;AACA;;;;AACA;;;;;;AAEA,MAAMA,IAAI,CAACC,CAAD,EAAIC,CAAJ,KAAWC,MAAMC,OAAN,CAAcF,CAAd,IAAmBA,CAAnB,GAAuBG,SAA5C;AACA,MAAMC,QAAQC,SACb,kBACCA,KADD,EAEC,SAFD,EAGC,OAHD,EAIC,SAJD,EAKC,cALD,EAMC,WAND,EAOC,SAPD,EAQC,gBARD,CADD;;kBAYe,CAAOC,OAAO,EAAd,EAAkBC,UAAU,EAACC,KAAKC,QAAQD,GAAR,EAAN,EAA5B;AAAA;AACC,wBAAME,WAAWH,QAAQC,GAAnB,EAAwBD,QAAQI,IAAhC,CAAN;AAAA;AAATC,SAAS;AACTC,OADS,GACFD,OAAOE,QAAP,GAAkB,eAAKC,OAAL,CAAaH,OAAOE,QAApB,CAAlB,GAAkDP,QAAQC,GADxD;AAITQ,SAJS,GAIAZ,MAAM,mBAAM,EAAN,EAAUQ,OAAOI,MAAjB,EAAyBV,IAAzB,CAAN,CAJA;AAKTW,OALS,GAKF,mBACZ,EAACC,SAAS,EAAV,EAAcC,OAAO,EAArB,EAAyBC,WAAW,oBAApC,EADY,EAEZ,kBAAKJ,MAAL,EAAa,SAAb,EAAwB,SAAxB,EAAmC,SAAnC,EAA8C,gBAA9C,CAFY,CALE;;;AAUf;AACA,OAAI,OAAOA,OAAOK,YAAd,KAA+B,QAAnC,EAA6C;AACtCC,wBADsC,GACf,2BAAYT,IAAZ,EAAkBG,OAAOK,YAAzB,CADe;AAM9B,2BAAME,QAAQD,oBAAR,CAAN;AAAA;;AAHdN,aAAOK,YAAP,GAAsB;AACrBG,aAAMR,OAAOK,YADQ;AAErBI,aAAMH,oBAFe;AAGrBI,mBAAa,QAAD,CAAsCA;AAH7B,OAAtB;AAGc;AAAA;AAAA;AAAA;AAAA;AAEd;;AAED;;AArBe;AAsBTC,YAtBS,GAsBE,8BAAeV,IAAf,EAAqB;AACrCW,aAAQ,mBAD6B;AAErCpB,UAAKK,IAFgC;AAGrCQ,mBAAcL,OAAOK;AAHgB,KAArB,CAtBF;AA4BTQ,UA5BS,GA4BAzB,MAAM,uBAAUuB,QAAV,EAAoBX,MAApB,EAA4BlB,CAA5B,CAAN,CA5BA;;AA6Bf;AACA,QACC,OAAO+B,OAAOR,YAAd,KAA+B,QAA/B,IACA,OAAOQ,OAAOR,YAAP,CAAoBK,UAA3B,KAA0C,QAD1C,IAEA,OAAOG,OAAOR,YAAP,CAAoBK,UAApB,CAA+BI,IAAtC,KAA+C,UAHhD,EAIE;AACiC,4BAAMD,OAAOR,YAAP,CACtCK,UADgC;AAAA;AAAlCG,cAAOR,YAAP,CAAoBK,UAApB,GAAkC,QAAD,CACnBA,UADd;AAAkC;AAAA;AAAA;AAAA;AAAA;AAElC;;AAED;;AAvCe;AAwCf,SAAI,OAAOV,OAAOI,SAAd,KAA4B,QAAhC,EAA0C;AACzCS,aAAOT,SAAP,GACC,sBAAYW,MAAZ,CAAmBlB,IAAnB,EAAyBG,OAAOI,SAAhC,KAA8CJ,OAAOI,SADtD;AAEA;;AAED;AACAS,YAAOG,OAAP,GAAiB,EAAjB;AACA,SAAIhB,OAAOgB,OAAP,IAAkBhB,OAAOgB,OAAP,CAAeC,MAArC,EAA6C;AAC5CjB,aAAOgB,OAAP,CAAeE,OAAf,CAAuBC,aAAa;AACnC,iCAAWN,OAAOG,OAAlB,EAA2BG,SAA3B,EAAsC1B,QAAQ2B,GAAR,CAAYC,KAAZ,KAAsB,MAA5D;AACA,OAFD;AAGA;;AAED;AACiB,4BAAMC,QAAQC,GAAR,CACtB,CAAC,OAAD,EACEC,GADF,CACMC,OACG,CAACA,GAAD,EAAMZ,OAAOY,GAAP,CAAN,CAFT,EAIED,GAJF,CAIYE,IAAN;AAAA;;AAAA,2CACiBA,IADjB;AACGD,SADH,aACQE,KADR;AAEkB,6BAAML,QAAQC,GAAR,CAC3B,qBAAQI,SAAS,EAAjB,EAAqBH,GAArB,CAAyBI,SAAS,2BAAYA,KAAZ,CAAlC,CAD2B,CAAN;AAAA;AAAhBC,qBAAgB;;AAGtB,uBAAO,CACNJ,GADM,EAENI,cAAcC,MAAd,CAAqB,CAACC,QAAD,EAAWL,IAAX,KAAoB;AAAA,mDACnBA,IADmB;;AAAA,eACjCD,GADiC;AAAA,eAC5BE,KAD4B;;AAExCI,kBAASN,GAAT,IAAgBE,KAAhB;AACA,gBAAOI,QAAP;AACA,SAJD,EAIG,EAJH,CAFM,CAAP;AAHsB;AAAA;AAAA;AAAA;AAFlB,kBAJN,CADsB,CAAN;AAAA;AAAXC,eAAW;;;AAqBjB;AACA,sBAAOA,SAASF,MAAT,CAAgB,CAACC,QAAD,EAAWL,IAAX,KAAoB;AAAA,kDACrBA,IADqB;;AAAA,cACnCD,GADmC;AAAA,cAC9BE,KAD8B;;AAE1CI,iBAASN,GAAT,IAAgBE,KAAhB;AACA,eAAOI,QAAP;AACA,QAJM,EAIJlB,MAJI,CAAP;AAtBiB;AAAA;AAAA;AAAA;AAtDF;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AADD,a;;AAoFf,SAAenB,UAAf,CAA0BF,GAA1B,EAA+ByC,UAA/B;AAAA;AAAA;AACOC,UADP,GACkB,2BAAY,YAAZ,CADlB;AAGOC,cAHP,GAGsBF,aAAa,eAAKG,OAAL,CAAa5C,GAAb,EAAkByC,UAAlB,CAAb,GAA6C9C,SAHnE;AAIOkD,SAJP,GAIiBF,eAAeD,SAASI,IAAxB,GAA+BJ,SAASK,MAJzD;AAKOC,YALP,GAKoBL,eAAeA,YAAf,GAA8B3C,GALlD;AAMe,yBAAM6C,QAAQG,UAAR,CAAN;AAAA;AAARC,SAAQ;;;AAEd,QAAIA,KAAJ,EAAW;AACV,oBAAOA,KAAP;AACA;;AAED,mBAAO,EAAP;AANc;AAAA;AAAA;AAAA;AANf;AAAA","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 {toPairs, merge, mergeWith, pick} from 'lodash';\nimport resolveFrom from 'resolve-from';\nimport loadPlugin from './utils/loadPlugin';\n\nconst w = (a, b) => (Array.isArray(b) ? b : undefined);\nconst valid = input =>\n\tpick(\n\t\tinput,\n\t\t'extends',\n\t\t'rules',\n\t\t'plugins',\n\t\t'parserPreset',\n\t\t'formatter',\n\t\t'ignores',\n\t\t'defaultIgnores'\n\t);\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', 'plugins', 'ignores', 'defaultIgnores')\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// Resolve config-relative formatter module\n\tif (typeof config.formatter === 'string') {\n\t\tpreset.formatter =\n\t\t\tresolveFrom.silent(base, config.formatter) || config.formatter;\n\t}\n\n\t// resolve plugins\n\tpreset.plugins = {};\n\tif (config.plugins && config.plugins.length) {\n\t\tconfig.plugins.forEach(pluginKey => {\n\t\t\tloadPlugin(preset.plugins, pluginKey, process.env.DEBUG === 'true');\n\t\t});\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\ttoPairs(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\n\tconst explicitPath = configPath ? path.resolve(cwd, configPath) : undefined;\n\tconst explore = explicitPath ? explorer.load : explorer.search;\n\tconst searchPath = explicitPath ? explicitPath : cwd;\n\tconst local = await explore(searchPath);\n\n\tif (local) {\n\t\treturn local;\n\t}\n\n\treturn {};\n}\n"]}
\No newline at end of file