generator-eslinter
Version:
Yeoman generator for .eslintrc file
2 lines • 2.71 kB
JavaScript
!function(e){var t={};function n(i){if(t[i])return t[i].exports;var s=t[i]={i:i,l:!1,exports:{}};return e[i].call(s.exports,s,s.exports,n),s.l=!0,s.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)n.d(i,s,function(t){return e[t]}.bind(null,s));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){const i=n(1),s=n(2),r=n(3),o=s.promisify(n(4).exec);e.exports=class extends i{constructor(e,t){super(e,t),this.extendsArray=[],this.plugins=[],this.packages=new Set(["eslint","babel-eslint"]),this.argument("configs",{type:String,required:!1,default:""}),this.argument("plugins",{type:String,required:!1,default:""}),this.option("personal",{type:Boolean,required:!1,default:!1})}_handlePeerDependenciesPackages(e){const t=e.reduce((e,t)=>(Object.keys(t).map(t=>e.add(t)),e),new Set);this.packages=new Set([...this.packages,...t])}async configuring(){const{configs:e,plugins:t}=this.options;e.length&&await Promise.all(this._createPromises("config",e,this.extendsArray,!0)).then(this._handlePeerDependenciesPackages.bind(this)),t.length&&await Promise.all(this._createPromises("plugin",t,this.plugins)).then(e=>{const t=e.reduce((e,t)=>(t.name&&e.add(t.name),e),new Set);this.packages=new Set([...this.packages,...t])})}_createPromises(e,t,n,i=!1){return t.split(",").reduce((t,s)=>t.concat(o(`npm info eslint-${e}-${s} ${i?"peerDependencies":""} --json`).then(({stdout:t})=>(t&&n.push(s),"config"===e&&t&&this.packages.add(`eslint-${e}-${s}`),JSON.parse(t))).catch(e=>(this.log(r.red(`command ${s} ${e.cmd} failed`)),{}))),[])}writing(){this.fs.extendJSON(this.destinationPath("package.json"),{scripts:{lint:"eslint ."}});const{extendsArray:e,plugins:t}=this,{personal:n}=this.options;this.fs.copyTpl(this.templatePath(".*"),this.destinationPath(),{extendsArray:e,personal:n,plugins:t})}install(){this.npmInstall(Array.from(this.packages),{"save-dev":!0})}}},function(e,t){e.exports=require("yeoman-generator/lib")},function(e,t){e.exports=require("util")},function(e,t){e.exports=require("chalk")},function(e,t){e.exports=require("child_process")}]);
//# sourceMappingURL=main.js.map