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.
 
 
 
 

218 lines
4.9 KiB

require! {'./config': {banner}, fs: {readFile, writeFile, unlink}, path, webpack}
list = <[
es5
es6.symbol
es6.object.assign
es6.object.is
es6.object.set-prototype-of
es6.object.to-string
es6.object.freeze
es6.object.seal
es6.object.prevent-extensions
es6.object.is-frozen
es6.object.is-sealed
es6.object.is-extensible
es6.object.get-own-property-descriptor
es6.object.get-prototype-of
es6.object.keys
es6.object.get-own-property-names
es6.function.name
es6.function.has-instance
es6.number.constructor
es6.number.epsilon
es6.number.is-finite
es6.number.is-integer
es6.number.is-nan
es6.number.is-safe-integer
es6.number.max-safe-integer
es6.number.min-safe-integer
es6.number.parse-float
es6.number.parse-int
es6.math.acosh
es6.math.asinh
es6.math.atanh
es6.math.cbrt
es6.math.clz32
es6.math.cosh
es6.math.expm1
es6.math.fround
es6.math.hypot
es6.math.imul
es6.math.log10
es6.math.log1p
es6.math.log2
es6.math.sign
es6.math.sinh
es6.math.tanh
es6.math.trunc
es6.string.from-code-point
es6.string.raw
es6.string.trim
es6.string.code-point-at
es6.string.ends-with
es6.string.includes
es6.string.repeat
es6.string.starts-with
es6.string.iterator
es6.array.from
es6.array.of
es6.array.iterator
es6.array.species
es6.array.copy-within
es6.array.fill
es6.array.find
es6.array.find-index
es6.regexp.constructor
es6.regexp.flags
es6.regexp.match
es6.regexp.replace
es6.regexp.search
es6.regexp.split
es6.promise
es6.map
es6.set
es6.weak-map
es6.weak-set
es6.reflect.apply
es6.reflect.construct
es6.reflect.define-property
es6.reflect.delete-property
es6.reflect.enumerate
es6.reflect.get
es6.reflect.get-own-property-descriptor
es6.reflect.get-prototype-of
es6.reflect.has
es6.reflect.is-extensible
es6.reflect.own-keys
es6.reflect.prevent-extensions
es6.reflect.set
es6.reflect.set-prototype-of
es6.date.to-string
es6.typed.array-buffer
es6.typed.data-view
es6.typed.int8-array
es6.typed.uint8-array
es6.typed.uint8-clamped-array
es6.typed.int16-array
es6.typed.uint16-array
es6.typed.int32-array
es6.typed.uint32-array
es6.typed.float32-array
es6.typed.float64-array
es7.array.includes
es7.string.at
es7.string.pad-left
es7.string.pad-right
es7.string.trim-left
es7.string.trim-right
es7.regexp.escape
es7.object.get-own-property-descriptors
es7.object.values
es7.object.entries
es7.map.to-json
es7.set.to-json
web.immediate
web.dom.iterable
web.timers
core.dict
core.get-iterator-method
core.get-iterator
core.is-iterable
core.delay
core.function.part
core.object.is-object
core.object.classof
core.object.define
core.object.make
core.number.iterator
core.string.escape-html
core.string.unescape-html
core.log
js.array.statics
]>
experimental = <[
es6.date.to-string
es6.typed.array-buffer
es6.typed.data-view
es6.typed.int8-array
es6.typed.uint8-array
es6.typed.uint8-clamped-array
es6.typed.int16-array
es6.typed.uint16-array
es6.typed.int32-array
es6.typed.uint32-array
es6.typed.float32-array
es6.typed.float64-array
]>
libraryBlacklist = <[
es6.object.to-string
es6.function.name
es6.regexp.constructor
es6.regexp.flags
es6.regexp.match
es6.regexp.replace
es6.regexp.search
es6.regexp.split
es6.number.constructor
]>
es5SpecialCase = <[
es6.object.freeze
es6.object.seal
es6.object.prevent-extensions
es6.object.is-frozen
es6.object.is-sealed
es6.object.is-extensible
es6.string.trim
]>
module.exports = ({modules = [], blacklist = [], library = no}, next)!->
let @ = modules.reduce ((memo, it)-> memo[it] = on; memo), {}
check = (err)->
if err
next err, ''
on
if @exp => for experimental => @[..] = on
if @es5 => for es5SpecialCase => @[..] = on
for ns of @
if @[ns]
for name in list
if name.indexOf("#ns.") is 0 and name not in experimental
@[name] = on
if library => blacklist ++= libraryBlacklist
for ns in blacklist
for name in list
if name is ns or name.indexOf("#ns.") is 0
@[name] = no
TARGET = "./__tmp#{ Math.random! }__.js"
err, info <~! webpack do
entry: list.filter(~> @[it]).map ~>
path.join(__dirname, '../', "#{ if library => '/library' else '' }/modules/#it")
output:
path: ''
filename: TARGET
if check err => return
err, script <~! readFile TARGET
if check err => return
err <~! unlink TARGET
if check err => return
next null """
#banner
!function(__e, __g, undefined){
'use strict';
#script
// CommonJS export
if(typeof module != 'undefined' && module.exports)module.exports = __e;
// RequireJS export
else if(typeof define == 'function' && define.amd)define(function(){return __e});
// Export to global object
else __g.core = __e;
}(1, 1);
"""