chore: refactor plunker translators with a new systemjs one (#3221)
This commit is contained in:
parent
2dd6ad1150
commit
dbe7d70bbf
|
@ -9,7 +9,9 @@ var fs = require("fs");
|
|||
var globby = require('globby');
|
||||
var mkdirp = require('mkdirp');
|
||||
|
||||
var indexHtmlTranslator = require('./indexHtmlTranslator');
|
||||
var fileTranslator = require('./translator/fileTranslator');
|
||||
var indexHtmlRules = require('./translator/rules/indexHtml');
|
||||
var systemjsConfigExtrasRules = require('./translator/rules/systemjsConfigExtras');
|
||||
var regionExtractor = require('../doc-shredder/regionExtractor');
|
||||
|
||||
class PlunkerBuilder {
|
||||
|
@ -141,7 +143,7 @@ class PlunkerBuilder {
|
|||
}
|
||||
|
||||
if (relativeFileName == 'index.html') {
|
||||
content = indexHtmlTranslator.translate(content);
|
||||
content = fileTranslator.translate(content, indexHtmlRules);
|
||||
if (config.description == null) {
|
||||
// set config.description to title from index.html
|
||||
var matches = /<title>(.*)<\/title>/.exec(content);
|
||||
|
@ -150,6 +152,11 @@ class PlunkerBuilder {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (relativeFileName == 'systemjs.config.extras.js') {
|
||||
content = fileTranslator.translate(content, systemjsConfigExtrasRules);
|
||||
}
|
||||
|
||||
content = regionExtractor.removeDocTags(content, extn.substr(1));
|
||||
|
||||
this.options.addField(postData, relativeFileName, content);
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
// var first_time = true; // DIAGNOSTIC
|
||||
|
||||
function translate(html, rulesFile) {
|
||||
rulesFile.rulesToApply.forEach(function(rxDatum) {
|
||||
var rxRule = rulesFile.rules[rxDatum.pattern];
|
||||
// rxFrom is a rexexp
|
||||
var rxFrom = rxRule.from;
|
||||
if (rxDatum.from) {
|
||||
var from = rxDatum.from.replace('/', '\/');
|
||||
var rxTemp = rxFrom.toString();
|
||||
rxTemp = rxTemp.replace('%tag%', from);
|
||||
rxFrom = rxFromString(rxTemp);
|
||||
}
|
||||
// rxTo is a string
|
||||
var rxTo = rxRule.to;
|
||||
if (rxDatum.to) {
|
||||
var to = rxDatum.to;
|
||||
to = Array.isArray(to) ? to : [to];
|
||||
to = to.map(function (toItem) {
|
||||
return rxTo.replace("%tag%", toItem);
|
||||
});
|
||||
rxTo = to.join("\n ");
|
||||
}
|
||||
|
||||
/* DIAGNOSTIC
|
||||
if (first_time && rxDatum.pattern === 'zone_pkg') {
|
||||
first_time = false;
|
||||
|
||||
console.log('zone_pkg');
|
||||
console.log(' rxFrom: '+rxFrom);
|
||||
console.log(' rxTo: '+rxTo);
|
||||
console.log(' replace: ' + html.replace(rxFrom, rxTo ));
|
||||
}
|
||||
*/
|
||||
html = html.replace(rxFrom, rxTo );
|
||||
});
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function rxFromString(rxString) {
|
||||
var rx = /^\/(.*)\/(.*)/;
|
||||
var pieces = rx.exec(rxString);
|
||||
return RegExp(pieces[1], pieces[2]);
|
||||
}
|
||||
|
||||
module.exports = {translate: translate};
|
|
@ -1,8 +1,4 @@
|
|||
module.exports = {
|
||||
translate: translate
|
||||
};
|
||||
|
||||
var _rxRules = {
|
||||
var rules = {
|
||||
basehref: {
|
||||
from: /<base href=".*"[/]?>/,
|
||||
to: '<script>document.write(\'<base href="\' + document.location + \'" />\');</script>'
|
||||
|
@ -41,7 +37,7 @@ var _rxRules = {
|
|||
},
|
||||
};
|
||||
|
||||
var _rxData = [
|
||||
var rulesToApply = [
|
||||
{
|
||||
pattern: 'basehref',
|
||||
},
|
||||
|
@ -113,49 +109,7 @@ var _rxData = [
|
|||
}
|
||||
];
|
||||
|
||||
|
||||
// var first_time = true; // DIAGNOSTIC
|
||||
|
||||
function translate(html) {
|
||||
_rxData.forEach(function(rxDatum) {
|
||||
var rxRule = _rxRules[rxDatum.pattern];
|
||||
// rxFrom is a rexexp
|
||||
var rxFrom = rxRule.from;
|
||||
if (rxDatum.from) {
|
||||
var from = rxDatum.from.replace('/', '\/');
|
||||
var rxTemp = rxFrom.toString();
|
||||
rxTemp = rxTemp.replace('%tag%', from);
|
||||
rxFrom = rxFromString(rxTemp);
|
||||
}
|
||||
// rxTo is a string
|
||||
var rxTo = rxRule.to;
|
||||
if (rxDatum.to) {
|
||||
var to = rxDatum.to;
|
||||
to = Array.isArray(to) ? to : [to];
|
||||
to = to.map(function (toItem) {
|
||||
return rxTo.replace("%tag%", toItem);
|
||||
});
|
||||
rxTo = to.join("\n ");
|
||||
}
|
||||
|
||||
/* DIAGNOSTIC
|
||||
if (first_time && rxDatum.pattern === 'zone_pkg') {
|
||||
first_time = false;
|
||||
|
||||
console.log('zone_pkg');
|
||||
console.log(' rxFrom: '+rxFrom);
|
||||
console.log(' rxTo: '+rxTo);
|
||||
console.log(' replace: ' + html.replace(rxFrom, rxTo ));
|
||||
}
|
||||
*/
|
||||
html = html.replace(rxFrom, rxTo );
|
||||
});
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function rxFromString(rxString) {
|
||||
var rx = /^\/(.*)\/(.*)/;
|
||||
var pieces = rx.exec(rxString);
|
||||
return RegExp(pieces[1], pieces[2]);
|
||||
}
|
||||
module.exports = {
|
||||
rules: rules,
|
||||
rulesToApply: rulesToApply
|
||||
};
|
|
@ -0,0 +1,24 @@
|
|||
var rules = {
|
||||
system_extra_main: {
|
||||
from: /main:\s*[\'|\"]index.js[\'|\"]/g,
|
||||
to: 'main: "index.ts"'
|
||||
},
|
||||
system_extra_defaultExtension: {
|
||||
from: /defaultExtension:\s*[\'|\"]js[\'|\"]/g,
|
||||
to: 'defaultExtension: "ts"'
|
||||
}
|
||||
};
|
||||
|
||||
var rulesToApply = [
|
||||
{
|
||||
pattern: 'system_extra_main'
|
||||
},
|
||||
{
|
||||
pattern: 'system_extra_defaultExtension'
|
||||
}
|
||||
];
|
||||
|
||||
module.exports = {
|
||||
rules: rules,
|
||||
rulesToApply: rulesToApply
|
||||
};
|
Loading…
Reference in New Issue