Skip to content
This repository has been archived by the owner on Aug 21, 2023. It is now read-only.

Commit

Permalink
Merge branch 'v1-api'
Browse files Browse the repository at this point in the history
  • Loading branch information
Tomek Wiszniewski committed Jun 9, 2015
2 parents 9f772d7 + 44b847f commit c812ff9
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 23 deletions.
2 changes: 1 addition & 1 deletion Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ const filter = require('doxie.filter');
const myDoxData = {/**/};

doxie([
filter(({data}) => !data.isPrivate),
filter(({chunk}) => !chunk.isPrivate),
])(myDoxData);
```

Expand Down
18 changes: 11 additions & 7 deletions module/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,20 @@ const isFunction = require('1-liners/isFunction');
const filter = require('1-liners/filter');
const error = require('tiny-error')({prefix: '[doxie.filter] '});

export default (transformFunction) => {
if (!isFunction(transformFunction)) throw error(
'Wrong value of `transformFunction`. We expected a function'
export default (filterFunction) => {
if (!isFunction(filterFunction)) throw error(
'Wrong value of `filterFunction`. We expected a function'
);

return (data) => {
if (!Array.isArray(data)) throw error(
'Wrong value of `data`. We expected an array'
return (input = {}) => {
let {version, chunks} = input;
if (!Array.isArray(chunks = input.chunks)) throw error(
'Wrong value of `input.chunks`. We expected an array'
);

return filter(transformFunction, data);
return {
chunks: filter(filterFunction, chunks),
version
};
};
};
14 changes: 8 additions & 6 deletions test/cli-plugin.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import dummyData from './test-tools/dummyData';

import cli from '../module/cli-plugin';

const path = require('path');
Expand All @@ -14,33 +16,33 @@ const mockCwd = () => path.resolve(__dirname, 'cwd');
test(title('Locates the right files'), (is) => {
process.cwd = mockCwd;

const mock = [
const mock = dummyData([
{data: {location: 'somewhere else'}},
{data: {location: '.doxie.filter.js'}},
{data: {location: 'myFilter.js'}},
];
]);

is.deepEqual(
cli()(mock),
[{data: {location: '.doxie.filter.js'}}],
dummyData([{data: {location: '.doxie.filter.js'}}]),
'Takes the function from `<cwd>/.doxie.filter.js` by default.'
);

is.deepEqual(
cli('myFilter.js')(mock),
[{data: {location: 'myFilter.js'}}],
dummyData([{data: {location: 'myFilter.js'}}]),
'Locates `myFilter.js`.'
);

is.deepEqual(
cli('./myFilter.js')(mock),
[{data: {location: 'myFilter.js'}}],
dummyData([{data: {location: 'myFilter.js'}}]),
'Locates `./myFilter.js`.'
);

is.deepEqual(
cli('../cwd/myFilter.js')(mock),
[{data: {location: 'myFilter.js'}}],
dummyData([{data: {location: 'myFilter.js'}}]),
'Locates `../cwd/myFilter.js`.'
);

Expand Down
2 changes: 1 addition & 1 deletion test/cwd/.doxie.filter.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
module.exports = (block) => block.data.location === '.doxie.filter.js';
module.exports = (chunk) => chunk.data.location === '.doxie.filter.js';
2 changes: 1 addition & 1 deletion test/cwd/myFilter.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
module.exports = (block) => block.data.location === 'myFilter.js';
module.exports = (chunk) => chunk.data.location === 'myFilter.js';
16 changes: 9 additions & 7 deletions test/index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import dummyData from './test-tools/dummyData';

import filter from '../module/index';

const test = require('tape-catch');
Expand All @@ -8,10 +10,10 @@ const title = require('1-liners/curry')(require('1-liners/plus'))(
);

test(title('Pipes data through'), (is) => {
const input = [
{dummyData: true},
{dummyData: false},
];
const input = dummyData([
{dummyProperty: true},
{dummyProperty: false},
]);

is.deepEqual(
filter(always(true))(input),
Expand All @@ -21,13 +23,13 @@ test(title('Pipes data through'), (is) => {

is.deepEqual(
filter(always(false))(input),
[],
dummyData([]),
'dropping comments transformed into `false`'
);

is.deepEqual(
filter(property('dummyData'))(input),
[{dummyData: true}],
filter(property('dummyProperty'))(input),
dummyData([{dummyProperty: true}]),
'doing both things at the same time'
);

Expand Down
1 change: 1 addition & 0 deletions test/test-tools/dummyData.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default (chunks) => ({chunks, version: 1});

0 comments on commit c812ff9

Please sign in to comment.