1+ "use strict" ;
2+
3+ Object . defineProperty ( exports , "__esModule" , {
4+ value : true
5+ } ) ;
6+
7+ 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 ; } ; } ( ) ;
8+
9+ var _file = require ( "./file" ) ;
10+
11+ var _file2 = _interopRequireDefault ( _file ) ;
12+
13+ var _fs = require ( "fs" ) ;
14+
15+ var _fs2 = _interopRequireDefault ( _fs ) ;
16+
17+ var _deepmerge = require ( "deepmerge" ) ;
18+
19+ var _deepmerge2 = _interopRequireDefault ( _deepmerge ) ;
20+
21+ function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { default : obj } ; }
22+
23+ function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
24+
25+ var Processor = function ( ) {
26+ // config;
27+ // cwd;
28+ // files;
29+
30+ function Processor ( config , cwd ) {
31+ var files = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : [ ] ;
32+
33+ _classCallCheck ( this , Processor ) ;
34+ }
35+
36+ _createClass ( Processor , [ {
37+ key : "process" ,
38+ value : function process ( ) {
39+ var _iteratorNormalCompletion = true ;
40+ var _didIteratorError = false ;
41+ var _iteratorError = undefined ;
42+
43+ try {
44+ for ( var _iterator = this . config [ Symbol . iterator ] ( ) , _step ; ! ( _iteratorNormalCompletion = ( _step = _iterator . next ( ) ) . done ) ; _iteratorNormalCompletion = true ) {
45+ var config = _step . value ;
46+
47+ var file = this . processFile ( config ) ;
48+
49+ this . files . push ( file ) ;
50+ }
51+ } catch ( err ) {
52+ _didIteratorError = true ;
53+ _iteratorError = err ;
54+ } finally {
55+ try {
56+ if ( ! _iteratorNormalCompletion && _iterator . return ) {
57+ _iterator . return ( ) ;
58+ }
59+ } finally {
60+ if ( _didIteratorError ) {
61+ throw _iteratorError ;
62+ }
63+ }
64+ }
65+ }
66+ } , {
67+ key : "processFile" ,
68+ value : function processFile ( config ) {
69+ var file = new _file2 . default ( ) ;
70+
71+ var pathSource = this . resolvePath ( config . source ) ,
72+ pathOutput = this . resolvePath ( config . output ) ;
73+
74+ var packageJsonPath = this . resolvePath ( pathSource ) ,
75+ packageJsonContent = _fs2 . default . readFileSync ( packageJsonPath ) ;
76+
77+ /** @param {{extra: {}} } content */
78+ var packageJson = JSON . parse ( packageJsonContent ) ,
79+ solvedJson = this . resolveOverwritten ( config ) ,
80+ completedJson = this . constructor . getMergedData ( packageJson , solvedJson ) ;
81+
82+ file . source = pathSource ;
83+ file . output = pathOutput ;
84+ file . contex = completedJson ;
85+
86+ return file ;
87+ }
88+
89+ /**
90+ * @param {string } path
91+ */
92+
93+ } , {
94+ key : "resolvePath" ,
95+ value : function resolvePath ( path ) {
96+ if ( '/' === path . charAt ( 0 ) ) {
97+ return path ;
98+ }
99+
100+ return this . cwd + "/" + path ;
101+ }
102+ } , {
103+ key : "resolveOverwritten" ,
104+ value : function resolveOverwritten ( params ) {
105+ var object = { } ;
106+
107+ var _iteratorNormalCompletion2 = true ;
108+ var _didIteratorError2 = false ;
109+ var _iteratorError2 = undefined ;
110+
111+ try {
112+ for ( var _iterator2 = Object . keys ( params ) [ Symbol . iterator ] ( ) , _step2 ; ! ( _iteratorNormalCompletion2 = ( _step2 = _iterator2 . next ( ) ) . done ) ; _iteratorNormalCompletion2 = true ) {
113+ var abstractPath = _step2 . value ;
114+
115+ var envVariable = params [ abstractPath ] ,
116+ value = this . constructor . getEnvironmentValue ( envVariable ) ;
117+
118+ this . constructor . overwriteObjectFieldValue ( abstractPath , value , object ) ;
119+ }
120+ } catch ( err ) {
121+ _didIteratorError2 = true ;
122+ _iteratorError2 = err ;
123+ } finally {
124+ try {
125+ if ( ! _iteratorNormalCompletion2 && _iterator2 . return ) {
126+ _iterator2 . return ( ) ;
127+ }
128+ } finally {
129+ if ( _didIteratorError2 ) {
130+ throw _iteratorError2 ;
131+ }
132+ }
133+ }
134+ }
135+ } ] , [ {
136+ key : "getEnvironmentValue" ,
137+ value : function getEnvironmentValue ( index ) {
138+ return process . env [ index ] || undefined ;
139+ }
140+ } , {
141+ key : "getMergedData" ,
142+ value : function getMergedData ( data , overwrittenData ) {
143+ return ( 0 , _deepmerge2 . default ) ( data , overwrittenData ) ;
144+ }
145+ } , {
146+ key : "overwriteObjectFieldValue" ,
147+ value : function overwriteObjectFieldValue ( abstractPath , value , object , delimiter ) {
148+ if ( undefined === value ) {
149+ return ;
150+ }
151+
152+ delimiter = undefined !== delimiter ? delimiter : '.' ;
153+
154+ var indexes = abstractPath . split ( delimiter ) ,
155+ lastPartIndex = indexes . length - 1 ;
156+
157+ for ( var i = 0 ; i <= lastPartIndex ; i ++ ) {
158+ var index = indexes [ i ] ;
159+
160+ if ( i === lastPartIndex ) {
161+ object [ index ] = value ;
162+ break ;
163+ }
164+
165+ if ( undefined === object [ index ] ) {
166+ object [ index ] = { } ;
167+ }
168+
169+ object = object [ index ] ;
170+ }
171+ }
172+ } ] ) ;
173+
174+ return Processor ;
175+ } ( ) ;
176+
177+ exports . default = Processor ;
0 commit comments