Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

yfm-test

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

yfm-test - npm Package Compare versions

Comparing version
0.1.2
to
0.2.0
+51
-18
index.js

@@ -1,22 +0,55 @@

var yaml = require('js-yaml');
var YAML = require('js-yaml');
var file = require('fs-utils');
var _ = require('lodash');
var toArray = function(val) {
val = !Array.isArray(val) ? [val] : val;
return _.compact([val]);
};
// Build RegExp patterns from a string or array
// @examples:
// 'foo' => '(?:foo)'
// ['foo', 'bar', 'baz'] => '(?:foo|bar|baz)'
var buildRegexGroup = function(patterns) {
patterns = toArray(patterns);
if(patterns.length > 0) {
patterns = patterns.join('|');
}
return '(?:' + patterns + ')';
};
module.exports = function (src, options) {
options = options || {};
var str = require('fs').readFileSync(src, 'utf8'),
delim = options.delim || '---',
arr = str.replace(/^-{3}/, '').split(delim),
obj = {};
'use strict';
if (arr.length === 1) {
if (/^-{3}/.test(arr)) {
obj.metadata = yaml.load(arr);
} else {
obj.content = arr[0];
}
} else {
obj.metadata = yaml.load(arr.shift());
obj.content = arr.join(delim).replace(/^\s*/, '');
var opts = _.extend({open: '---', close: '---'}, options);
var metadata = {};
// Build RegExp patterns for delims
var open = buildRegexGroup(opts.open);
var close = buildRegexGroup(opts.close);
var yfm = '\\s([\\s\\S]+?)';
var body = '(\\s[\\s\\S]+|\\s?)$';
var re = new RegExp('^' + open + yfm + close + body);
// Content
var content = file.readFileSync(src);
var original = content;
// Page object
var pageObj = content.match(re);
if (pageObj && pageObj.length === 3) {
metadata = YAML.load(pageObj[1]);
content = pageObj[2];
}
obj.original = str;
return obj;
};
return {
metadata: metadata,
content: content,
original: original
};
};
{
"name": "yfm-test",
"description": "Temp repo to test YAML front matter functions.",
"version": "0.1.2",
"version": "0.2.0",
"repository": {

@@ -21,3 +21,4 @@ "type": "git",

"js-yaml": "~2.1.3",
"lodash": "~2.4.0"
"lodash": "~2.4.0",
"fs-utils": "~0.1.0"
},

@@ -24,0 +25,0 @@ "devDependencies": {

@@ -6,3 +6,3 @@ // node.js

// node_modules
var expand = require('globule').find;
var glob = require('globule');

@@ -12,7 +12,7 @@ // Local libs

expand('fixtures/*.hbs').map(function (src) {
glob.match(['fixtures/*.hbs']).map(function (src) {
var name = path.basename(src, path.extname(src));
var dest = path.join('actual', name + '.json');
console.log(yfm(src));
fs.writeFileSync(dest, JSON.stringify(yfm(src), null, 2));
console.log(yfm(src));
});