pug-filters
Advanced tools
Comparing version 1.2.2 to 1.2.3
@@ -31,4 +31,5 @@ 'use strict'; | ||
var filename = attrs.filename = node.file.fullPath; | ||
var str = node.file.str; | ||
node.type = 'Text'; | ||
node.val = filterWithFallback(firstFilter, filename, attrs, 'renderFile'); | ||
node.val = filterFileWithFallback(firstFilter, filename, str, attrs); | ||
node.filters.forEach(function (filter) { | ||
@@ -57,2 +58,10 @@ var attrs = getAttributes(filter); | ||
} | ||
function filterFileWithFallback(filter, filename, text, attrs) { | ||
if (filters && filters[filter.name]) { | ||
return filters[filter.name](text, attrs); | ||
} else { | ||
return filterWithFallback(filter, filename, attrs, 'renderFile'); | ||
} | ||
} | ||
}, {includeDependencies: true}); | ||
@@ -59,0 +68,0 @@ return ast; |
{ | ||
"name": "pug-filters", | ||
"version": "1.2.2", | ||
"version": "1.2.3", | ||
"description": "Code for processing filters in pug templates", | ||
@@ -26,2 +26,3 @@ "keywords": [ | ||
"pug-lexer": "^2.0.2", | ||
"pug-load": "^2.0.0", | ||
"pug-parser": "^2.0.1", | ||
@@ -28,0 +29,0 @@ "testit": "^2.0.0" |
@@ -7,2 +7,3 @@ 'use strict'; | ||
var handleFilters = require('../').handleFilters; | ||
var customFilters = require('./custom-filters.js'); | ||
@@ -24,6 +25,6 @@ var testCases; | ||
testit('cases/' + filename, function () { | ||
var expectedAst = JSON.parse(read(filename.replace(/\.input\.json$/, '.expected.json'))); | ||
var actualAst = handleFilters(JSON.parse(read(filename))); | ||
write(filename.replace(/\.input\.json$/, '.actual.json'), JSON.stringify(actualAst, null, ' ')); | ||
assert.deepEqual(actualAst, expectedAst); | ||
var expectedAst = read(filename.replace(/\.input\.json$/, '.expected.json')); | ||
var actualAst = JSON.stringify(handleFilters(JSON.parse(read(filename)), customFilters), null, ' '); | ||
write(filename.replace(/\.input\.json$/, '.actual.json'), actualAst); | ||
assert.equal(actualAst, expectedAst); | ||
}) | ||
@@ -48,3 +49,3 @@ }); | ||
try { | ||
handleFilters(JSON.parse(read(filename))); | ||
handleFilters(JSON.parse(read(filename)), customFilters); | ||
throw new Error('Expected ' + filename + ' to throw an exception.'); | ||
@@ -51,0 +52,0 @@ } catch (ex) { |
@@ -7,4 +7,6 @@ 'use strict'; | ||
var lex = require('pug-lexer'); | ||
var load = require('pug-load'); | ||
var parse = require('pug-parser'); | ||
var handleFilters = require('../').handleFilters; | ||
var customFilters = require('./custom-filters.js'); | ||
@@ -17,3 +19,3 @@ var existing = fs.readdirSync(__dirname + '/cases').filter(function (name) { | ||
try { | ||
handleFilters(input); | ||
handleFilters(input, customFilters); | ||
throw new Error('Expected ' + filename + ' to throw an exception.'); | ||
@@ -44,23 +46,25 @@ } catch (ex) { | ||
if (alreadyExists) { | ||
var actualInputAst = getLoadedAst(entry.body.toString('utf8')); | ||
try { | ||
var expectedTokens = JSON.parse(fs.readFileSync(__dirname + '/cases/' + filename, 'utf8')); | ||
var actualTokens = JSON.parse(entry.body.toString('utf8')); | ||
assert.deepEqual(actualTokens, expectedTokens); | ||
var expectedInputAst = JSON.parse(fs.readFileSync(__dirname + '/cases/' + filename, 'utf8')); | ||
assert.deepEqual(expectedInputAst, actualInputAst); | ||
} catch (ex) { | ||
console.log('update: ' + filename); | ||
fs.writeFileSync(__dirname + '/cases/' + filename, entry.body); | ||
fs.writeFileSync(__dirname + '/cases/' + filename, JSON.stringify(actualInputAst, null, ' ')); | ||
} | ||
var actualAst = handleFilters(JSON.parse(entry.body.toString('utf8'))); | ||
var actualAstStr = JSON.stringify(handleFilters(actualInputAst, customFilters), null, ' '); | ||
try { | ||
var expectedAst = JSON.parse(fs.readFileSync(__dirname + '/cases/' + name + '.expected.json', 'utf8')); | ||
assert.deepEqual(actualAst, expectedAst); | ||
var expectedAstStr = fs.readFileSync(__dirname + '/cases/' + name + '.expected.json', 'utf8'); | ||
assert.equal(actualAstStr, expectedAstStr); | ||
} catch (ex) { | ||
console.log('update: ' + name + '.expected.json'); | ||
fs.writeFileSync(__dirname + '/cases/' + name + '.expected.json', JSON.stringify(actualAst, null, ' ')); | ||
fs.writeFileSync(__dirname + '/cases/' + name + '.expected.json', actualAstStr); | ||
} | ||
} else { | ||
console.log('create: ' + filename); | ||
fs.writeFileSync(__dirname + '/cases/' + filename, entry.body); | ||
var inputAst = getLoadedAst(entry.body.toString('utf8')); | ||
fs.writeFileSync(__dirname + '/cases/' + filename, JSON.stringify(inputAst, null, ' ')); | ||
console.log('create: ' + name + '.expected.json'); | ||
var ast = handleFilters(JSON.parse(entry.body.toString('utf8'))); | ||
var ast = handleFilters(inputAst, customFilters); | ||
fs.writeFileSync(__dirname + '/cases/' + name + '.expected.json', JSON.stringify(ast, null, ' ')); | ||
@@ -117,1 +121,15 @@ } | ||
}); | ||
function getLoadedAst(str) { | ||
return load(JSON.parse(str), { | ||
lex: function () { | ||
throw new Error('The lexer should not be used'); | ||
}, | ||
parse: function () { | ||
throw new Error('The parser should not be used'); | ||
}, | ||
resolve: function (filename, source, options) { | ||
return 'test/cases/' + filename.trim(); | ||
} | ||
}); | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
80258
40
2470
0
11