move connect middleware and browserify to separate modules
This commit is contained in:
40
README.md
40
README.md
@@ -55,6 +55,15 @@ To be implemented:
|
||||
|
||||
- [Generators](FEATURES.md#generators)
|
||||
|
||||
## Plugins
|
||||
|
||||
- [Browserify](https://github.com/sebmck/6to5-browserify)
|
||||
- [Connect Middleware](https://github.com/sebmck/6to5-connect)
|
||||
- [Gulp](https://github.com/sindresorhus/gulp-6to5)*
|
||||
- [Brunch](https://github.com/es128/6to5-brunch)*
|
||||
|
||||
*Community contributed
|
||||
|
||||
## Usage
|
||||
|
||||
### CLI
|
||||
@@ -85,10 +94,6 @@ Compile and run `test.js`.
|
||||
|
||||
$ 6to5-node test
|
||||
|
||||
### Browserify
|
||||
|
||||
$ browserify script.js -t 6to5/browserify --outfile bundle.js
|
||||
|
||||
### Node
|
||||
|
||||
```javascript
|
||||
@@ -140,33 +145,6 @@ code.
|
||||
require("6to5/register");
|
||||
```
|
||||
|
||||
#### Connect Middleware
|
||||
|
||||
```javascript
|
||||
var to5 = require("6to5");
|
||||
|
||||
app.use(to5.middleware({
|
||||
options: {
|
||||
// options to use when transforming files
|
||||
},
|
||||
src: "assets",
|
||||
dest: "cache"
|
||||
}));
|
||||
|
||||
app.use(connect.static("cache"));
|
||||
```
|
||||
|
||||
#### Browserify
|
||||
|
||||
```javascript
|
||||
var to5 = require("6to5");
|
||||
browserify()
|
||||
.transform(to5.browserify)
|
||||
.require("script.js", { entry: true })
|
||||
.bundle({ debug: true })
|
||||
.pipe(fs.createWriteStream("bundle.js"));
|
||||
```
|
||||
|
||||
## Caveats
|
||||
|
||||
### For-of
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
module.exports = require("./lib/6to5/browserify");
|
||||
@@ -1,31 +0,0 @@
|
||||
var transform = require("./transform");
|
||||
var through = require("through");
|
||||
var _ = require("lodash");
|
||||
|
||||
var browserify = module.exports = function (filename) {
|
||||
return browserify.configure()(filename);
|
||||
};
|
||||
|
||||
browserify.configure = function (opts) {
|
||||
opts = opts || {};
|
||||
|
||||
return function (filename) {
|
||||
var data = "";
|
||||
|
||||
var write = function (buf) {
|
||||
data += buf;
|
||||
};
|
||||
|
||||
var end = function () {
|
||||
var opts2 = _.clone(opts);
|
||||
opts2.filename = filename;
|
||||
|
||||
var out = transform(data, opts2);
|
||||
stream.queue(out);
|
||||
stream.queue(null);
|
||||
};
|
||||
|
||||
var stream = through(write, end);
|
||||
return stream;
|
||||
};
|
||||
};
|
||||
@@ -1,67 +0,0 @@
|
||||
var util = require("./util");
|
||||
var path = require("path");
|
||||
var api = require("./node");
|
||||
var fs = require("fs");
|
||||
var _ = require("lodash");
|
||||
|
||||
module.exports = function (opts) {
|
||||
opts = _.defaults(opts || {}, {
|
||||
options: {},
|
||||
dest: "cache",
|
||||
src: "assets"
|
||||
});
|
||||
|
||||
var cache = {};
|
||||
|
||||
return function (req, res, next) {
|
||||
var url = req.url;
|
||||
if (!util.canCompile(url)) return next();
|
||||
|
||||
var dest = path.join(opts.dest, url);
|
||||
var src = path.join(opts.src, url);
|
||||
|
||||
var write = function (transformed) {
|
||||
fs.writeFile(dest, transformed, function (err) {
|
||||
if (err) {
|
||||
next(err);
|
||||
} else {
|
||||
cache[url] = Date.now();
|
||||
next();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var compile = function () {
|
||||
var transformOpts = _.clone(opts.options);
|
||||
|
||||
api.transformFile(opts.dest, transformOpts, function (err, transformed) {
|
||||
if (err) return next(err);
|
||||
write(transformed);
|
||||
});
|
||||
};
|
||||
|
||||
var destExists = function () {
|
||||
fs.stat(dest, function (err, stat) {
|
||||
if (err) return next(err);
|
||||
|
||||
if (cache[url] < +stat.mtime) {
|
||||
compile();
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
fs.exists(src, function (exists) {
|
||||
if (!exists) return next();
|
||||
|
||||
fs.exists(dest, function (exists) {
|
||||
if (exists && cache[dest]) {
|
||||
destExists();
|
||||
} else {
|
||||
compile();
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
};
|
||||
@@ -2,8 +2,7 @@ var transform = require("./transform");
|
||||
var fs = require("fs");
|
||||
var _ = require("lodash");
|
||||
|
||||
exports.browserify = require("./browserify");
|
||||
exports.middleware = require("./middleware");
|
||||
exports.util = require("./util");
|
||||
|
||||
exports.register = function () {
|
||||
require("./register");
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "6to5",
|
||||
"description": "Turn ES6 code into vanilla ES5 with no runtime required",
|
||||
"version": "0.0.10",
|
||||
"version": "0.1.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebmck/6to5.git"
|
||||
@@ -23,7 +23,6 @@
|
||||
"fs-readdir-recursive": "0.0.2",
|
||||
"lodash": "2.4.1",
|
||||
"mkdirp": "0.5.0",
|
||||
"through": "2.3.4",
|
||||
"escodegen": "https://github.com/Constellation/escodegen/archive/624550d0d6edf812a661902c6908dedff66005a7.tar.gz",
|
||||
"esprima": "https://github.com/esnext/esprima/archive/ebda4fb14a2aad61c54a83006c061c1649636985.tar.gz",
|
||||
"estraverse": "1.5.1",
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
suite("browserify", function () {
|
||||
|
||||
});
|
||||
@@ -1,3 +0,0 @@
|
||||
suite("browserify", function () {
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user