This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
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.
41 lines
1.5 KiB
41 lines
1.5 KiB
var global = require('./$.global') |
|
, core = require('./$.core') |
|
, hide = require('./$.hide') |
|
, redefine = require('./$.redefine') |
|
, ctx = require('./$.ctx') |
|
, PROTOTYPE = 'prototype'; |
|
|
|
var $export = function(type, name, source){ |
|
var IS_FORCED = type & $export.F |
|
, IS_GLOBAL = type & $export.G |
|
, IS_STATIC = type & $export.S |
|
, IS_PROTO = type & $export.P |
|
, IS_BIND = type & $export.B |
|
, target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE] |
|
, exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) |
|
, expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}) |
|
, key, own, out, exp; |
|
if(IS_GLOBAL)source = name; |
|
for(key in source){ |
|
// contains in native |
|
own = !IS_FORCED && target && key in target; |
|
// export native or passed |
|
out = (own ? target : source)[key]; |
|
// bind timers to global for call from export context |
|
exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; |
|
// extend global |
|
if(target && !own)redefine(target, key, out); |
|
// export |
|
if(exports[key] != out)hide(exports, key, exp); |
|
if(IS_PROTO && expProto[key] != out)expProto[key] = out; |
|
} |
|
}; |
|
global.core = core; |
|
// type bitmap |
|
$export.F = 1; // forced |
|
$export.G = 2; // global |
|
$export.S = 4; // static |
|
$export.P = 8; // proto |
|
$export.B = 16; // bind |
|
$export.W = 32; // wrap |
|
module.exports = $export; |