Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fuse

Package Overview
Dependencies
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fuse - npm Package Compare versions

Comparing version 0.1.1 to 0.2.0

test/html/expected/depends/basic-depends-result.html

2

bin/fuse.js

@@ -7,3 +7,3 @@ #!/usr/bin/env node

var _ = require('underscore');
var argv = require('optimist').usage('Usage: $0 -i [javascript-file.js] -o [javascript-file.js] (-w) (-c) (-m) (-l)').demand(['i', 'o']).describe('i', 'JavaScript input file').describe('o', 'JavaScript output file').describe('w', 'Watch the input file for changes.').describe('c', 'Compress the output using UglifyJS2.').describe('m', 'Mangle the output using UglifyJS2.').describe('l', 'Lint the JavaScript using JSHint').argv;
var argv = require('optimist').usage('\nFuse JavaScript or HTML files.\n\nUsage: $0 -i [input-file.(js|html)] -o [output-file.(js|html)] (-w) (-c) (-m) (-l)').demand(['i', 'o']).describe('i', 'Input file').describe('o', 'Output file').describe('w', 'Watch the input file for changes.').describe('c', 'Compress the output using UglifyJS2 (JavaScript only).').describe('m', 'Mangle the output using UglifyJS2. (JavaScript only)').describe('l', 'Lint the JavaScript using JSHint (JavaScript only)').argv;
var fuse = require('../lib/fuse');

@@ -10,0 +10,0 @@ var path = require('path');

