///
///
/**
* Transforms the definition and requires from a file, into local modules.
*/
class DefinitionTransformer implements ContentTransformer {
/**
* Transforms the definitions from the file, from external
* modules into local modules.
*/
transform(content: string) : string {
var lines = content.split(/\n/);
for (var i = 0; i < lines.length; i++) {
lines[i] = lines[i].replace(/(\s*)declare module ["'](.*)["']/, (subString, ...matches) => {
return matches[0] + "declare module " + DefinitionTransformer._moduleName(matches[1]);
});
}
return lines.join("\n");
}
/**
* Returns the module name for the actual module.
*/
private static _moduleName(name: string) : string {
return "__require__" + name.replace(/\W/, "_");
}
}