Skip to content

Commit

Permalink
feat(ssr-demo): add ssr demo
Browse files Browse the repository at this point in the history
  • Loading branch information
AhsanAyaz committed Dec 3, 2020
1 parent 14bba3f commit e0cf90a
Show file tree
Hide file tree
Showing 21 changed files with 507 additions and 9 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/dist/ngx-device-detector
/tmp
/out-tsc
# Only exists if Bazel was run
Expand Down
3 changes: 2 additions & 1 deletion README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ If you use Angular 5, you must use v1.5.2 or earlier

## Live DEMO

[Ngx Device Detector Demo](https://koderlabs.github.io/ngx-device-detector/demo)
[Demo](https://koderlabs.github.io/ngx-device-detector/demo)
[SSR Demo](https://ngx-device-detector-ssr.herokuapp.com/)


## Installation
Expand Down
1 change: 1 addition & 0 deletions dist/demo/Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web: node server/main.js
411 changes: 411 additions & 0 deletions dist/demo/browser/3rdpartylicenses.txt

Large diffs are not rendered by default.

Binary file added dist/demo/browser/assets/images/github-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added dist/demo/browser/favicon.ico
Binary file not shown.
15 changes: 15 additions & 0 deletions dist/demo/browser/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Demo</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="stylesheet" href="styles.09e2c710755c8867a460.css"></head>
<body>
<app-root></app-root>
<script src="runtime.359d5ee4682f20e936e9.js" defer></script><script src="polyfills-es5.db54b4d4b3d7204fa98a.js" nomodule defer></script><script src="polyfills.71a6f961ce72fe5922a1.js" defer></script><script src="main.f8ba27a95180bcf0eb71.js" defer></script></body>
</html>
1 change: 1 addition & 0 deletions dist/demo/browser/main.f8ba27a95180bcf0eb71.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/demo/browser/polyfills-es5.db54b4d4b3d7204fa98a.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/demo/browser/polyfills.71a6f961ce72fe5922a1.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/demo/browser/runtime.359d5ee4682f20e936e9.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file.
22 changes: 22 additions & 0 deletions dist/demo/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "ngx-device-detector-ssr",
"version": "0.0.1",
"description": "Ngx Device Detector Demo SSR",
"engines": {
"node": "12.x"
},
"main": "server/main.js",
"scripts": {
"start": "node server/main.js"
},
"dependencies": {
"@nguniversal/express-engine": "^10.0.2",
"express": "^4.15.2"
},
"keywords": [
"node",
"heroku",
"express"
],
"license": "MIT"
}
1 change: 1 addition & 0 deletions dist/demo/server/main.js

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"release": "npm run pre-release && npm publish dist/ngx-device-detector",
"dev:ssr": "ng run demo:serve-ssr",
"serve:ssr": "node dist/demo/server/main.js",
"build:ssr": "ng build --prod && ng run demo:server:production",
"build:ssr": "ng build demo --prod && ng run demo:server:production && cp -a projects/demo/server/. ./dist/demo",
"prerender": "ng run demo:prerender",
"postversion": "node scripts/post-version",
"bump:version": "node scripts/bump-version"
Expand Down Expand Up @@ -68,7 +68,7 @@
"classlist.js": "^1.1.20150312",
"conventional-changelog-cli": "^2.1.1",
"express": "^4.15.2",
"ngx-device-detector": "^2.0.1",
"ngx-device-detector": "^2.0.3",
"rxjs": "~6.5.5",
"tslib": "^2.0.0",
"web-animations-js": "^2.3.2",
Expand Down
2 changes: 1 addition & 1 deletion projects/demo/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { existsSync } from 'fs';
// The Express app is exported so that it can be used by serverless Functions.
export function app(): express.Express {
const server = express();
const distFolder = join(process.cwd(), 'dist/demo/browser');
const distFolder = join(__dirname, '../browser');
const indexHtml = existsSync(join(distFolder, 'index.original.html')) ? 'index.original.html' : 'index';

// Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
Expand Down
1 change: 1 addition & 0 deletions projects/demo/server/Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web: node server/main.js
22 changes: 22 additions & 0 deletions projects/demo/server/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "ngx-device-detector-ssr",
"version": "0.0.1",
"description": "Ngx Device Detector Demo SSR",
"engines": {
"node": "12.x"
},
"main": "server/main.js",
"scripts": {
"start": "node server/main.js"
},
"dependencies": {
"@nguniversal/express-engine": "^10.0.2",
"express": "^4.15.2"
},
"keywords": [
"node",
"heroku",
"express"
],
"license": "MIT"
}
2 changes: 1 addition & 1 deletion projects/demo/src/app/app.component.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Component, VERSION } from '@angular/core';
import { DeviceDetectorService } from 'ngx-device-detector';
import { DeviceDetectorService } from '../../../ngx-device-detector/src/public-api';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
Expand Down
20 changes: 20 additions & 0 deletions projects/demo/src/app/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,29 @@ import { ServerModule } from '@angular/platform-server';

import { AppModule } from './app.module';
import { AppComponent } from './app.component';
import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';
import { REQUEST } from '@nguniversal/express-engine/tokens';
import { Request } from 'express';
import { DeviceDetectorService } from '../../../ngx-device-detector/src/public-api';
import { isPlatformServer } from '@angular/common';

@Injectable()
export class UniversalDeviceDetectorService extends DeviceDetectorService {
constructor(@Inject(PLATFORM_ID) platformId: any, @Optional() @Inject(REQUEST) request: Request) {
super(platformId);
console.log('lol')
if (isPlatformServer(platformId)){
super.setDeviceInfo((request.headers['user-agent'] as string) || '');
}
}
}

@NgModule({
imports: [AppModule, ServerModule],
bootstrap: [AppComponent],
providers: [{
provide: DeviceDetectorService,
useClass: UniversalDeviceDetectorService
},]
})
export class AppServerModule {}

0 comments on commit e0cf90a

Please sign in to comment.