You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
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; |
|
} |
|
}; |
|
});
|
|
|