Skip to content

Commit

Permalink
return final name
Browse files Browse the repository at this point in the history
  • Loading branch information
yanni4night committed Sep 16, 2016
1 parent 1d34cb0 commit 40a8209
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 21 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@

Write transformer for panto.

> This should be in the final stream, chainning it is not suggested!
```js
panto.loadTransformer('write');

panto.pick('**/*.js').read().write({
panto.$('**/*.js').read().write({
destname: file => file.filename
});
```
Expand All @@ -21,7 +23,7 @@ panto.pick('**/*.js').read().write({
[travis-image]: http://img.shields.io/travis/pantojs/panto-transformer-write.svg
[david-dm-url]:https://david-dm.org/pantojs/panto-transformer-write
[david-dm-image]:https://david-dm.org/pantojs/panto-transformer-write.svg
[david-dm-dev-url]:https://david-dm.org/pantojs/panto-transformer-write#info=devDependencies
[david-dm-dev-url]:https://david-dm.org/pantojs/panto-transformer-write#type=dev
[david-dm-dev-image]:https://david-dm.org/pantojs/panto-transformer-write/dev-status.svg
[coveralls-image]:https://coveralls.io/repos/github/pantojs/panto-transformer-write/badge.svg?branch=master
[coveralls-url]:https://coveralls.io/github/pantojs/panto-transformer-write?branch=master
35 changes: 21 additions & 14 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
/**
* Copyright (C) 2016 panto.xyz
* Copyright (C) 2016 pantojs.xyz
* index.js
*
* changelog
* 2016-06-22[09:49:10]:revised
* 2016-09-16[13:07:38]:return final name
*
* @author yanni4night@gmail.com
* @version 1.0.0
* @since 1.0.0
* @version 0.3.4
* @since 0.1.0
*/
'use strict';

Expand All @@ -24,23 +25,29 @@ class WriteTransformer extends Transformer {
destname
} = this.options;

let finalName = filename;

if (panto._.isFunction(destname)) {
finalName = destname.call(file, file);
} else if (panto._.isString(destname)) {
finalName = destname;
} else if (!panto._.isNil(destname)) {
panto.log.warn(`WriteTransform warnning: ${destname} must be a function or string`);
}

const finalFile = panto._.extend(file, {
filename: finalName
});

if (panto._.isNil(content)) {
return Promise.resolve(file);
return Promise.resolve(finalFile);
} else {
let finalName = filename;
if (panto._.isFunction(destname)) {
finalName = destname.call(file, file);
} else if (panto._.isString(destname)) {
finalName = destname;
} else if (!panto._.isNil(destname)) {
panto.log.warn(`WriteTransform warnning: ${destname} must be a function or string`);
}
return panto.file.write(finalName, content).then(() => file);
return panto.file.write(finalName, content).then(() => finalFile);
}
}
isCacheable() {
return false;
}
}

module.exports = WriteTransformer;
module.exports = WriteTransformer;
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "panto-transformer-write",
"version": "0.3.3",
"version": "0.3.4",
"description": "Write transformer for panto",
"main": "index.js",
"scripts": {
Expand All @@ -26,13 +26,13 @@
},
"homepage": "https://github.com/pantojs/panto-transformer-write",
"dependencies": {
"panto-transformer": "^0.1.3"
"panto-transformer": "^0.2.4"
},
"devDependencies": {
"coveralls": "^2.11.12",
"mocha": "^2.5.3",
"mocha": "^3.0.2",
"mocha-lcov-reporter": "^1.2.0",
"panto": "0.0.29",
"panto": "0.1.0-alpha.1",
"pre-commit": "^1.1.3"
}
}
19 changes: 18 additions & 1 deletion test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,23 @@ describe('panto-transformer-write', () => {
done();
});
});
it('should return final name', done => {
const file = {
filename: 'm.js'
};

panto.setOptions({
cwd: __dirname,
output: 'output'
});

new WriteTransformer({
destname: 'n.js'
}).transform(file).then(tfile => {
assert.deepEqual(tfile.filename, 'n.js');
}).then(() => {
done();
});
});
});
});
});

0 comments on commit 40a8209

Please sign in to comment.