Socket
Socket
Sign inDemoInstall

grunt-md5

Package Overview
Dependencies
32
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.4 to 0.1.5

test/fixtures/test.js

40

Gruntfile.js

@@ -27,5 +27,5 @@ module.exports = function(grunt) {

node: true,
es5: true
},
globals: {}
es5: true,
globals: {}
}
},

@@ -40,7 +40,35 @@ clean: {

files: {
'test/fixtures/output': 'test/fixtures/js/*'
'test/fixtures/output/main': 'test/fixtures/test.js'
},
options: {
keepExtension: true
keepExtension: true,
keepBasename: true
}
},
noExtension: {
files: {
'test/fixtures/output/noExtension': 'test/fixtures/test.js'
},
options: {
keepExtension: false,
keepBasename: true
}
},
noBasename: {
files: {
'test/fixtures/output/noBasename': 'test/fixtures/test.js'
},
options: {
keepExtension: true,
keepBasename: false
}
},
noBasenameOrExtension: {
files: {
'test/fixtures/output/noBasenameOrExtension': 'test/fixtures/test.js'
},
options: {
keepExtension: false,
keepBasename: false
}
}

@@ -57,4 +85,4 @@ },

grunt.loadNpmTasks('grunt-contrib-nodeunit');
grunt.registerTask('test', ['clean', 'md5', 'nodeunit']);
grunt.registerTask('test', ['clean', 'md5', 'nodeunit', 'clean']);
grunt.registerTask('default', ['jshint', 'test']);
};

7

