(_ => { const cname = (process.env.DOMAIN_CNAME || "").trim().split(/[\,\/\|\ ]/).filter((e: string) => e.length > 0); const domain = (process.env.DOMAIN || "127.0.0.1").trim(); const is_ip = /\d+\.\d+\.\d+\.\d+/.test(domain); module.exports = (req: any, res: any, cb: () => void) => { const origin = req.headers.origin; const urls = new Set([ `http://${domain}`, `https://${domain}` ]); if (!is_ip) { cname.forEach((e: string) => { urls.add("http://" + e + "." + domain); urls.add("https://" + e + "." + domain); }); }; if (urls.has(origin)) { res.setHeader("Access-Control-Allow-Origin", origin); }; res.setHeader("Access-Control-Allow-Credentials", true); res.setHeader("Access-Control-Allow-Methods", "GET,PUT,PATCH,POST,DELETE"); res.setHeader("Access-Control-Allow-Headers", "X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept"); cb(); }; })();