@@ -17,3 +17,4 @@ (function () {

// regular expression to find referenced files
fuse.re = /\/\/ ?@(?:depends|import) (.+)\b/gi;
fuse.re = fuse.reJS = /\/\/ ?@(?:depends|import) (.+)\b/gi;
fuse.reHTML = /<!--\s?@(?:depends|import)\s(.+?)\s?-->/gi;

@@ -38,10 +39,14 @@ fuse.formatTime = function () {

// do we need to compress?
var compress = (arguments.length > 2) ? arguments[2] : false;
// do we need to mangle?
var mangle = (arguments.length > 3) ? arguments[3] : false;
// do we need to run the files through JSHint?
var lint = (arguments.length > 4) ? arguments[4] : false;
// what mode are we running in, HTML or JS?
var mode = path.extname(inputFile).replace(/^\./, '');
// do we need to compress (js only)?
var compress = (arguments.length > 2) ? arguments[2] && mode === 'js' : false;
// do we need to mangle (js only)?
var mangle = (arguments.length > 3) ? arguments[3] && mode === 'js' : false;
// do we need to run the files through JSHint (js only)?
var lint = (arguments.length > 4) ? arguments[4] && mode === 'js' : false;
// exit will be true, if we're not watching files
var exit = (arguments.length === 6) ? arguments[5] : true;
// swtich the regular expression based on mode
this.re = (mode === 'js') ? this.reJS : this.reHTML;
// grab the content of the input file

@@ -48,0 +53,0 @@ var content = fuse.getFileContent(inputFile);

{
"name" : "fuse",
"description" : "Command line combiner for fusing mutliple JavaScript files into one",
"description" : "Command line combiner for fusing mutliple JavaScript or HTML files into one.",
"url" : "http://github.com/smebberson/fuse",

@@ -13,4 +13,4 @@ "keywords" : ["combiner", "javascript", "cli", "parser", "command", "packager"],

"directories" : { "bin": "./bin" },
"version" : "0.1.1",
"version" : "0.2.0",
"engines" : {"node": ">=0.4"}
}

@@ -1,8 +0,8 @@

# Fuse [![Build Status](https://travis-ci.org/smebberson/fuse.png?branch=master)](https://travis-ci.org/smebberson/fuse)
# Fuse [![Build Status][image-1]][1]
> Fuse is a command line tool to fuse multiple JavaScript files into one, and optionally compress or mangle the JavaScript code.
> Fuse is a command line tool to fuse multiple JavaScript or HTML files into one. If you're fusing JavaScript you can optionally compress or mangle the JavaScript code.
## Introduction
Fuse is a simple cli tool to combine multiple JavaScript files into one. It also makes use of UglifyJS2 to either compress, or mangle or do both to the output of the JavaScript. It's designed to be simple, do less and be easy to use.
Fuse is a simple cli tool to combine multiple JavaScript or HTML files into one. It also makes use of UglifyJS2 to either compress, or mangle or do both to the output of the JavaScript. It's designed to be simple, do less and be easy to use.

@@ -19,3 +19,3 @@ ## Installation (via NPM)

Tests are run using [Mocha][mocha]. You can also run `make test` to run the tests.
Tests are run using [Mocha][2]. You can also run `make test` to run the tests.

@@ -26,3 +26,3 @@ ## Usage

Fuse uses inline comment-based directives to determine which JavaScript files you'd like to determine. Use the following syntax in your main JavaScript file to inform Fuse about which JavaScript file you'd like to fuse and where.
Fuse uses inline comment-based directives to determine which JavaScript files you'd like to fuse. Use the following syntax in your main JavaScript file to inform Fuse about which JavaScript file you'd like to fuse and where.

@@ -33,31 +33,43 @@ // @depends path/to/javascript/file.js

### In your HTML file
Fuse uses HTML comment-based directives to determine which HTML files you'd like to fuse. Use the following syntax in your main HTML file to inform Fuse about which HTML file you'd like to fuse and where.
<!-- @depends path/to/html/file.html -->
Passing a file with the line above to Fuse, will produce a file containing the original HTML and the content of _path/to/html/file.html_ in the exact position of the depends statement.
### On the command line
To run just once:
To run just once and combine JavaScript:
fuse -i path/to/main.js -o path/to/output.js
To watch a file for changes:
To watch a file for changes and combine HTML:
fuse -i path/to/main.js -o path/to/output.js -w
fuse -i path/to/main.html -o path/to/main-combined.html -w
When watching, Fuse will automatically watch any referenced files for changes too, and recompile the output file upon any changes to reference files.
To compress the output using UglifyJS2:
To compress the output using UglifyJS2 (JavaScript only):
fuse -i path/to/main.js -o path/to/output.js -c
To mangle the output using UglifyJS2:
To mangle the output using UglifyJS2 (JavaScript only):
fuse -i path/to/main.js -o path/to/output.js -m
To compress and mangle, and watch:
To compress and mangle, and watch (JavaScript only):
fuse -i path/to/main.js -o path/to/output.js -c -m -w
To lint with [jshint][jshint] before combining:
To lint with [jshint][3] before combining (JavaScript only):
fuse -i path/to/main.js -o path/to/output.js -l
[mocha]: http://visionmedia.github.com/mocha/
[jshint]: http://www.jshint.com/about/
[1]: https://travis-ci.org/smebberson/fuse
[2]: http://visionmedia.github.com/mocha/
[3]: http://www.jshint.com/about/
[image-1]: https://travis-ci.org/smebberson/fuse.png?branch=master

@@ -8,28 +8,50 @@ var assert = require('assert');

describe('should fuse two files', function () {
describe('with javascript', function () {
it('by @depends', function (done) {
describe('should fuse two files', function () {
exec('fuse -i ' + process.cwd() + '/test/src/depends/basic-depends.js -o ' + process.cwd() + '/test/result/depends/basic-depends-output.js', function (error, stdout, stderr) {
it('by @depends', function (done) {
// check the output against the expected output
assert.equal(fs.readFileSync(process.cwd() + '/test/result/depends/basic-depends-output.js', 'utf-8'), fs.readFileSync(process.cwd() + '/test/expected/depends/basic-depends-result.js', 'utf-8'));
exec('fuse -i ' + process.cwd() + '/test/javascript/src/depends/basic-depends.js -o ' + process.cwd() + '/test/javascript/result/depends/basic-depends-output.js', function (error, stdout, stderr) {
// we're done
done();
// check the output against the expected output
assert.equal(fs.readFileSync(process.cwd() + '/test/javascript/result/depends/basic-depends-output.js', 'utf-8'), fs.readFileSync(process.cwd() + '/test/javascript/expected/depends/basic-depends-result.js', 'utf-8'));
// we're done
done();
});
});
it('by @import', function (done) {
exec('fuse -i ' + process.cwd() + '/test/javascript/src/import/basic-import.js -o ' + process.cwd() + '/test/javascript/result/import/basic-import-output.js', function (error, stdout, stderr) {
// check the output against the expected output
assert.equal(fs.readFileSync(process.cwd() + '/test/javascript/result/import/basic-import-output.js', 'utf-8'), fs.readFileSync(process.cwd() + '/test/javascript/expected/import/basic-import-result.js', 'utf-8'));
// we're done
done();
});
});
});
it('by @import', function (done) {
describe('should fuse multiple files', function () {
exec('fuse -i ' + process.cwd() + '/test/src/import/basic-import.js -o ' + process.cwd() + '/test/result/import/basic-import-output.js', function (error, stdout, stderr) {
it('with two depends', function (done) {
// check the output against the expected output
assert.equal(fs.readFileSync(process.cwd() + '/test/result/import/basic-import-output.js', 'utf-8'), fs.readFileSync(process.cwd() + '/test/expected/import/basic-import-result.js', 'utf-8'));
exec('fuse -i ' + process.cwd() + '/test/javascript/src/twoDepends/input.js -o ' + process.cwd() + '/test/javascript/result/twoDepends/output.js', function (error, stdout, stderr) {
// we're done
done();
// check the output against the expected output
assert.equal(fs.readFileSync(process.cwd() + '/test/javascript/result/twoDepends/output.js', 'utf-8'), fs.readFileSync(process.cwd() + '/test/javascript/expected/twoDepends/result.js', 'utf-8'));
// we're done
done();
});
});

@@ -41,20 +63,56 @@

describe('should fuse multiple files', function () {
describe('with html', function () {
it('with two depends', function (done) {
describe('should fuse two files', function () {
exec('fuse -i ' + process.cwd() + '/test/src/twoDepends/input.js -o ' + process.cwd() + '/test/result/twoDepends/output.js', function (error, stdout, stderr) {
it('by <!-- @depends -->', function (done) {
// check the output against the expected output
assert.equal(fs.readFileSync(process.cwd() + '/test/result/twoDepends/output.js', 'utf-8'), fs.readFileSync(process.cwd() + '/test/expected/twoDepends/result.js', 'utf-8'));
exec('fuse -i ' + process.cwd() + '/test/html/src/depends/basic-depends.html -o ' + process.cwd() + '/test/html/result/depends/basic-depends-output.html', function (error, stdout, stderr) {
// we're done
done();
// check the output against the expected output
assert.equal(fs.readFileSync(process.cwd() + '/test/html/result/depends/basic-depends-output.html', 'utf-8'), fs.readFileSync(process.cwd() + '/test/html/expected/depends/basic-depends-result.html', 'utf-8'));
// we're done
done();
});
});
it('by <!-- @import -->', function (done) {
exec('fuse -i ' + process.cwd() + '/test/html/src/import/basic-import.html -o ' + process.cwd() + '/test/html/result/import/basic-import-output.html', function (error, stdout, stderr) {
// check the output against the expected output
assert.equal(fs.readFileSync(process.cwd() + '/test/html/result/import/basic-import-output.html', 'utf-8'), fs.readFileSync(process.cwd() + '/test/html/expected/import/basic-import-result.html', 'utf-8'));
// we're done
done();
});
});
});
describe('should fuse multiple files', function () {
it('with two depends', function (done) {
exec('fuse -i ' + process.cwd() + '/test/html/src/twoDepends/input.html -o ' + process.cwd() + '/test/html/result/twoDepends/output.html', function (error, stdout, stderr) {
// check the output against the expected output
assert.equal(fs.readFileSync(process.cwd() + '/test/html/result/twoDepends/output.html', 'utf-8'), fs.readFileSync(process.cwd() + '/test/html/expected/twoDepends/result.html', 'utf-8'));
// we're done
done();
});
});
});
});
});
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