UNPKG

reserved-subdomains

Version:

A list of names that should be reserved in multitenant apps.

45 lines (30 loc) 894 B
'use strict'; const Names = require('./names.json'); const Patterns = require('./patterns.json'); class ReservedSubdomains { static isNotValid (name) { return !this.isValid(name); } static isValid (name) { if (this.nameMap.hasOwnProperty(name)) { return false; } for (let i = 0; i < this.patternsRegex.length; ++i) { const regex = this.patternsRegex[i]; if (regex.test(name)) { return false; } } return true; } } ReservedSubdomains.names = Names; ReservedSubdomains.nameMap = Names.reduce((accumulator, name) => { accumulator[name] = true; return accumulator; }, {}); ReservedSubdomains.patterns = Patterns; ReservedSubdomains.patternsRegex = Patterns.map((pattern) => { return new RegExp(pattern); }); module.exports = ReservedSubdomains;