1+ "use strict" ;
2+
3+ /*
4+ * webpcss
5+ * https://github.com/lexich/webpcss
6+ *
7+ * Copyright (c) 2015 Efremov Alexey
8+ * Licensed under the MIT license.
9+ */
10+
11+ /* eslint class-methods-use-this: 0 */
12+
13+ Object . defineProperty ( exports , "__esModule" , {
14+ value : true
15+ } ) ;
16+
17+ var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
18+
19+ var _urldata = require ( "urldata" ) ;
20+
21+ var _urldata2 = _interopRequireDefault ( _urldata ) ;
22+
23+ var _cwebp = require ( "cwebp" ) ;
24+
25+ var _parseDataUri2 = require ( "parse-data-uri" ) ;
26+
27+ var _parseDataUri3 = _interopRequireDefault ( _parseDataUri2 ) ;
28+
29+ function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { default : obj } ; }
30+
31+ function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
32+
33+ var webpBinPath = require ( "webp-converter/cwebp" ) ( ) ;
34+
35+ var base64pattern = "data:" ;
36+ var base64patternEnd = ";base64," ;
37+
38+ var WebpBase64 = function ( ) {
39+ function WebpBase64 ( ) {
40+ _classCallCheck ( this , WebpBase64 ) ;
41+ }
42+
43+ _createClass ( WebpBase64 , [ {
44+ key : "extract" ,
45+ value : function extract ( value , isUrl ) {
46+ var result = [ ] ;
47+ if ( ! ! isUrl ) {
48+ var data = ( 0 , _urldata2 . default ) ( value ) ;
49+ for ( var i = 0 ; i < data . length ; i += 1 ) {
50+ /* eslint no-continue: 0 */
51+ if ( ! data [ i ] ) {
52+ continue ;
53+ }
54+ result [ result . length ] = WebpBase64 . extractor ( data [ i ] , isUrl ) ;
55+ }
56+ } else {
57+ var res = WebpBase64 . extractor ( value , isUrl ) ;
58+ if ( res ) {
59+ result [ result . length ] = res ;
60+ }
61+ }
62+ return result ;
63+ }
64+ } , {
65+ key : "convert" ,
66+ value : function convert ( data , fConfig ) {
67+ var buffer = data instanceof Buffer ? data : new Buffer ( data , "base64" ) ;
68+ var encoderBase = new _cwebp . CWebp ( buffer , webpBinPath ) ;
69+ var encoder = fConfig ? fConfig ( encoderBase ) : encoderBase ;
70+ return encoder . toBuffer ( ) ;
71+ }
72+ } ] , [ {
73+ key : "extractor" ,
74+ value : function extractor ( value ) {
75+ if ( ! value ) {
76+ return ;
77+ }
78+ var base64pos = value . indexOf ( base64pattern ) ;
79+ if ( base64pos >= 0 ) {
80+ var base64posEnd = value . indexOf ( base64patternEnd ) ;
81+
82+ if ( base64posEnd < 0 ) {
83+ var _parseDataUri = ( 0 , _parseDataUri3 . default ) ( value ) ,
84+ mimeType = _parseDataUri . mimeType ,
85+ data = _parseDataUri . data ;
86+
87+ return { mimetype : mimeType , data : data } ;
88+ } else {
89+ var mimetype = value . slice ( base64pos + base64pattern . length , base64posEnd ) ;
90+ var _data = value . slice ( base64posEnd + base64patternEnd . length ) ;
91+ return { mimetype : mimetype , data : _data } ;
92+ }
93+ } else {
94+ return { mimetype : "url" , data : value } ;
95+ }
96+ }
97+ } ] ) ;
98+
99+ return WebpBase64 ;
100+ } ( ) ;
101+
102+ exports . default = WebpBase64 ;
103+ module . exports = exports [ "default" ] ;
0 commit comments