Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import log from 'llog'
- import path from 'path'
- import fastifyStatic from 'fastify-static'
- import fastifyCompress from 'fastify-compress'
- import { service } from './service'
- import sdkData from './sdkData'
- import UA from 'browserslist-useragent'
- const { src, legacySrc } = sdkData
- service.register(fastifyCompress)
- service.register(fastifyStatic, {
- root: path.resolve(process.cwd(), 'dist', 'sdks'),
- prefix: '/dist/sdks/'
- })
- export const isModernBrowser = (userAgent) => {
- return UA.matchesUA(userAgent, {
- _allowHigherVersions: true,
- browsers: [
- "Chrome >= 66",
- "Safari >= 11.1",
- "iOS >= 11.3",
- "Firefox >= 60",
- "Edge >= 17"
- ]
- })
- }
- export const redirectToClientJS = (request, reply) => {
- const userAgent = request.headers['user-agent']
- let srcForUserAgent = legacySrc
- console.log({isModern: isModernBrowser(userAgent)})
- if (isModernBrowser(userAgent)) {
- log.info('is modern browser')
- srcForUserAgent = src
- }
- log.info({msg: `request for JS lib received. Redirecting to ${srcForUserAgent}`, srcForUserAgent })
- reply.redirect(`${srcForUserAgent}`)
- }
- service.get('/sdk.js', redirectToClientJS)
- export const onListen = (err) => {
- if (err) {
- log.error(err)
- throw err
- }
- log.info(`service listening on ${service.server.address().port}`)
- }
- // Run the service!
- service.listen(8000, '0.0.0.0', onListen)
Add Comment
Please, Sign In to add comment