Skip to content
This repository was archived by the owner on Dec 4, 2017. It is now read-only.

Commit dbe7d70

Browse files
authored
chore: refactor plunker translators with a new systemjs one (#3221)
1 parent 2dd6ad1 commit dbe7d70

File tree

4 files changed

+86
-54
lines changed

4 files changed

+86
-54
lines changed

tools/plunker-builder/builder.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ var fs = require("fs");
99
var globby = require('globby');
1010
var mkdirp = require('mkdirp');
1111

12-
var indexHtmlTranslator = require('./indexHtmlTranslator');
12+
var fileTranslator = require('./translator/fileTranslator');
13+
var indexHtmlRules = require('./translator/rules/indexHtml');
14+
var systemjsConfigExtrasRules = require('./translator/rules/systemjsConfigExtras');
1315
var regionExtractor = require('../doc-shredder/regionExtractor');
1416

1517
class PlunkerBuilder {
@@ -141,7 +143,7 @@ class PlunkerBuilder {
141143
}
142144

143145
if (relativeFileName == 'index.html') {
144-
content = indexHtmlTranslator.translate(content);
146+
content = fileTranslator.translate(content, indexHtmlRules);
145147
if (config.description == null) {
146148
// set config.description to title from index.html
147149
var matches = /<title>(.*)<\/title>/.exec(content);
@@ -150,6 +152,11 @@ class PlunkerBuilder {
150152
}
151153
}
152154
}
155+
156+
if (relativeFileName == 'systemjs.config.extras.js') {
157+
content = fileTranslator.translate(content, systemjsConfigExtrasRules);
158+
}
159+
153160
content = regionExtractor.removeDocTags(content, extn.substr(1));
154161

155162
this.options.addField(postData, relativeFileName, content);
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// var first_time = true; // DIAGNOSTIC
2+
3+
function translate(html, rulesFile) {
4+
rulesFile.rulesToApply.forEach(function(rxDatum) {
5+
var rxRule = rulesFile.rules[rxDatum.pattern];
6+
// rxFrom is a rexexp
7+
var rxFrom = rxRule.from;
8+
if (rxDatum.from) {
9+
var from = rxDatum.from.replace('/', '\/');
10+
var rxTemp = rxFrom.toString();
11+
rxTemp = rxTemp.replace('%tag%', from);
12+
rxFrom = rxFromString(rxTemp);
13+
}
14+
// rxTo is a string
15+
var rxTo = rxRule.to;
16+
if (rxDatum.to) {
17+
var to = rxDatum.to;
18+
to = Array.isArray(to) ? to : [to];
19+
to = to.map(function (toItem) {
20+
return rxTo.replace("%tag%", toItem);
21+
});
22+
rxTo = to.join("\n ");
23+
}
24+
25+
/* DIAGNOSTIC
26+
if (first_time && rxDatum.pattern === 'zone_pkg') {
27+
first_time = false;
28+
29+
console.log('zone_pkg');
30+
console.log(' rxFrom: '+rxFrom);
31+
console.log(' rxTo: '+rxTo);
32+
console.log(' replace: ' + html.replace(rxFrom, rxTo ));
33+
}
34+
*/
35+
html = html.replace(rxFrom, rxTo );
36+
});
37+
38+
return html;
39+
}
40+
41+
function rxFromString(rxString) {
42+
var rx = /^\/(.*)\/(.*)/;
43+
var pieces = rx.exec(rxString);
44+
return RegExp(pieces[1], pieces[2]);
45+
}
46+
47+
module.exports = {translate: translate};

tools/plunker-builder/indexHtmlTranslator.js renamed to tools/plunker-builder/translator/rules/indexHtml.js

Lines changed: 6 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
module.exports = {
2-
translate: translate
3-
};
4-
5-
var _rxRules = {
1+
var rules = {
62
basehref: {
73
from: /<base href=".*"[/]?>/,
84
to: '<script>document.write(\'<base href="\' + document.location + \'" />\');</script>'
@@ -41,7 +37,7 @@ var _rxRules = {
4137
},
4238
};
4339

44-
var _rxData = [
40+
var rulesToApply = [
4541
{
4642
pattern: 'basehref',
4743
},
@@ -113,49 +109,7 @@ var _rxData = [
113109
}
114110
];
115111

116-
117-
// var first_time = true; // DIAGNOSTIC
118-
119-
function translate(html) {
120-
_rxData.forEach(function(rxDatum) {
121-
var rxRule = _rxRules[rxDatum.pattern];
122-
// rxFrom is a rexexp
123-
var rxFrom = rxRule.from;
124-
if (rxDatum.from) {
125-
var from = rxDatum.from.replace('/', '\/');
126-
var rxTemp = rxFrom.toString();
127-
rxTemp = rxTemp.replace('%tag%', from);
128-
rxFrom = rxFromString(rxTemp);
129-
}
130-
// rxTo is a string
131-
var rxTo = rxRule.to;
132-
if (rxDatum.to) {
133-
var to = rxDatum.to;
134-
to = Array.isArray(to) ? to : [to];
135-
to = to.map(function (toItem) {
136-
return rxTo.replace("%tag%", toItem);
137-
});
138-
rxTo = to.join("\n ");
139-
}
140-
141-
/* DIAGNOSTIC
142-
if (first_time && rxDatum.pattern === 'zone_pkg') {
143-
first_time = false;
144-
145-
console.log('zone_pkg');
146-
console.log(' rxFrom: '+rxFrom);
147-
console.log(' rxTo: '+rxTo);
148-
console.log(' replace: ' + html.replace(rxFrom, rxTo ));
149-
}
150-
*/
151-
html = html.replace(rxFrom, rxTo );
152-
});
153-
154-
return html;
155-
}
156-
157-
function rxFromString(rxString) {
158-
var rx = /^\/(.*)\/(.*)/;
159-
var pieces = rx.exec(rxString);
160-
return RegExp(pieces[1], pieces[2]);
161-
}
112+
module.exports = {
113+
rules: rules,
114+
rulesToApply: rulesToApply
115+
};
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
var rules = {
2+
system_extra_main: {
3+
from: /main:\s*[\'|\"]index.js[\'|\"]/g,
4+
to: 'main: "index.ts"'
5+
},
6+
system_extra_defaultExtension: {
7+
from: /defaultExtension:\s*[\'|\"]js[\'|\"]/g,
8+
to: 'defaultExtension: "ts"'
9+
}
10+
};
11+
12+
var rulesToApply = [
13+
{
14+
pattern: 'system_extra_main'
15+
},
16+
{
17+
pattern: 'system_extra_defaultExtension'
18+
}
19+
];
20+
21+
module.exports = {
22+
rules: rules,
23+
rulesToApply: rulesToApply
24+
};

0 commit comments

Comments
 (0)