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.
127 lines
5.6 KiB
127 lines
5.6 KiB
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extract = extract;exports. |
|
|
|
|
|
|
|
|
|
strip = strip;exports. |
|
|
|
|
|
|
|
|
|
parse = parse;exports. |
|
|
|
|
|
|
|
parseWithComments = parseWithComments;exports. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print = print;var _detectNewline;function _load_detectNewline() {return _detectNewline = _interopRequireDefault(require('detect-newline'));}var _os;function _load_os() {return _os = require('os');}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} /** |
|
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved. |
|
* |
|
* This source code is licensed under the MIT license found in the |
|
* LICENSE file in the root directory of this source tree. |
|
* |
|
* |
|
*/const commentEndRe = /\*\/$/;const commentStartRe = /^\/\*\*/;const docblockRe = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/;const lineCommentRe = /(^|\s+)\/\/([^\r\n]*)/g;const ltrimNewlineRe = /^(\r?\n)+/;const multilineRe = /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g;const propertyRe = /(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g;const stringStartRe = /(\r?\n|^) *\* ?/g;function extract(contents) {const match = contents.match(docblockRe);return match ? match[0].trimLeft() : '';}function strip(contents) {const match = contents.match(docblockRe);return match && match[0] ? contents.substring(match[0].length) : contents;}function parse(docblock) {return parseWithComments(docblock).pragmas;}function parseWithComments(docblock) {const line = (0, (_detectNewline || _load_detectNewline()).default)(docblock) || (_os || _load_os()).EOL;docblock = docblock.replace(commentStartRe, '').replace(commentEndRe, '').replace(stringStartRe, '$1'); // Normalize multi-line directives |
|
let prev = '';while (prev !== docblock) {prev = docblock;docblock = docblock.replace(multilineRe, `${line}$1 $2${line}`);}docblock = docblock.replace(ltrimNewlineRe, '').trimRight();const result = Object.create(null);const comments = docblock.replace(propertyRe, '').replace(ltrimNewlineRe, '').trimRight();let match;while (match = propertyRe.exec(docblock)) {// strip linecomments from pragmas |
|
const nextPragma = match[2].replace(lineCommentRe, '');if (typeof result[match[1]] === 'string' || Array.isArray(result[match[1]])) {result[match[1]] = [].concat(result[match[1]], nextPragma);} else {result[match[1]] = nextPragma;}}return { comments, pragmas: result };}function print(_ref) {var _ref$comments = _ref.comments;let comments = _ref$comments === undefined ? '' : _ref$comments;var _ref$pragmas = _ref.pragmas;let pragmas = _ref$pragmas === undefined ? {} : _ref$pragmas;const line = (0, (_detectNewline || _load_detectNewline()).default)(comments) || (_os || _load_os()).EOL;const head = '/**'; |
|
const start = ' *'; |
|
const tail = ' */'; |
|
|
|
const keys = Object.keys(pragmas); |
|
|
|
const printedObject = keys. |
|
map(key => printKeyValues(key, pragmas[key])). |
|
reduce((arr, next) => arr.concat(next), []). |
|
map(keyValue => start + ' ' + keyValue + line). |
|
join(''); |
|
|
|
if (!comments) { |
|
if (keys.length === 0) { |
|
return ''; |
|
} |
|
if (keys.length === 1 && !Array.isArray(pragmas[keys[0]])) { |
|
const value = pragmas[keys[0]]; |
|
return `${head} ${printKeyValues(keys[0], value)[0]}${tail}`; |
|
} |
|
} |
|
|
|
const printedComments = |
|
comments. |
|
split(line). |
|
map(textLine => `${start} ${textLine}`). |
|
join(line) + line; |
|
|
|
return ( |
|
head + |
|
line + ( |
|
comments ? printedComments : '') + ( |
|
comments && keys.length ? start + line : '') + |
|
printedObject + |
|
tail); |
|
|
|
} |
|
|
|
function printKeyValues(key, valueOrArray) { |
|
return [].concat(valueOrArray).map(value => `@${key} ${value}`.trim()); |
|
} |