From e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d Mon Sep 17 00:00:00 2001 From: Piotr Russ Date: Mon, 16 Nov 2020 00:10:28 +0100 Subject: api, login, auth --- node_modules/true-case-path/index.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 node_modules/true-case-path/index.js (limited to 'node_modules/true-case-path/index.js') diff --git a/node_modules/true-case-path/index.js b/node_modules/true-case-path/index.js new file mode 100644 index 0000000..e550a87 --- /dev/null +++ b/node_modules/true-case-path/index.js @@ -0,0 +1,32 @@ +'use strict' + +var glob = require('glob') +var path = require('path') + +function trueCasePathSync(fsPath) { + + // Normalize the path so as to resolve . and .. components. + // !! As of Node v4.1.1, a path starting with ../ is NOT resolved relative + // !! to the current dir, and glob.sync() below then fails. + // !! When in doubt, resolve with fs.realPathSync() *beforehand*. + var fsPathNormalized = path.normalize(fsPath) + + // OSX: HFS+ stores filenames in NFD (decomposed normal form) Unicode format, + // so we must ensure that the input path is in that format first. + if (process.platform === 'darwin') fsPathNormalized = fsPathNormalized.normalize('NFD') + + // !! Windows: Curiously, the drive component mustn't be part of a glob, + // !! otherwise glob.sync() will invariably match nothing. + // !! Thus, we remove the drive component and instead pass it in as the 'cwd' + // !! (working dir.) property below. + var pathRoot = path.parse(fsPathNormalized).root + var noDrivePath = fsPathNormalized.slice(Math.max(pathRoot.length - 1, 0)) + + // Perform case-insensitive globbing (on Windows, relative to the drive / + // network share) and return the 1st match, if any. + // Fortunately, glob() with nocase case-corrects the input even if it is + // a *literal* path. + return glob.sync(noDrivePath, { nocase: true, cwd: pathRoot })[0] +} + +module.exports = trueCasePathSync -- cgit v1.2.3