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.
42 lines
942 B
42 lines
942 B
'use strict'; |
|
|
|
const fs = require('fs'); |
|
const promisify = require('util.promisify'); |
|
|
|
const promisiedFsRealpath = promisify(fs.realpath); |
|
|
|
function realpath(filepath) { |
|
if (typeof fs.realpath.native === 'function') { |
|
return promisify(fs.realpath.native)(filepath); |
|
} |
|
const fsBinding = process.binding('fs'); |
|
|
|
if (fsBinding.realpath) { |
|
return new Promise((resolve, reject) => { |
|
try { |
|
resolve(fsBinding.realpath(filepath, 'utf8')); |
|
} catch (e) { |
|
reject(e); |
|
} |
|
}); |
|
} |
|
|
|
return promisiedFsRealpath(filepath); |
|
} |
|
|
|
function realpathSync(filepath) { |
|
if (typeof fs.realpathSync.native === 'function') { |
|
return fs.realpathSync.native(filepath); |
|
} |
|
|
|
const fsBinding = process.binding('fs'); |
|
|
|
if (fsBinding.realpath) { |
|
return process.binding('fs').realpath(filepath, 'utf8'); |
|
} |
|
|
|
return fs.realpathSync(filepath); |
|
} |
|
|
|
module.exports = realpath; |
|
module.exports.sync = realpathSync;
|
|
|