UNPKG

4.53 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/Bubleify.js"],"names":["Bubleify","filename","options","_data","_filename","_options","buf","enc","cb","result","_bubleOptions","code","sourceMap","map","toUrl","emit","push","err","bubleError","snippet","message","defaults","source","transforms","modules","target","_flags","extensions","Array","isArray","enrishedOptions","shouldIgnoreFile","indexOf"],"mappings":";;;;;;;;AAAA;;AACA;;;;AACA;;AACA;;AACA;;;;;;;;;;IAEMA,Q;;;AACJ,oBAAYC,QAAZ,EAAsBC,OAAtB,EAA+B;AAAA;;AAAA;;AAE7B,UAAKC,KAAL,GAAa,EAAb;AACA,UAAKC,SAAL,GAAiBH,QAAjB;AACA,UAAKI,QAAL,GAAgBH,OAAhB;AAJ6B;AAK9B;;;;+BAoBUI,G,EAAKC,G,EAAKC,E,EAAI;AACvB,WAAKL,KAAL,IAAcG,GAAd;AACAE;AACD;;;2BAEMA,E,EAAI;AACT,UAAI;AACF,YAAMC,SAAS,sBAAU,KAAKN,KAAf,EAAsB,KAAKO,aAA3B,CAAf;AADE,YAEIC,IAFJ,GAEaF,MAFb,CAEIE,IAFJ;;;AAIF,YAAI,KAAKN,QAAL,CAAcO,SAAlB,EAA6B;AAC3B;AACAD,sDAAsCF,OAAOI,GAAP,CAAWC,KAAX,EAAtC;AACD;;AAED,aAAKC,IAAL,CAAU,UAAV,EAAsBN,MAAtB,EAA8B,KAAKL,SAAnC;AACA,aAAKY,IAAL,CAAUL,IAAV;AACD,OAXD,CAWE,OAAOM,GAAP,EAAY;AACZ;AACA,YAAI,KAAKZ,QAAL,CAAca,UAAd,IAA4BD,IAAIE,OAApC,EAA6C;AAC3C,eAAKJ,IAAL,CAAU,OAAV,oBAA+BE,IAAIE,OAAnC,uBAAyDF,IAAIG,OAA7D;AACD,SAFD,MAEO;AACL,eAAKL,IAAL,CAAU,OAAV,EAAmBE,GAAnB;AACD;AACD;AACD;AACDT;AACD;;;wBA7CmB;AAClB,UAAMa,WAAW,EAAEC,QAAQ,KAAKlB,SAAf,EAAjB;AACA,UAAMF,UAAU,4BAAOmB,QAAP,EAAiB,KAAKhB,QAAtB,CAAhB;;AAEA;AACA;AACAH,cAAQqB,UAAR,GAAqB,4BAAO,EAAEC,SAAS,KAAX,EAAP,EAA2B,KAAKnB,QAAL,CAAckB,UAAzC,CAArB;AACArB,cAAQuB,MAAR,GAAiB,4BAAO,EAAP,EAAW,KAAKpB,QAAL,CAAcoB,MAAzB,CAAjB;;AAEA;AACA,aAAOvB,QAAQwB,MAAf;AACA,aAAOxB,QAAQU,SAAf;AACA,aAAOV,QAAQyB,UAAf;AACA,aAAOzB,QAAQgB,UAAf;;AAEA,aAAOhB,OAAP;AACD;;;;;;kBAgCY,UAACD,QAAD,EAAWC,OAAX,EAAuB;AACpC;AADoC,4BAEkBA,OAFlB,CAE9ByB,UAF8B;AAAA,MAE9BA,UAF8B,uCAEjB,CAAC,KAAD,EAAQ,MAAR,EAAgB,KAAhB,EAAuB,MAAvB,CAFiB;AAGpC;;AACAA,eAAaC,MAAMC,OAAN,CAAcF,UAAd,IAA4BA,UAA5B,GAAyC,CAACA,UAAD,CAAtD;;AAEA,MAAMG,kBAAkB,4BAAO;AAC7BlB,eAAW,IADkB;AAE7BM,gBAAY;AAFiB,GAAP,EAGrBhB,OAHqB,EAGZ,EAAEyB,sBAAF,EAHY,CAAxB;;AAKA,MAAMI,mBAAmBJ,WAAWK,OAAX,CAAmB,mBAAQ/B,QAAR,CAAnB,MAA0C,CAAC,CAApE;AACA;AACA,MAAI8B,gBAAJ,EAAsB;AACpB;AACA,WAAO,0BAAP;AACD;;AAED,SAAO,IAAI/B,QAAJ,CAAaC,QAAb,EAAuB6B,eAAvB,CAAP;AACD,C","file":"Bubleify.js","sourcesContent":["import { transform } from 'buble';\nimport assign from 'object-assign';\nimport { Transform, PassThrough } from 'stream';\nimport { EOL } from 'os';\nimport { extname } from 'path';\n\nclass Bubleify extends Transform {\n constructor(filename, options) {\n super();\n this._data = '';\n this._filename = filename;\n this._options = options;\n }\n\n get _bubleOptions() {\n const defaults = { source: this._filename };\n const options = assign(defaults, this._options);\n\n // copy properties to not modify the existing objects\n // set default transforms with deactivated modules\n options.transforms = assign({ modules: false }, this._options.transforms);\n options.target = assign({}, this._options.target);\n\n // remove browserify options\n delete options._flags;\n delete options.sourceMap;\n delete options.extensions;\n delete options.bubleError;\n\n return options;\n }\n\n _transform(buf, enc, cb) {\n this._data += buf;\n cb();\n }\n\n _flush(cb) {\n try {\n const result = transform(this._data, this._bubleOptions);\n let { code } = result;\n\n if (this._options.sourceMap) {\n // append sourcemaps to code\n code += `${EOL}//# sourceMappingURL=${result.map.toUrl()}`;\n }\n\n this.emit('bubleify', result, this._filename);\n this.push(code);\n } catch (err) {\n // emit buble error message instead of the default error\n if (this._options.bubleError && err.snippet) {\n this.emit('error', `---${EOL}${err.snippet}${EOL}${EOL}${err.message}${EOL}`);\n } else {\n this.emit('error', err);\n }\n return;\n }\n cb();\n }\n}\n\nexport default (filename, options) => {\n // get extensions or defaults\n let { extensions = ['.js', '.jsx', '.es', '.es6'] } = options;\n // convert to json\n extensions = Array.isArray(extensions) ? extensions : [extensions];\n\n const enrishedOptions = assign({\n sourceMap: true,\n bubleError: false,\n }, options, { extensions });\n\n const shouldIgnoreFile = extensions.indexOf(extname(filename)) === -1;\n // return empty stream for files that should not be transformed\n if (shouldIgnoreFile) {\n // eslint-disable-next-line new-cap\n return PassThrough();\n }\n\n return new Bubleify(filename, enrishedOptions);\n};\n"]}
\No newline at end of file