46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
define(["dojo/json", "../fs"], function(json, fs){
|
|
return {
|
|
start:function(
|
|
mid,
|
|
referenceModule,
|
|
bc
|
|
){
|
|
// mid may contain a pragma (e.g. "!strip"); remove
|
|
mid = mid.split("!")[0];
|
|
|
|
var textPlugin = bc.amdResources["dojo/text"],
|
|
moduleInfo = bc.getSrcModuleInfo(mid, referenceModule, true),
|
|
textResource = bc.resources[moduleInfo.url];
|
|
|
|
if (!textPlugin){
|
|
throw new Error("text! plugin missing");
|
|
}
|
|
if (!textResource){
|
|
throw new Error("text resource (" + moduleInfo.url + ") missing");
|
|
}
|
|
|
|
var result = [textPlugin];
|
|
if(bc.internStrings && !bc.internSkip(moduleInfo.mid, referenceModule)){
|
|
result.push({
|
|
module:textResource,
|
|
pid:moduleInfo.pid,
|
|
mid:moduleInfo.mid,
|
|
deps:[],
|
|
getText:function(){
|
|
var text = this.module.getText ? this.module.getText() : this.module.text;
|
|
if(text===undefined){
|
|
// the module likely did not go through the read transform; therefore, just read it manually
|
|
text= fs.readFileSync(this.module.src, "utf8");
|
|
}
|
|
return json.stringify(text+"");
|
|
},
|
|
internStrings:function(){
|
|
return ["url:" + this.mid, this.getText()];
|
|
}
|
|
});
|
|
}
|
|
return result;
|
|
}
|
|
};
|
|
});
|