Skip to content

Commit

Permalink
feat: Adds exportAsDefault
Browse files Browse the repository at this point in the history
  • Loading branch information
laland authored and joshwiens committed Jul 26, 2017
1 parent d1e594c commit 37d40d8
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 12 deletions.
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,9 +141,13 @@ require("html?interpolate=require!./file.ftl");
<div>${require('./components/gallery.html')}</div>
```

### Export format
### Export formats

By default HTML is exported with ```module.exports```, but you can use ```exportAsEs6Default``` flag to export it as ES6 default export (via ```exports.default```)
There are different export formats available:

+ ```module.exports``` (default, cjs format). "Hello world" becomes ```module.exports = "Hello world";```
+ ```exports.default``` (when ```exportAsDefault``` param is set, es6to5 format). "Hello world" becomes ```exports.default = "Hello world";```
+ ```exports default``` (when ```exportAsEs6Default``` param is set, es6 format). "Hello world" becomes ```exports default "Hello world";```

### Advanced options

Expand Down
12 changes: 9 additions & 3 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,15 @@ module.exports = function(content) {
content = JSON.stringify(content);
}

var exportsString = config.exportAsEs6Default? "exports.default": "module.exports";

return exportsString + " = " + content.replace(/xxxHTMLLINKxxx[0-9\.]+xxx/g, function(match) {
var exportsString = "module.exports = ";
if (config.exportAsDefault) {
exportsString = "exports.default = ";

} else if (config.exportAsEs6Default) {
exportsString = "exports default ";
}

return exportsString + content.replace(/xxxHTMLLINKxxx[0-9\.]+xxx/g, function(match) {
if(!data[match]) return match;
return '" + require(' + JSON.stringify(loaderUtils.urlToRequest(data[match], root)) + ') + "';
}) + ";";
Expand Down
21 changes: 14 additions & 7 deletions test/loaderTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,18 @@ describe("loader", function() {
'module.exports = "<a href=\\"${list.href}\\"><img src=\\"" + require("./test.jpg") + "\\" /></a>";'
);
});
it("should export as es6 default export", function() {
loader.call({
query: "?exportAsEs6Default"
}, '<p>Hello world!</p>').should.be.eql(
'exports.default = "<p>Hello world!</p>";'
);
});
it("should export as default export for es6to5 transpilation", function() {
loader.call({
query: "?exportAsDefault"
}, '<p>Hello world!</p>').should.be.eql(
'exports.default = "<p>Hello world!</p>";'
);
});
it("should export as es6 default export", function() {
loader.call({
query: "?exportAsEs6Default"
}, '<p>Hello world!</p>').should.be.eql(
'exports default "<p>Hello world!</p>";'
);
});
});

0 comments on commit 37d40d8

Please sign in to comment.