Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import { ngExpressEngine } from '@nguniversal/express-engine'
import { AppServerModule } from './angular/server.angular.module'
import { argv } from 'yargs'
import { resolve } from 'path'
import { rollbarInit } from './add-ons/rollbar'
import { useApi } from './rest-api/index'
import ms = require('ms')
const shrinkRay = require('shrink-rayed')
const minifyHTML = require('express-minify-html')
const bunyanMiddleware = require('bunyan-middleware')
const xhr2 = require('xhr2')
const cors = require('cors')
// tslint:disable-next-line:no-object-mutation
xhr2.prototype._restrictedHeaders.cookie = false
require('ts-node/register')
const app = express()
rollbarInit(app)
const isProd = argv['build-type'] === 'prod' || argv['prod']
const isEndToEndTest = argv.e2e
const staticOptions = {
index: false,
maxAge: isProd ? ms('1y') : ms('0'),
setHeaders: (res: express.Response, path: any) => {
res.setHeader(
'Expires',
isProd
? new Date(Date.now() + ms('1y')).toUTCString()
import 'zone.js/dist/zone-node';
import 'reflect-metadata';
import { renderModule, renderModuleFactory } from '@angular/platform-server';
import { APP_BASE_HREF } from '@angular/common';
import { enableProdMode } from '@angular/core';
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
import { createServerRenderer } from 'aspnet-prerendering';
export { AppServerModule } from './app/app.server.module';
import { COOKIES } from '@app/models';
// This allows to set cookies on server
// Only cookie used in this app is culture cookie
import * as xhr2 from 'xhr2';
xhr2.prototype._restrictedHeaders = {};
enableProdMode();
export default createServerRenderer(params => {
const { AppServerModule, AppServerModuleNgFactory, LAZY_MODULE_MAP } = (module as any).exports;
const options = {
document: params.data.originalHtml,
url: params.url,
extraProviders: [
provideModuleMap(LAZY_MODULE_MAP),
{ provide: APP_BASE_HREF, useValue: params.baseUrl },
{ provide: 'BASE_URL', useValue: params.origin + params.baseUrl },
{ provide: COOKIES, useValue: params.data.cookies }
]
};
import { sitemap } from './server.sitemap'
import { exists, existsSync } from 'fs'
import { argv } from 'yargs'
import { useApi } from './api'
import { join, resolve } from 'path'
import { useWebSockets } from './server.web-socket'
import { ANGULAR_APP_CONFIG, FB_SERVICE_ACCOUNT_CONFIG } from './server.config'
import http = require('http')
import ms = require('ms')
const shrinkRay = require('shrink-ray')
const minifyHTML = require('express-minify-html')
const bunyanMiddleware = require('bunyan-middleware')
const xhr2 = require('xhr2')
xhr2.prototype._restrictedHeaders.cookie = false
require('ts-node/register')
const app = express()
const server = http.createServer(app)
const root = './dist'
const port = process.env.PORT || argv['port'] || 8001
const host = process.env.HOST || argv['host'] || 'http://localhost'
const isProd = argv['build-type'] === 'prod' || argv['prod']
const isTest = argv['e2e']
const staticOptions = {
index: false,
maxAge: isProd ? ms('1yr') : ms('0'),
setHeaders: (res: express.Response, path: any) => {
res.setHeader('Expires', isProd
XMLHttpRequest.prototype.open = function(method, url, async, user, password) {
if (!url.match(/^https?:\/\//))
url = resolve(this.location.href, url);
return BaseXMLHttpRequest.prototype.open.call(
this, method, url, async, user, password);
}