1 | 'use strict'
|
2 |
|
3 | let _ = require('lodash')
|
4 | let isWildcardMatch = require('./is_wildcard_match')
|
5 |
|
6 | let stableCnames = ['.herokudns.com', '.herokudnsdev.com']
|
7 |
|
8 | function matches (match) {
|
9 | return match && (match.kind === 'heroku' || _.find(stableCnames, (stableCname) => match.cname.endsWith(stableCname)))
|
10 | }
|
11 |
|
12 | module.exports = function (certDomain, domains) {
|
13 | let exactMatch = _.find(domains, (domain) => certDomain === domain.hostname)
|
14 | if (matches(exactMatch)) {
|
15 | return exactMatch
|
16 | }
|
17 |
|
18 | let wildcardMatch = _.find(domains, function (domain) {
|
19 | return (domain.hostname && isWildcardMatch(domain.hostname, certDomain))
|
20 | })
|
21 |
|
22 | if (matches(wildcardMatch)) {
|
23 | return wildcardMatch
|
24 | }
|
25 |
|
26 | return null
|
27 | }
|