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.
192 lines
4.5 KiB
192 lines
4.5 KiB
'use strict'; |
|
|
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
exports.default = defaultResolver; |
|
|
|
var _browserResolve; |
|
|
|
function _load_browserResolve() { |
|
return _browserResolve = _interopRequireDefault(require('browser-resolve')); |
|
} |
|
|
|
var _fs; |
|
|
|
function _load_fs() { |
|
return _fs = _interopRequireDefault(require('fs')); |
|
} |
|
|
|
var _path; |
|
|
|
function _load_path() { |
|
return _path = _interopRequireDefault(require('path')); |
|
} |
|
|
|
var _is_builtin_module; |
|
|
|
function _load_is_builtin_module() { |
|
return _is_builtin_module = _interopRequireDefault(require('./is_builtin_module')); |
|
} |
|
|
|
var _node_modules_paths; |
|
|
|
function _load_node_modules_paths() { |
|
return _node_modules_paths = _interopRequireDefault(require('./node_modules_paths')); |
|
} |
|
|
|
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. |
|
* |
|
* |
|
*/ |
|
|
|
function defaultResolver(path, options) { |
|
const resolve = options.browser ? (_browserResolve || _load_browserResolve()).default.sync : resolveSync; |
|
|
|
return resolve(path, { |
|
basedir: options.basedir, |
|
extensions: options.extensions, |
|
moduleDirectory: options.moduleDirectory, |
|
paths: options.paths, |
|
rootDir: options.rootDir |
|
}); |
|
} |
|
|
|
/* |
|
* Adapted from: https://github.com/substack/node-resolve |
|
*/ |
|
|
|
|
|
const REGEX_RELATIVE_IMPORT = /^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[\\\/])/; |
|
|
|
function resolveSync(target, options) { |
|
const basedir = options.basedir; |
|
const extensions = options.extensions || ['.js']; |
|
const paths = options.paths || []; |
|
|
|
if (REGEX_RELATIVE_IMPORT.test(target)) { |
|
// resolve relative import |
|
const resolveTarget = (_path || _load_path()).default.resolve(basedir, target); |
|
const result = tryResolve(resolveTarget); |
|
if (result) { |
|
return result; |
|
} |
|
} else { |
|
// otherwise search for node_modules |
|
const dirs = (0, (_node_modules_paths || _load_node_modules_paths()).default)(basedir, { |
|
moduleDirectory: options.moduleDirectory, |
|
paths |
|
}); |
|
for (let i = 0; i < dirs.length; i++) { |
|
const resolveTarget = (_path || _load_path()).default.join(dirs[i], target); |
|
const result = tryResolve(resolveTarget); |
|
if (result) { |
|
return result; |
|
} |
|
} |
|
} |
|
|
|
if ((0, (_is_builtin_module || _load_is_builtin_module()).default)(target)) { |
|
return target; |
|
} |
|
|
|
const err = new Error("Cannot find module '" + target + "' from '" + basedir + "'"); |
|
err.code = 'MODULE_NOT_FOUND'; |
|
throw err; |
|
|
|
/* |
|
* contextual helper functions |
|
*/ |
|
function tryResolve(name) { |
|
const dir = (_path || _load_path()).default.dirname(name); |
|
let result; |
|
if (isDirectory(dir)) { |
|
result = resolveAsFile(name) || resolveAsDirectory(name); |
|
} |
|
if (result) { |
|
// Dereference symlinks to ensure we don't create a separate |
|
// module instance depending on how it was referenced. |
|
result = (_fs || _load_fs()).default.realpathSync(result); |
|
} |
|
return result; |
|
} |
|
|
|
function resolveAsFile(name) { |
|
if (isFile(name)) { |
|
return name; |
|
} |
|
|
|
for (let i = 0; i < extensions.length; i++) { |
|
const file = name + extensions[i]; |
|
if (isFile(file)) { |
|
return file; |
|
} |
|
} |
|
|
|
return undefined; |
|
} |
|
|
|
function resolveAsDirectory(name) { |
|
if (!isDirectory(name)) { |
|
return undefined; |
|
} |
|
|
|
const pkgfile = (_path || _load_path()).default.join(name, 'package.json'); |
|
let pkgmain; |
|
try { |
|
const body = (_fs || _load_fs()).default.readFileSync(pkgfile, 'utf8'); |
|
pkgmain = JSON.parse(body).main; |
|
} catch (e) {} |
|
|
|
if (pkgmain && pkgmain !== '.') { |
|
const resolveTarget = (_path || _load_path()).default.resolve(name, pkgmain); |
|
const result = tryResolve(resolveTarget); |
|
if (result) { |
|
return result; |
|
} |
|
} |
|
|
|
return resolveAsFile((_path || _load_path()).default.join(name, 'index')); |
|
} |
|
} |
|
|
|
/* |
|
* helper functions |
|
*/ |
|
function isFile(file) { |
|
let result; |
|
|
|
try { |
|
const stat = (_fs || _load_fs()).default.statSync(file); |
|
result = stat.isFile() || stat.isFIFO(); |
|
} catch (e) { |
|
if (!(e && e.code === 'ENOENT')) { |
|
throw e; |
|
} |
|
result = false; |
|
} |
|
|
|
return result; |
|
} |
|
|
|
function isDirectory(dir) { |
|
let result; |
|
|
|
try { |
|
const stat = (_fs || _load_fs()).default.statSync(dir); |
|
result = stat.isDirectory(); |
|
} catch (e) { |
|
if (!(e && (e.code === 'ENOENT' || e.code === 'ENOTDIR'))) { |
|
throw e; |
|
} |
|
result = false; |
|
} |
|
|
|
return result; |
|
} |