1 |
|
2 | module.exports = function (extra_extensions) {
|
3 |
|
4 | var extensions = [
|
5 | '.text',
|
6 | '.txt',
|
7 | '.html',
|
8 | '.tmpl'
|
9 | ];
|
10 |
|
11 | if (Object.prototype.toString.call(extra_extensions) !== '[object Array]') {
|
12 | extra_extensions = [];
|
13 | }
|
14 |
|
15 | for (var i = 0; i < extra_extensions.length; i++) {
|
16 | if (extensions[extra_extensions[i]]) { continue; }
|
17 |
|
18 | extensions.push(extra_extensions[i]);
|
19 | }
|
20 |
|
21 | var middleware = function (bundle) {
|
22 |
|
23 | function stringifyText(text) {
|
24 | var stringified_text;
|
25 |
|
26 | stringified_text = text.replace(/\"/g, '\u005C\u0022');
|
27 | stringified_text = stringified_text.replace(/^(.*)/gm, '"$1');
|
28 | stringified_text = stringified_text.replace(/(.+)$/gm, '$1" +');
|
29 | stringified_text = stringified_text.replace(/\+$/, '');
|
30 |
|
31 | return stringified_text;
|
32 | }
|
33 |
|
34 | var text_handler = function (body, file) {
|
35 | var safe_body = stringifyText(body);
|
36 |
|
37 | return 'module.exports = ' + safe_body + ';\n';
|
38 | };
|
39 |
|
40 | for (var i = 0; i < extensions.length; i++) {
|
41 | bundle.register(extensions[i], text_handler);
|
42 | }
|
43 | };
|
44 |
|
45 | return middleware;
|
46 | };
|