Skip to content

Commit aac8164

Browse files
committed
fix(back): chdir.back returns a promise, close #3
1 parent 43056d7 commit aac8164

File tree

3 files changed

+42
-26
lines changed

3 files changed

+42
-26
lines changed

index.js

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,40 @@
1-
var la = require('lazy-ass');
2-
var check = require('check-more-types');
1+
var la = require('lazy-ass')
2+
var check = require('check-more-types')
33

4-
var q = require('q');
5-
var fs = require('fs');
6-
var S = require('spots');
7-
var debug = require('debug')('chdir-promise');
4+
var q = require('q')
5+
var fs = require('fs')
6+
var S = require('spots')
7+
var debug = require('debug')('chdir-promise')
88

99
// stack
10-
var folders = [];
10+
var folders = []
1111

12-
function _to(folderName) {
13-
la(check.unemptyString(folderName), 'missing git repo folder');
14-
la(fs.existsSync(folderName), 'cannot find folder', folderName);
12+
function _to (folderName) {
13+
la(check.unemptyString(folderName), 'missing git repo folder')
14+
la(fs.existsSync(folderName), 'cannot find folder', folderName)
1515

16-
var current = process.cwd();
17-
la(check.unemptyString(folderName), 'missing folder');
18-
process.chdir(folderName);
19-
debug('chdir to folder', process.cwd());
16+
var current = process.cwd()
17+
la(check.unemptyString(folderName), 'missing folder')
18+
process.chdir(folderName)
19+
debug('chdir to folder', process.cwd())
2020

21-
folders.push(current);
21+
folders.push(current)
2222

23-
return current;
23+
return current
2424
}
2525

26-
function comeBack() {
26+
function comeBack () {
2727
if (!folders.length) {
28-
return;
28+
return Promise.resolve()
2929
}
30-
var folder = folders.pop();
31-
process.chdir(folder);
32-
debug('restored folder', folder);
33-
return folder;
30+
var folder = folders.pop()
31+
process.chdir(folder)
32+
debug('restored folder', folder)
33+
return Promise.resolve(folder)
3434
}
3535

3636
module.exports = {
3737
to: S(q.try, _to, S),
3838
back: comeBack,
3939
from: comeBack
40-
};
41-
40+
}

package.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77
"test": "node test/chdir-promise-spec.js",
88
"semantic-release": "semantic-release pre && npm publish && semantic-release post",
99
"commit": "commit-wizard",
10-
"size": "t=\"$(npm pack .)\"; wc -c \"${t}\"; tar tvf \"${t}\"; rm \"${t}\";"
10+
"size": "t=\"$(npm pack .)\"; wc -c \"${t}\"; tar tvf \"${t}\"; rm \"${t}\";",
11+
"pretty": "prettier-standard *.js src/*.js",
12+
"prelint": "npm run pretty",
13+
"lint": "standard --verbose --fix *.js src/*.js",
14+
"pretest": "npm run lint",
15+
"issues": "git-issues"
1116
},
1217
"repository": {
1318
"type": "git",
@@ -41,9 +46,12 @@
4146
"spots": "0.5.0"
4247
},
4348
"devDependencies": {
49+
"git-issues": "^1.3.1",
4450
"github-post-release": "^1.7.1",
4551
"pre-git": "3.15.0",
46-
"semantic-release": "^6.3.6"
52+
"prettier-standard": "^6.0.0",
53+
"semantic-release": "^6.3.6",
54+
"standard": "^10.0.2"
4755
},
4856
"config": {
4957
"pre-git": {

test/chdir-promise-spec.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
var la = require('lazy-ass');
22
var check = require('check-more-types');
33
var folders = require('..');
4+
var join = require('path').join;
5+
var parentFolder = join(process.cwd(), '..')
46

57
la(check.object(folders), 'expected folders to be an object', folders);
68
la(check.fn(folders.to), 'expected folders.to to be a function', folders);
@@ -18,3 +20,10 @@ folders.to(__dirname)
1820
la(result === 'foo', 'incorrect result', result);
1921
})
2022
.done();
23+
24+
// .back() returns a promise
25+
folders.to(parentFolder)
26+
.then(function () {
27+
return folders.back()
28+
.then(function () {})
29+
}).done();

0 commit comments

Comments
 (0)