Skip to content
This repository has been archived by the owner on Jun 24, 2024. It is now read-only.

Commit

Permalink
feat: backwards compatible change of content key
Browse files Browse the repository at this point in the history
Changes .content to .source in feed definition. Does so in a backwards
compatible way so .content is still supported.
  • Loading branch information
digitalsadhu committed Nov 29, 2017
1 parent 63da282 commit c25c7b7
Show file tree
Hide file tree
Showing 9 changed files with 66 additions and 47 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ The following is an example of a feed file:
version: '1.0.1',
file: 'my-module-1/main.css',
// bundled css content with any @import statements inlined
content: '/* ... */'
source: '/* ... */'
}
]
```
Expand Down
7 changes: 5 additions & 2 deletions lib/reader.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ module.exports = async function reader(feeds = []) {
feedMap.delete(feed.id);
feedMap.set(feed.id, feed);
});
const dedupedFeeds = Array.from(feedMap.values());
return dedupedFeeds.map(feed => feed.content.trim()).join('\n\n');

// backwards compatible refactor to `.source` from `.content`
return Array.from(feedMap.values())
.map(feed => (feed.source || feed.content).trim())
.join('\n\n');
};
2 changes: 1 addition & 1 deletion test/__snapshots__/reader.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ exports[`reader([]): throws on empty array 1`] = `"Expected at least 1 feed to b

exports[`reader([1,2,3]): throws on array containing non feed items 1`] = `"Expected every feed to be an array. Instead got \\"1, 2, 3\\""`;

exports[`reader(123): throws on non stream or array input 1`] = `"Expected at least 1 feed to be given. Instead got \\"undefined\\""`;
exports[`reader(123): throws on non array input 1`] = `"Expected at least 1 feed to be given. Instead got \\"undefined\\""`;
16 changes: 14 additions & 2 deletions test/reader.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,19 @@ test('reader(feeds) single feed', async () => {
expect(result).toContain('my-module-1/main.css');
});

test('reader([stream1, stream2]) mulitple feedStreams merged', async () => {
test('reader(feeds) support for legacy .content field is maintained', async () => {
expect.assertions(1);
const sink = new SinkFs({
path: path.join(__dirname, './test-assets'),
});
const feed = JSON.parse(await sink.get('legacy.json'));

const result = await reader([feed]);

expect(result).toContain('my-module-1/main.css');
});

test('reader([feed1, feed2]) mulitple feeds merged', async () => {
expect.assertions(4);
const sink = new SinkFs({
path: path.join(__dirname, './test-assets'),
Expand Down Expand Up @@ -54,7 +66,7 @@ test('reader(): throws on no input', async () => {
}
});

test('reader(123): throws on non stream or array input', async () => {
test('reader(123): throws on non array input', async () => {
expect.assertions(1);
try {
await reader(123);
Expand Down
15 changes: 7 additions & 8 deletions test/test-assets/a.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
[
{
"id":
"4f32a8e1c6cf6e5885241f3ea5fee583560b2dfde38b21ec3f9781c91d58f42e",
"name": "my-module-1",
"version": "1.0.1",
"file": "my-module-1/main.css",
"content": "/* my-module-1/main.css */\n"
}
{
"id": "4f32a8e1c6cf6e5885241f3ea5fee583560b2dfde38b21ec3f9781c91d58f42e",
"name": "my-module-1",
"version": "1.0.1",
"file": "my-module-1/main.css",
"source": "/* my-module-1/main.css */\n"
}
]
17 changes: 8 additions & 9 deletions test/test-assets/b.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
[
{
"id":
"0791418bc4d8ce9e0315f5a23b729fd1fc77df0130b0336b3380d1b4f47c3855",
"name": "my-module-3",
"version": "1.0.1",
"file": "my-module-3/css/main.css",
"content":
"/* my-module-3/main.css */\n\n/* my-module-3/dep.css */\n\n/* dep/main.css */\n"
}
{
"id": "0791418bc4d8ce9e0315f5a23b729fd1fc77df0130b0336b3380d1b4f47c3855",
"name": "my-module-3",
"version": "1.0.1",
"file": "my-module-3/css/main.css",
"source":
"/* my-module-3/main.css */\n\n/* my-module-3/dep.css */\n\n/* dep/main.css */\n"
}
]
30 changes: 14 additions & 16 deletions test/test-assets/c.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
[
{
"id":
"4f32a8e1c6cf6e5885241f3ea5fee583560b2dfde38b21ec3f9781c91d58f42e",
"name": "my-module-1",
"version": "1.0.1",
"file": "my-module-1/main.css",
"content": "/* my-module-1/main.css */\n"
},
{
"id":
"1820708872350aef30523aef4e3516172280ff75be7f0e419b104de43eef0a69",
"name": "my-module-2",
"version": "1.0.1",
"file": "my-module-2/css/main.css",
"content": "/* my-module-2/main.css */\n"
}
{
"id": "4f32a8e1c6cf6e5885241f3ea5fee583560b2dfde38b21ec3f9781c91d58f42e",
"name": "my-module-1",
"version": "1.0.1",
"file": "my-module-1/main.css",
"source": "/* my-module-1/main.css */\n"
},
{
"id": "1820708872350aef30523aef4e3516172280ff75be7f0e419b104de43eef0a69",
"name": "my-module-2",
"version": "1.0.1",
"file": "my-module-2/css/main.css",
"source": "/* my-module-2/main.css */\n"
}
]
15 changes: 7 additions & 8 deletions test/test-assets/d.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
[
{
"id":
"4f32a8e1c6cf6e5885241f3ea5fee583560b2dfde38b21ec3f9781c91d58f42e",
"name": "my-module-1",
"version": "1.0.1",
"file": "my-module-1/main.css",
"content": "/* my-module-1/main.css */\n"
}
{
"id": "4f32a8e1c6cf6e5885241f3ea5fee583560b2dfde38b21ec3f9781c91d58f42e",
"name": "my-module-1",
"version": "1.0.1",
"file": "my-module-1/main.css",
"source": "/* my-module-1/main.css */\n"
}
]
9 changes: 9 additions & 0 deletions test/test-assets/legacy.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[
{
"id": "4f32a8e1c6cf6e5885241f3ea5fee583560b2dfde38b21ec3f9781c91d58f42e",
"name": "my-module-1",
"version": "1.0.1",
"file": "my-module-1/main.css",
"content": "/* my-module-1/main.css */\n"
}
]

0 comments on commit c25c7b7

Please sign in to comment.