From 78633fba28ab3261b3a4c9b95d52ce666cb7a045 Mon Sep 17 00:00:00 2001 From: Bryce Gilhome Date: Wed, 9 Jan 2019 17:01:01 -0800 Subject: [PATCH 1/4] Add yml/yaml to glob pattern for pseudo pattern hunting. --- packages/core/src/lib/pseudopattern_hunter.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/lib/pseudopattern_hunter.js b/packages/core/src/lib/pseudopattern_hunter.js index 33c7d2ee2..5959e8312 100644 --- a/packages/core/src/lib/pseudopattern_hunter.js +++ b/packages/core/src/lib/pseudopattern_hunter.js @@ -22,9 +22,9 @@ pseudopattern_hunter.prototype.find_pseudopatterns = function( const paths = patternlab.config.paths; //look for a pseudo pattern by checking if there is a file containing same - //name, with ~ in it, ending in .json + //name, with ~ in it, ending in .json, .yml or .yaml const needle = - currentPattern.subdir + '/' + currentPattern.fileName + '~*.json'; + currentPattern.subdir + '/' + currentPattern.fileName + '~*.(json|yml|yaml)'; const pseudoPatterns = glob.sync(needle, { cwd: paths.source.patterns, debug: false, From 7ed0c99b31d802f05ecde2cb7804e1d1df5b95a5 Mon Sep 17 00:00:00 2001 From: Bryce Gilhome Date: Wed, 9 Jan 2019 18:09:54 -0800 Subject: [PATCH 2/4] Allow the pseudo data read code to handle yaml. Get the pseudo data file extension dynamically. --- packages/core/src/lib/pseudopattern_hunter.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/core/src/lib/pseudopattern_hunter.js b/packages/core/src/lib/pseudopattern_hunter.js index 5959e8312..d1133736d 100644 --- a/packages/core/src/lib/pseudopattern_hunter.js +++ b/packages/core/src/lib/pseudopattern_hunter.js @@ -12,6 +12,7 @@ const logger = require('./log'); const readDocumentation = require('./readDocumentation'); const lineage_hunter = new lh(); const changes_hunter = new ch(); +const yaml = require('js-yaml'); const pseudopattern_hunter = function() {}; @@ -24,7 +25,7 @@ pseudopattern_hunter.prototype.find_pseudopatterns = function( //look for a pseudo pattern by checking if there is a file containing same //name, with ~ in it, ending in .json, .yml or .yaml const needle = - currentPattern.subdir + '/' + currentPattern.fileName + '~*.(json|yml|yaml)'; + currentPattern.subdir + '/' + currentPattern.fileName + '~*.{json,yml,yaml}'; const pseudoPatterns = glob.sync(needle, { cwd: paths.source.patterns, debug: false, @@ -45,7 +46,9 @@ pseudopattern_hunter.prototype.find_pseudopatterns = function( paths.source.patterns, pseudoPatterns[i] ); - variantFileData = fs.readJSONSync(variantFileFullPath); + variantFileData = yaml.safeLoad( + fs.readFileSync(variantFileFullPath, 'utf8') + ); } catch (err) { logger.warning( `There was an error parsing pseudopattern JSON for ${ @@ -65,9 +68,10 @@ pseudopattern_hunter.prototype.find_pseudopatterns = function( const variantName = pseudoPatterns[i] .substring(pseudoPatterns[i].indexOf('~') + 1) .split('.')[0]; + const variantExtension = pseudoPatterns[i].split('.').slice(-1).pop(); const variantFilePath = path.join( currentPattern.subdir, - currentPattern.fileName + '~' + variantName + '.json' + currentPattern.fileName + '~' + variantName + '.' + variantExtension ); const lm = fs.statSync(variantFileFullPath); const patternVariant = Pattern.create( From 79166e3737c746cf930c7bb23ea904d7892396dd Mon Sep 17 00:00:00 2001 From: Bryce Gilhome Date: Thu, 10 Jan 2019 10:04:03 -0800 Subject: [PATCH 3/4] Linting fixes. --- packages/core/src/lib/pseudopattern_hunter.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/core/src/lib/pseudopattern_hunter.js b/packages/core/src/lib/pseudopattern_hunter.js index d1133736d..1aac09ae7 100644 --- a/packages/core/src/lib/pseudopattern_hunter.js +++ b/packages/core/src/lib/pseudopattern_hunter.js @@ -24,8 +24,10 @@ pseudopattern_hunter.prototype.find_pseudopatterns = function( //look for a pseudo pattern by checking if there is a file containing same //name, with ~ in it, ending in .json, .yml or .yaml - const needle = - currentPattern.subdir + '/' + currentPattern.fileName + '~*.{json,yml,yaml}'; + const needle = currentPattern.subdir + + '/' + + currentPattern.fileName + + '~*.{json,yml,yaml}'; const pseudoPatterns = glob.sync(needle, { cwd: paths.source.patterns, debug: false, @@ -53,7 +55,7 @@ pseudopattern_hunter.prototype.find_pseudopatterns = function( logger.warning( `There was an error parsing pseudopattern JSON for ${ currentPattern.relPath - }` + }` ); logger.warning(err); } @@ -68,7 +70,10 @@ pseudopattern_hunter.prototype.find_pseudopatterns = function( const variantName = pseudoPatterns[i] .substring(pseudoPatterns[i].indexOf('~') + 1) .split('.')[0]; - const variantExtension = pseudoPatterns[i].split('.').slice(-1).pop(); + const variantExtension = pseudoPatterns[i] + .split('.') + .slice(-1) + .pop(); const variantFilePath = path.join( currentPattern.subdir, currentPattern.fileName + '~' + variantName + '.' + variantExtension From 8658a533419b571ddba121bdffb65dcfe7d15157 Mon Sep 17 00:00:00 2001 From: Bryce Gilhome Date: Thu, 10 Jan 2019 10:31:51 -0800 Subject: [PATCH 4/4] Couple more linting fixes. --- packages/core/src/lib/pseudopattern_hunter.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/core/src/lib/pseudopattern_hunter.js b/packages/core/src/lib/pseudopattern_hunter.js index 1aac09ae7..c57379405 100644 --- a/packages/core/src/lib/pseudopattern_hunter.js +++ b/packages/core/src/lib/pseudopattern_hunter.js @@ -24,7 +24,8 @@ pseudopattern_hunter.prototype.find_pseudopatterns = function( //look for a pseudo pattern by checking if there is a file containing same //name, with ~ in it, ending in .json, .yml or .yaml - const needle = currentPattern.subdir + + const needle = + currentPattern.subdir + '/' + currentPattern.fileName + '~*.{json,yml,yaml}'; @@ -55,7 +56,7 @@ pseudopattern_hunter.prototype.find_pseudopatterns = function( logger.warning( `There was an error parsing pseudopattern JSON for ${ currentPattern.relPath - }` + }` ); logger.warning(err); }