Skip to content

Commit

Permalink
fir prerender
Browse files Browse the repository at this point in the history
  • Loading branch information
Rebolon committed Jul 27, 2023
1 parent facb4f4 commit db33619
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 12 deletions.
31 changes: 21 additions & 10 deletions server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,37 @@ import bootstrap from './src/main.server';
export function app(): express.Express {
const server = express();
const distFolder = join(process.cwd(), 'dist/citations/browser');
const indexHtml = existsSync(join(distFolder, 'index.original.html')) ? 'index.original.html' : 'index';
const indexHtml = existsSync(join(distFolder, 'index.original.html'))
? 'index.original.html'
: 'index';

// Our Universal express-engine (found @ https://github.com/angular/universal/tree/main/modules/express-engine)
server.engine('html', ngExpressEngine({
bootstrap
}));
server.engine(
'html',
ngExpressEngine({
bootstrap,
})
);

server.set('view engine', 'html');
server.set('views', distFolder);

// Example Express Rest API endpoints
// server.get('/api/**', (req, res) => { });
// Serve static files from /browser
server.get('*.*', express.static(distFolder, {
maxAge: '1y'
}));
server.get(
'*.*',
express.static(distFolder, {
maxAge: '1y',
})
);

// All regular routes use the Universal engine
server.get('*', (req, res) => {
res.render(indexHtml, { req, providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }] });
res.render(indexHtml, {
req,
providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }],
});
});

return server;
Expand All @@ -51,9 +62,9 @@ function run(): void {
// The below code is to ensure that the server is run only when not requiring the bundle.
declare const __non_webpack_require__: NodeRequire;
const mainModule = __non_webpack_require__.main;
const moduleFilename = mainModule && mainModule.filename || '';
const moduleFilename = (mainModule && mainModule.filename) || '';
if (moduleFilename === __filename || moduleFilename.includes('iisnode')) {
run();
}

export default bootstrap;
export default bootstrap;
3 changes: 2 additions & 1 deletion src/app/components/list-cites/list-cites.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,8 @@ export class ListCitesComponent
}

protected findCitesBySearch() {
if (this.q.trim() === '') {
// prerender crash without the first check
if (this.q && this.q.trim() === '') {
this.citeService.reset().subscribe();

return;
Expand Down
5 changes: 4 additions & 1 deletion src/app/tools/Device.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ import { Injectable } from '@angular/core';
@Injectable()
export class Device {
isMobile(): boolean {
return navigator.userAgent.includes('Mobile');
// This check is for prerender prevent errors
return Object.keys(navigator).length
? navigator.userAgent.includes('Mobile')
: false;
}

isDesktop(): boolean {
Expand Down

0 comments on commit db33619

Please sign in to comment.