feat: allowing extractors to support multiple domains
parent
d038a36544
commit
de5b120b79
File diff suppressed because one or more lines are too long
@ -0,0 +1,13 @@
|
|||||||
|
const merge = (extractor, domains) => (
|
||||||
|
domains.reduce((acc, domain) => {
|
||||||
|
acc[domain] = extractor;
|
||||||
|
return acc;
|
||||||
|
}, {})
|
||||||
|
);
|
||||||
|
|
||||||
|
export default function mergeSupportedDomains(extractor) {
|
||||||
|
return extractor.supportedDomains ?
|
||||||
|
merge(extractor, [extractor.domain, ...extractor.supportedDomains])
|
||||||
|
:
|
||||||
|
merge(extractor, [extractor.domain]);
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
import assert from 'assert';
|
||||||
|
|
||||||
|
import mergeSupportedDomains from './merge-supported-domains';
|
||||||
|
|
||||||
|
describe('mergeSupportedDomains(extractor, domains)', () => {
|
||||||
|
it('returns an object w/domains as keys and extractor as value', () => {
|
||||||
|
const extractor = {
|
||||||
|
domain: 'foo.com',
|
||||||
|
supportedDomains: ['example.com'],
|
||||||
|
};
|
||||||
|
const expected = {
|
||||||
|
'foo.com': extractor,
|
||||||
|
'example.com': extractor,
|
||||||
|
};
|
||||||
|
|
||||||
|
const result = mergeSupportedDomains(extractor);
|
||||||
|
assert.deepEqual(result, expected);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns an object w/single domain if no supportedDomains', () => {
|
||||||
|
const extractor = {
|
||||||
|
domain: 'foo.com',
|
||||||
|
};
|
||||||
|
const expected = {
|
||||||
|
'foo.com': extractor,
|
||||||
|
};
|
||||||
|
|
||||||
|
const result = mergeSupportedDomains(extractor);
|
||||||
|
assert.deepEqual(result, expected);
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue