@ng-web-apis/universal
TypeScript icon, indicating that this package has built-in type declarations

4.1.3 • Public • Published

logo Angular Universal fallbacks

npm version npm bundle size codecov

A set of fallbacks to seamlessly use @ng-web-apis/common in Angular Universal apps. These packages have synced versions down to minor.

How to use

Add constants imported from this package to providers of your ServerAppModule. Typically, you can also use these mocks for tests. Idea of this package is — you shouldn't have to mock DOM on the server side or test isPlatformBrowser all the time. Instead, you leverage Angular DI system to abstract from implementation. When possible, this package will provide the same functionality on the server side as you have in browser. In other cases you will get type-safe mocks and you can at least be sure you will not have cannot read propery of null or undefined is not a function errors in SSR.

Tokens

You can import UNIVERSAL_PROVIDERS in the following manner:

const serverConfig: ApplicationConfig = {
  providers: [
    provideServerRendering(),
    UNIVERSAL_PROVIDERS, // <-- add this
  ],
};

const config = mergeApplicationConfig(appConfig, serverConfig);
const bootstrap = () => bootstrapApplication(AppComponent, config);

Special cases

When you use plain SSR without prerender you can retrieve some of the information from requests. Use the following helpers to harvest that info:

server.ts:

import {provideLocation, provideUserAgent} from '@ng-web-apis/universal';

// ...

app.get('/**/*', (req: Request, res: Response) => {
  res.render('../dist/index', {
    req,
    res,
    providers: [provideLocation(req), provideUserAgent(req)],
  });
});

Package Sidebar

Install

npm i @ng-web-apis/universal

Weekly Downloads

2,910

Version

4.1.3

License

Apache-2.0

Unpacked Size

148 kB

Total Files

57

Last publish

Collaborators

  • marsibarsi
  • waterplea
  • vladimir.potekhin
  • defenderbass