UNPKG

4.15 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/utils/loadPlugin.js"],"names":["loadPlugin","plugins","pluginName","debug","longName","shortName","plugin","match","whitespaceError","Error","messageTemplate","messageData","pluginKey","require","pluginLoadErr","resolve","missingPluginErr","console","error","red","message","commitlintPath","__dirname","resolvedPath","version","e","loadedPluginAndVersion","log","blue"],"mappings":";;;;;kBAIwBA,U;;AAJxB;;;;AACA;;;;AACA;;;;AAEe,SAASA,UAAT,CAAoBC,OAApB,EAA6BC,UAA7B,EAAyCC,QAAQ,KAAjD,EAAwD;AACtE,OAAMC,WAAW,wCAAqBF,UAArB,CAAjB;AACA,OAAMG,YAAY,oCAAiBD,QAAjB,CAAlB;AACA,KAAIE,SAAS,IAAb;;AAEA,KAAIJ,WAAWK,KAAX,CAAiB,MAAjB,CAAJ,EAA8B;AAC7B,QAAMC,kBAAkB,IAAIC,KAAJ,CACtB,oCAAmCP,UAAW,GADxB,CAAxB;;AAIAM,kBAAgBE,eAAhB,GAAkC,kBAAlC;AACAF,kBAAgBG,WAAhB,GAA8B;AAC7BT,eAAYE;AADiB,GAA9B;AAGA,QAAMI,eAAN;AACA;;AAED,OAAMI,YAAYR,aAAaF,UAAb,GAA0BG,SAA1B,GAAsCH,UAAxD;;AAEA,KAAI,CAACD,QAAQW,SAAR,CAAL,EAAyB;AACxB,MAAI;AACHN,YAASO,QAAQT,QAAR,CAAT;AACA,GAFD,CAEE,OAAOU,aAAP,EAAsB;AACvB,OAAI;AACH;AACAD,YAAQE,OAAR,CAAgBX,QAAhB;AACA,IAHD,CAGE,OAAOY,gBAAP,EAAyB;AAC1B;AACAC,YAAQC,KAAR,CAAc,gBAAMC,GAAN,CAAW,yBAAwBf,QAAS,GAA5C,CAAd;AACAY,qBAAiBI,OAAjB,GAA4B,yBAAwBlB,UAAW,KAC9Dc,iBAAiBI,OACjB,EAFD;AAGAJ,qBAAiBN,eAAjB,GAAmC,gBAAnC;AACAM,qBAAiBL,WAAjB,GAA+B;AAC9BT,iBAAYE,QADkB;AAE9BiB,qBAAgB,eAAKN,OAAL,CAAaO,SAAb,EAAwB,OAAxB;AAFc,KAA/B;AAIA,UAAMN,gBAAN;AACA;;AAED;AACA,SAAMF,aAAN;AACA;;AAED;AACA,MAAIX,KAAJ,EAAW;AACV,SAAMoB,eAAeV,QAAQE,OAAR,CAAgBX,QAAhB,CAArB;;AAEA,OAAIoB,UAAU,IAAd;;AAEA,OAAI;AACHA,cAAUX,QAAS,GAAET,QAAS,eAApB,EAAoCoB,OAA9C;AACA,IAFD,CAEE,OAAOC,CAAP,EAAU;AACX;AACA;;AAED,SAAMC,yBAAyBF,UAC3B,GAAEpB,QAAS,IAAGoB,OAAQ,EADK,GAE3B,GAAEpB,QAAS,mBAFf;;AAIAa,WAAQU,GAAR,CACC,gBAAMC,IAAN,CACE,iBAAgB1B,UAAW,KAAIwB,sBAAuB,WAAUH,YAAa,GAD/E,CADD;AAKA;;AAEDtB,UAAQW,SAAR,IAAqBN,MAArB;AACA;AACD","file":"loadPlugin.js","sourcesContent":["import path from 'path';\nimport chalk from 'chalk';\nimport {normalizePackageName, getShorthandName} from './pluginNaming';\n\nexport default function loadPlugin(plugins, pluginName, debug = false) {\n\tconst longName = normalizePackageName(pluginName);\n\tconst shortName = getShorthandName(longName);\n\tlet plugin = null;\n\n\tif (pluginName.match(/\\s+/u)) {\n\t\tconst whitespaceError = new Error(\n\t\t\t`Whitespace found in plugin name '${pluginName}'`\n\t\t);\n\n\t\twhitespaceError.messageTemplate = 'whitespace-found';\n\t\twhitespaceError.messageData = {\n\t\t\tpluginName: longName\n\t\t};\n\t\tthrow whitespaceError;\n\t}\n\n\tconst pluginKey = longName === pluginName ? shortName : pluginName;\n\n\tif (!plugins[pluginKey]) {\n\t\ttry {\n\t\t\tplugin = require(longName);\n\t\t} catch (pluginLoadErr) {\n\t\t\ttry {\n\t\t\t\t// Check whether the plugin exists\n\t\t\t\trequire.resolve(longName);\n\t\t\t} catch (missingPluginErr) {\n\t\t\t\t// If the plugin can't be resolved, display the missing plugin error (usually a config or install error)\n\t\t\t\tconsole.error(chalk.red(`Failed to load plugin ${longName}.`));\n\t\t\t\tmissingPluginErr.message = `Failed to load plugin ${pluginName}: ${\n\t\t\t\t\tmissingPluginErr.message\n\t\t\t\t}`;\n\t\t\t\tmissingPluginErr.messageTemplate = 'plugin-missing';\n\t\t\t\tmissingPluginErr.messageData = {\n\t\t\t\t\tpluginName: longName,\n\t\t\t\t\tcommitlintPath: path.resolve(__dirname, '../..')\n\t\t\t\t};\n\t\t\t\tthrow missingPluginErr;\n\t\t\t}\n\n\t\t\t// Otherwise, the plugin exists and is throwing on module load for some reason, so print the stack trace.\n\t\t\tthrow pluginLoadErr;\n\t\t}\n\n\t\t// This step is costly, so skip if debug is disabled\n\t\tif (debug) {\n\t\t\tconst resolvedPath = require.resolve(longName);\n\n\t\t\tlet version = null;\n\n\t\t\ttry {\n\t\t\t\tversion = require(`${longName}/package.json`).version;\n\t\t\t} catch (e) {\n\t\t\t\t// Do nothing\n\t\t\t}\n\n\t\t\tconst loadedPluginAndVersion = version\n\t\t\t\t? `${longName}@${version}`\n\t\t\t\t: `${longName}, version unknown`;\n\n\t\t\tconsole.log(\n\t\t\t\tchalk.blue(\n\t\t\t\t\t`Loaded plugin ${pluginName} (${loadedPluginAndVersion}) (from ${resolvedPath})`\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tplugins[pluginKey] = plugin;\n\t}\n}\n"]}
\No newline at end of file