home
Version:
Gets the home dir or resolves home directories: `home.resolve('~/path/to')`.
77 lines (50 loc) • 1.98 kB
Markdown
# home [](http://badge.fury.io/js/home) [](https://travis-ci.org/kaelzhang/node-home) [](https://gemnasium.com/kaelzhang/node-home)
A tiny utility to get the home directory, or resolve a path begins with `'~'`, with cross-platform compatibility.
## Install
```sh
$ npm install home --save
```
## Usage
```js
var home = require('home');
home(); // '/Users/kael'
var some_path = '~/workspace';
home.resolve(some_path); // '/Users/kael/workspace'
home.resolve(some_path, 'abc'); // '/Users/kael/workspace/abc'
```
## home()
Returns `path` the home directory specified by operating system.
## home.resolve([from...], to)
Resolves `to` to an absolute path, if `to` begins with `'~'`, it will be cooked before `path.resolve()`d.
```js
home.resolve('~/file'); // 'Users/kael/file'
```
The usage of `home.resolve` is very similar to [`path.resolve`](http://nodejs.org/api/path.html#path_path_resolve_from_to)
Another way to think of it is as a sequence of cd commands in a shell.
```js
home.resolve('foo/bar', '~/file/', '..', 'a/../subfile');
// -> '/Users/kael/subfile'
```
Is equivalent to:
```js
home.resolve('foo/bar', '/Users/kael/file/', '..', 'a/../subfile');
```
Is similar to:
```sh
cd foo/bar
cd ~/file/
cd ..
cd a/../subfile
pwd
```
## What about `home.relative()`, `home.join()` ?
For now, `home` doesn't support those, which I thought is unnecessary to make this module too complicated.
I'd rather `home.resolve()` the directories
```js
var dir = '~/dir';
dir = home.resolve(dir);
path.join(dir, './abc');
```
## License
May be freely distributed under the [MIT license](https://raw.githubusercontent.com/kaelzhang/node-home/master/LICENSE-MIT).
Copyright (c) Kael Zhang and [other contributors](https://github.com/kaelzhang/node-home/graphs/contributors).