package.json
{
"name": "grunt-md5",
"description": "generate md5 filename",
"version": "0.1.4",
"version": "0.1.5",
"homepage": "https://github.com/jney/grunt-md5",

@@ -32,6 +32,7 @@ "author": {

"dependencies": {
"grunt": "~0.4.0a"
"grunt-cli": "~0.1.2",
"grunt": "~0.4.0"
},
"devDependencies": {
"grunt": "~0.4.0a",
"grunt": "~0.4.0",
"grunt-contrib-clean": "~0.4.0a",

@@ -38,0 +39,0 @@ "grunt-contrib-jshint": "*",

@@ -29,2 +29,3 @@ [![build status](https://secure.travis-ci.org/jney/grunt-md5.png)](http://travis-ci.org/jney/grunt-md5)

},
keepBasename: true,
keepExtension: true

@@ -41,2 +42,4 @@ }

## Release History
* 0.1.5 Support for keeping the original file's basename
* 0.1.4 Compatibility with grunt 0.4
* 0.1.1 Fixing many files handling

@@ -46,3 +49,3 @@ * 0.0.1 First Release

## License
Copyright (c) 2012 Jean-Sébastien Ney
Copyright (c) 2012 Jean-Sébastien Ney & contributors
Licensed under the MIT license.

@@ -17,68 +17,54 @@ /*

var _ = grunt.util._;
var _ = grunt.util._, path = require('path');
grunt.registerMultiTask('md5', 'Generate a md5 filename', function() {
var options = this.options();
var srcFiles;
var destDir;
var options = this.options(),
srcFiles = grunt.file.expandFiles(this.file.srcRaw),
destDir = this.file.dest;
grunt.verbose.writeflags(options, 'Options');
this.files.forEach(function(file) {
grunt.verbose.writeln('Files: ' + srcFiles);
grunt.verbose.writeln('Destination directory:' + destDir);
srcFiles = grunt.file.expandFiles(file.src);
destDir = file.dest;
if (typeof srcFiles === 'undefined') {
grunt.fail.warn("Files object doesn't exist");
}
if (typeof srcFiles === 'undefined') {
// TODO generate error if file does not exists
return;
}
srcFiles.forEach(function(srcFile) {
if (grunt.file.exists(destDir) === false) {
grunt.verbose.writeln("Creating destination directory as it didn't exist.");
grunt.file.mkdir(destDir);
}
destDir = grunt.file.expandDirs(destDir)[0];
try {
var srcCode = grunt.file.read(srcFile), ext = '', basename = '', filename, destFile;
// keep extension unless you explicitly tell to not
if (options.keepExtension !== false) {
ext = path.extname(srcFile);
}
// keep basename unless you explicitly tell to not
if (options.keepBasename !== false) {
basename = path.basename(srcFile, ext || path.extname(srcFile)) + '-';
}
filename = basename +
require('crypto').
createHash('md5').
update(srcCode).
digest('hex') + ext;
srcFiles.forEach(function(srcFile) {
destFile = path.join(destDir, filename);
try {
var srcCode = grunt.file.read(srcFile);
var ext = '';
// keep extension unless you explicitly tell to not
if (options.keepExtension !== false) {
ext = fileExtension(srcFile);
if (ext) {
ext = '.' + ext;
}
}
var filename = require('crypto').
createHash('md5').
update(srcCode).
digest('hex') + ext;
grunt.file.copy(srcFile, destFile);
var destFile = require('path').join(destDir, filename);
grunt.file.copy(srcFile, destFile);
if (_.isFunction(options.callback)) {
options.callback(destFile, srcFile, srcCode);
}
grunt.log.writeln('File \'' + destFile + '\' created.');
} catch(err) {
grunt.log.error(err);
grunt.fail.warn("Fail to generate an MD5 file name");
if (_.isFunction(options.callback)) {
options.callback(destFile, srcFile, srcCode);
}
});
grunt.log.writeln("File '" + destFile + "' created.");
} catch(err) {
grunt.log.error(err);
grunt.fail.warn("Fail to generate an MD5 file name");
}
});
});
function fileExtension(filename) {
var array = filename.split('.');
if (array.length === 1) {
return '';
} else {
return array.pop();
}
}
};
'use strict';
var fs = require('fs');
var grunt = require('grunt');

@@ -8,20 +7,49 @@

main: function(test) {
test.expect(2);
test.expect(1);
var filenameA = require('crypto').
var md5Filename = 'test-' + require('crypto').
createHash('md5').
update(fs.readFileSync('test/fixtures/js/test-a.js', 'utf8')).
update(grunt.file.read('test/fixtures/test.js')).
digest('hex') + '.js';
var resultA = fs.existsSync('test/fixtures/output/'+filenameA);
test.ok(resultA, 'should generate a md5 filename');
var filenameB = require('crypto').
test.ok(grunt.file.exists('test/fixtures/output/main/' + md5Filename),
'should generate an MD5 filename keeping its basename and extension');
test.done();
},
noExtension: function(test) {
test.expect(1);
var md5Filename = 'test-' + require('crypto').
createHash('md5').
update(fs.readFileSync('test/fixtures/js/test-b.js', 'utf8')).
update(grunt.file.read('test/fixtures/test.js')).
digest('hex');
test.ok(grunt.file.exists('test/fixtures/output/noExtension/' + md5Filename),
'should generate an MD5 filename keeping only its basename');
test.done();
},
noBasename: function(test) {
test.expect(1);
var md5Filename = require('crypto').
createHash('md5').
update(grunt.file.read('test/fixtures/test.js')).
digest('hex') + '.js';
var resultB = fs.existsSync('test/fixtures/output/'+filenameB);
test.ok(resultB, 'should generate a md5 filename');
test.ok(grunt.file.exists('test/fixtures/output/noBasename/' + md5Filename),
'should generate an MD5 filename keeping only its extension');
test.done();
},
noBasenameOrExtension: function(test) {
test.expect(1);
var md5Filename = require('crypto').
createHash('md5').
update(grunt.file.read('test/fixtures/test.js')).
digest('hex');
test.ok(grunt.file.exists('test/fixtures/output/noBasenameOrExtension/' + md5Filename),
'should generate an MD5 filename without keeping its basename or extension');
test.done();
}
};
SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc