1
1
'use strict' ;
2
2
3
3
const path = require ( 'path' ) ;
4
- const extend = require ( 'util' ) . _extend ;
5
- const _ = require ( 'lodash' ) ;
6
4
7
5
const getPartial = require ( './get' ) ;
8
6
const logger = require ( './log' ) ;
9
7
const parseLink = require ( './parseLink' ) ;
10
- const render = require ( './render' ) ;
11
8
const jsonCopy = require ( './json_copy' ) ;
12
- const smh = require ( './style_modifier_hunter' ) ;
13
-
14
- const style_modifier_hunter = new smh ( ) ;
9
+ const replaceParameter = require ( './replaceParameter' ) ;
15
10
16
11
const parameter_hunter = function ( ) {
17
12
@@ -248,8 +243,6 @@ const parameter_hunter = function () {
248
243
//compile this partial immeadiately, essentially consuming it.
249
244
function findparameters ( pattern , patternlab ) {
250
245
251
- const expandPartials = require ( './expandPartials' ) ;
252
-
253
246
if ( pattern . parameteredPartials && pattern . parameteredPartials . length > 0 ) {
254
247
255
248
logger . debug ( `processing patternParameters for ${ pattern . partialName } ` ) ;
@@ -261,14 +254,17 @@ const parameter_hunter = function () {
261
254
262
255
//find the partial's name and retrieve it
263
256
const partialName = pMatch . match ( / ( [ \w \- \. \/ ~ ] + ) / g) [ 0 ] ;
264
- const partialPattern = getPartial ( path . normalize ( partialName ) , patternlab ) ;
257
+ const partialPattern = jsonCopy ( getPartial ( path . normalize ( partialName ) , patternlab , `partial pattern ${ partialName } ` ) ) ;
265
258
266
259
//if we retrieved a pattern we should make sure that its extendedTemplate is reset. looks to fix #190
267
260
if ( ! partialPattern . extendedTemplate ) {
268
- console . log ( `264 setting the clean partialPattern ${ partialPattern . patternPartial } template ${ partialPattern . template } to the existing extendedTemplate ${ partialPattern . extendedTemplate } ` )
269
261
partialPattern . extendedTemplate = partialPattern . template ;
270
262
}
271
263
264
+ if ( ! pattern . extendedTemplate ) {
265
+ pattern . extendedTemplate = pattern . template ;
266
+ }
267
+
272
268
logger . debug ( `retrieved pattern ${ partialName } ` ) ;
273
269
274
270
//strip out the additional data, convert string to JSON.
@@ -278,13 +274,9 @@ const parameter_hunter = function () {
278
274
const paramStringWellFormed = paramToJson ( paramString ) ;
279
275
280
276
let paramData = { } ;
281
- let globalData = { } ;
282
- let localData = { } ;
283
277
284
278
try {
285
279
paramData = JSON . parse ( paramStringWellFormed ) ;
286
- globalData = jsonCopy ( patternlab . data , 'config.paths.source.data global data' ) ;
287
- localData = jsonCopy ( pattern . jsonFileData || { } , `pattern ${ pattern . patternPartial } data` ) ;
288
280
} catch ( err ) {
289
281
logger . warning ( `There was an error parsing JSON for ${ pattern . relPath } ` ) ;
290
282
logger . warning ( err ) ;
@@ -293,68 +285,22 @@ const parameter_hunter = function () {
293
285
// resolve any pattern links that might be present
294
286
paramData = parseLink ( patternlab , paramData , pattern . patternPartial ) ;
295
287
296
- console . log ( '291' , pMatch , paramData ) ;
297
-
298
288
// for each property in paramData
299
289
for ( const prop in paramData ) {
300
290
if ( paramData . hasOwnProperty ( prop ) ) {
301
291
// find it within partialPattern.extendedTemplate and replace its value
302
- partialPattern . extendedTemplate = partialPattern . extendedTemplate . replace ( `{{ ${ prop } }}` , paramData [ prop ] ) ;
292
+ partialPattern . extendedTemplate = replaceParameter ( partialPattern . extendedTemplate , prop , paramData [ prop ] ) ;
303
293
}
304
294
}
305
295
306
296
// set pattern.extendedTemplate pMatch with replacedPartial
307
297
pattern . extendedTemplate = pattern . extendedTemplate . replace ( pMatch , partialPattern . extendedTemplate ) ;
308
298
309
- console . log ( 301 , 'partialPatternTemplate is now' , partialPattern . extendedTemplate )
310
-
311
- // return expandPartials(pattern, patternlab);
312
-
299
+ //todo: this no longer needs to be a promise
313
300
return Promise . resolve ( ) ;
314
301
315
-
316
- //combine all data: GLOBAL DATA => PATTERN.JSON DATA => PARAMETER DATA
317
- let allData = _ . merge ( globalData , localData ) ;
318
- allData = _ . merge ( allData , paramData ) ;
319
-
320
- //if the partial has pattern parameters itself, we need to handle those
321
- return findparameters ( partialPattern , patternlab ) . then ( ( ) => {
322
-
323
-
324
-
325
- logger . debug ( `recursively checking the partial itself ${ partialPattern . patternPartial } ` ) ;
326
-
327
- //if partial has style modifier data, replace the styleModifier value
328
- if ( pattern . stylePartials && pattern . stylePartials . length > 0 ) {
329
- style_modifier_hunter . consume_style_modifier ( partialPattern , pMatch , patternlab ) ;
330
- }
331
-
332
- //extend pattern data links into link for pattern link shortcuts to work. we do this locally and globally
333
- allData . link = extend ( { } , patternlab . data . link ) ;
334
- console . log ( 307 , allData . link )
335
-
336
- return render ( partialPattern , allData ) . then ( ( results ) => {
337
-
338
- console . log ( '310 pattern' , pattern . patternPartial , 'cleanPartial' , partialPattern . patternPartial , results )
339
-
340
- logger . debug ( `rendering the partialpattern ${ partialPattern . patternPartial } ` ) ;
341
-
342
- //defensively do this in case not set yet
343
- if ( ! pattern . extendedTemplate ) {
344
- pattern . extendedTemplate = pattern . template ;
345
- }
346
-
347
- console . log ( `parameter_hunter 320 within ${ pattern . patternPartial } , replacing partial ${ pMatch } with ${ results } ` )
348
- //remove the parameter from the partial and replace it with the rendered partial + paramData
349
- pattern . extendedTemplate = pattern . extendedTemplate . replace ( pMatch , results ) ;
350
- console . log ( `extendedTemplate now ${ pattern . extendedTemplate } ` )
351
-
352
- //update the extendedTemplate in the partials object in case this pattern is consumed later
353
- patternlab . partials [ pattern . patternPartial ] = pattern . extendedTemplate ;
354
- return Promise . resolve ( ) ;
355
- } ) ;
356
- } ) ;
357
302
} ) . catch ( reason => {
303
+ console . log ( reason ) ;
358
304
logger . error ( reason ) ;
359
305
} ) ;
360
306
} , Promise . resolve ( ) ) ;
0 commit comments