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