/
githubmirror
/
atom
Обзор
Документация
Войти
/
githubmirror
/
atom
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
script/lib/handle-tilde.js
29 строк
768 B
Rafael Oleza
Reformat all JS files using prettier
31 май 2019, 19:33
31 май 2019, 19:33
7f3f040
Код
Авторство
О чём код?
'use strict'; const os = require('os'); const passwdUser = require('passwd-user'); const path = require('path'); module.exports = function(aPath) { if (!aPath.startsWith('~')) { return aPath; } const sepIndex = aPath.indexOf(path.sep); const user = sepIndex < 0 ? aPath.substring(1) : aPath.substring(1, sepIndex); const rest = sepIndex < 0 ? '' : aPath.substring(sepIndex); const home = user === '' ? os.homedir() : (() => { const passwd = passwdUser.sync(user); if (passwd === undefined) { throw new Error( `Failed to expand the tilde in ${aPath} - user "${user}" does not exist` ); } return passwd.homedir; })(); return `${home}${rest}`; };