New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

metalsmith-jstransformer

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

metalsmith-jstransformer - npm Package Compare versions

Comparing version 0.3.0 to 0.4.0

5

HISTORY.md
# Changelog
## v0.4.0: 2015-07-08
- Added processing on `inputFormats` rather than using the Transformer name
- Added Transformer outputFormat support
## v0.3.0: 2015-07-06

@@ -4,0 +9,0 @@

83

index.js
var jstransformer = require('jstransformer')
var listOfJsTransformers = require('list-of-jstransformers')
var toTransformer = require('inputformat-to-jstransformer')
var transformers = {}
var path = require('path')
var extend = require('extend')

@@ -11,16 +13,11 @@ /**

function getTransformer (name) {
if (listOfJsTransformers.indexOf(name) >= 0) {
if (transformers[name]) {
return transformers[name]
}
var transform = null
try {
transform = jstransformer(require('jstransformer-' + name))
} catch (e) {
// Do nothing.
}
transformers[name] = transform
if (transformers[name]) {
return transformers[name]
}
var transformer = toTransformer(name)
if (transformer) {
transformer = jstransformer(transformer)
}
transformers[name] = transformer
return transformer
}

@@ -32,25 +29,45 @@

for (var file in files) {
// Get all the transforming extensions.
var extensions = file.split('.')
// Do not process partials.
if (path.basename(file).charAt(0) !== '_') {
// Get all the transforming extensions.
var extensions = file.split('.')
// Prepare what the default output format should be.
var outputFormat = ''
// Loop through all the extensions in reverse order.
for (var i = extensions.length - 1; i > 0; i--) {
// Retrieve the transformer.
var transformer = getTransformer(extensions[i])
if (transformer) {
// Process the content of the file with the transformer.
var input = files[file].contents.toString()
for (var i = extensions.length - 1; i > 0; i--) {
// Retrieve the transformer.
var transformer = getTransformer(extensions[i])
if (transformer) {
// Process the content of the file with the transformer.
var input = files[file].contents.toString()
// TODO: Figure out what to do for options.
var output = transformer.render(input, files[file], files[file])
files[file].contents = new Buffer(output.body)
// Construct the options.
// TODO: Figure out what other options to inject.
var options = extend({}, metalsmith.metadata(), files[file], {
filename: metalsmith.source() + '/' + file
})
// Rename the file, removing the extension.
var data = files[file]
var output = transformer.render(input, options, options)
files[file].contents = new Buffer(output.body)
// Rename the file, removing the extension.
var data = files[file]
delete files[file]
var filepath = extensions
filepath.pop()
file = filepath.join('.')
files[file] = data
// Retrieve the new output format for the given transformer.
outputFormat = transformer.outputFormat
} else {
// Skip the rest of the file transformations.
break
}
}
// Rename the file to the output format, if no extension was provided.
if (path.extname(file) === '' && outputFormat !== '') {
var newFile = files[file]
delete files[file]
var filepath = extensions
filepath.pop()
file = filepath.join('.')
files[file] = data
} else {
// Skip the rest of the file transformations.
break
files[file + '.' + outputFormat] = newFile
}

@@ -57,0 +74,0 @@ }

{
"name": "metalsmith-jstransformer",
"version": "0.3.0",
"version": "0.4.0",
"description": "Metalsmith JSTransformer Plugin",

@@ -26,15 +26,17 @@ "main": "index.js",

"dependencies": {
"jstransformer": "^0.0.2",
"list-of-jstransformers": "0.0.2"
"extend": "^3.0.0",
"inputformat-to-jstransformer": "^1.1.0",
"jstransformer": "^0.0.2"
},
"devDependencies": {
"assert-dir-equal": "^1.0.1",
"jstransformer-coffee-script": "^0.1.0",
"jstransformer-jade": "0.0.3",
"jstransformer-styl": "^0.1.0",
"jstransformer-uglify-js": "^0.0.4",
"metalsmith": "^1.7.0",
"assert-dir-equal": "1.*",
"jstransformer-coffee-script": "0.*",
"jstransformer-jade": "0.*",
"jstransformer-marked": "0.0.2",
"jstransformer-styl": "0.*",
"jstransformer-uglify-js": "0.*",
"metalsmith": "1.*",
"mocha": "*",
"standard": "^4.3.3"
"standard": "4.*"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc