UNPKG

3.21 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/generateServerStrategy.js"],"names":["path","require","fs","mapValues","obj","iterator","keys","Object","mapped","forEach","key","createServerStrategyCode","strategy","variableName","requires","value","requireFile","resolve","__dirname","Array","isArray","requireArray","map","module","join","requireCode","e","JSON","stringify","writeServerStrategy","filename","code","writeFile","exports"],"mappings":";;AAAA,MAAMA,OAAOC,QAAQ,MAAR,CAAb;AACA,MAAMC,KAAKD,QAAQ,UAAR,CAAX;;AAEA,MAAME,YAAY,CAACC,GAAD,EAAMC,QAAN,KAAmB;AACnC,QAAMC,OAAOC,OAAOD,IAAP,CAAYF,GAAZ,CAAb;AACA,QAAMI,SAAS,EAAf;AACAF,OAAKG,OAAL,CAAaC,OAAO;AAClBF,WAAOE,GAAP,IAAcL,SAASD,IAAIM,GAAJ,CAAT,EAAmBA,GAAnB,EAAwBN,GAAxB,CAAd;AACD,GAFD;AAGA,SAAOI,MAAP;AACD,CAPD;;AASA,MAAMG,2BAA2BC,YAAY;AAC3C,QAAMC,eAAe,UAArB;;AAEA,QAAMC,WAAWX,UAAUS,QAAV,EAAoB,CAACG,KAAD,EAAQL,GAAR,KAAgB;AACnD,QAAIA,QAAQ,MAAZ,EAAoB;AACpB,QAAI,OAAOK,KAAP,KAAiB,QAArB,EAA+B;AAC7B,YAAMC,cAAchB,KAAKiB,OAAL,CAAaC,SAAb,EAAwB,MAAxB,EAAgCH,KAAhC,CAApB;AACA,aAAQ,GAAEF,YAAa,KAAIH,GAAI,iBAAgBM,WAAY,MAAKN,GAAI,MAApE;AACD,KAHD,MAGO,IAAIS,MAAMC,OAAN,CAAcL,KAAd,CAAJ,EAA0B;AAC/B,YAAMM,eAAeN,MAAMO,GAAN,CAAUC,UAAU;AACvC,cAAMP,cAAchB,KAAKiB,OAAL,CAAaC,SAAb,EAAwB,MAAxB,EAAgCK,MAAhC,CAApB;AACA,eAAQ,YAAWP,WAAY,MAAKN,GAAI,KAAxC;AACD,OAHoB,CAArB;AAIA,aAAQ,GAAEG,YAAa,KAAIH,GAAI;EACnCW,aAAaG,IAAb,CAAkB,KAAlB,CAAyB;EADrB;AAGD;AACF,GAdgB,CAAjB;;AAgBA,QAAMC,cAAclB,OAAOD,IAAP,CAAYQ,QAAZ,EAAsBQ,GAAtB,CAA0BI,KAAKZ,SAASY,CAAT,CAA/B,CAApB;AACA,SAAQ,SAAQb,YAAa;EAC7BY,YAAYD,IAAZ,CAAiB,IAAjB,CAAuB;EACvBX,YAAa,eAAcc,KAAKC,SAAL,CAAehB,QAAf,CAAyB;;mBAEnCC,YAAa;CAJ9B;AAMD,CA1BD;;AA4BA,MAAMgB,sBAAsB,CAACC,QAAD,EAAWlB,QAAX,KAAwB;AAClD,QAAMmB,OAAOpB,yBAAyBC,QAAzB,CAAb;AACA,SAAOV,GAAG8B,SAAH,CAAaF,QAAb,EAAuBC,IAAvB,CAAP;AACD,CAHD;;AAKAR,OAAOU,OAAP,GAAiBJ,mBAAjB","file":"generateServerStrategy.js","sourcesContent":["const path = require('path')\nconst fs = require('fs-extra')\n\nconst mapValues = (obj, iterator) => {\n const keys = Object.keys(obj)\n const mapped = {}\n keys.forEach(key => {\n mapped[key] = iterator(obj[key], key, obj)\n })\n return mapped\n}\n\nconst createServerStrategyCode = strategy => {\n const variableName = 'strategy'\n\n const requires = mapValues(strategy, (value, key) => {\n if (key === 'libs') return\n if (typeof value === 'string') {\n const requireFile = path.resolve(__dirname, 'libs', value)\n return `${variableName}['${key}'] = require('${requireFile}').${key}.fn;`\n } else if (Array.isArray(value)) {\n const requireArray = value.map(module => {\n const requireFile = path.resolve(__dirname, 'libs', module)\n return `require('${requireFile}').${key}.fn`\n })\n return `${variableName}['${key}'] = [\n${requireArray.join(',\\n')}\n]`\n }\n })\n\n const requireCode = Object.keys(requires).map(e => requires[e])\n return `const ${variableName} = {};\n${requireCode.join('\\n')};\n${variableName}.strategy = ${JSON.stringify(strategy)}\n\nmodule.exports = ${variableName};\n`\n}\n\nconst writeServerStrategy = (filename, strategy) => {\n const code = createServerStrategyCode(strategy)\n return fs.writeFile(filename, code)\n}\n\nmodule.exports = writeServerStrategy\n"]}
\No newline at end of file