mirror of
https://github.com/YunoHost-Apps/ttrss_ynh.git
synced 2024-10-01 13:34:46 +02:00
88 lines
2 KiB
JavaScript
88 lines
2 KiB
JavaScript
|
exports.config = function(config){
|
||
|
// summary:
|
||
|
// This module provides bootstrap configuration for running dojo in node.js
|
||
|
|
||
|
// any command line arguments with the load flag are pushed into deps
|
||
|
for(var deps = [], args = [], i = 0; i < process.argv.length; i++){
|
||
|
var arg = (process.argv[i] + "").split("=");
|
||
|
if(arg[0] == "load"){
|
||
|
deps.push(arg[1]);
|
||
|
}else{
|
||
|
args.push(arg);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var fs = require("fs");
|
||
|
|
||
|
// make sure global require exists
|
||
|
//if (typeof global.require=="undefined"){
|
||
|
// global.require= {};
|
||
|
//}
|
||
|
|
||
|
// reset the has cache with node-appropriate values;
|
||
|
var hasCache = {
|
||
|
"host-node":1,
|
||
|
"host-browser":0,
|
||
|
"dom":0,
|
||
|
"dojo-has-api":1,
|
||
|
"dojo-xhr-factory":0,
|
||
|
"dojo-inject-api":1,
|
||
|
"dojo-timeout-api":0,
|
||
|
"dojo-trace-api":1,
|
||
|
"dojo-dom-ready-api":0,
|
||
|
"dojo-publish-privates":1,
|
||
|
"dojo-sniff":0,
|
||
|
"dojo-loader":1,
|
||
|
"dojo-test-xd":0,
|
||
|
"dojo-test-sniff":0
|
||
|
};
|
||
|
for(var p in hasCache){
|
||
|
config.hasCache[p] = hasCache[p];
|
||
|
}
|
||
|
|
||
|
var vm = require('vm'),
|
||
|
path = require('path');
|
||
|
|
||
|
// reset some configuration switches with node-appropriate values
|
||
|
var nodeConfig = {
|
||
|
baseUrl: path.dirname(process.argv[1]),
|
||
|
commandLineArgs:args,
|
||
|
deps:deps,
|
||
|
timeout:0,
|
||
|
|
||
|
// TODO: really get the locale
|
||
|
locale:"en-us",
|
||
|
|
||
|
loaderPatch: {
|
||
|
log:function(item){
|
||
|
// define debug for console messages during dev instead of console.log
|
||
|
// (node's heavy async makes console.log confusing sometimes)
|
||
|
var util = require("util");
|
||
|
util.debug(util.inspect(item));
|
||
|
},
|
||
|
|
||
|
eval: function(__text, __urlHint){
|
||
|
return vm.runInThisContext(__text, __urlHint);
|
||
|
},
|
||
|
|
||
|
injectUrl: function(url, callback){
|
||
|
try{
|
||
|
vm.runInThisContext(fs.readFileSync(url, "utf8"), url);
|
||
|
callback();
|
||
|
}catch(e){
|
||
|
this.log("failed to load resource (" + url + ")");
|
||
|
this.log(e);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
getText: function(url, sync, onLoad){
|
||
|
// TODO: implement async and http/https handling
|
||
|
onLoad(fs.readFileSync(url, "utf8"));
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
for(p in nodeConfig){
|
||
|
config[p] = nodeConfig[p];
|
||
|
}
|
||
|
};
|