@trilon/universal-ssr-mocks

Made with :heart: by Trilon.io

Usage no npm install needed!

<script type="module">
  import trilonUniversalSsrMocks from 'https://cdn.skypack.dev/@trilon/universal-ssr-mocks';
</script>

README

Create Node Global Mocks - Angular Universal


Trilon.io - Angular Universal, NestJS, JavaScript Application Consulting Development and Training

Made with :heart: by Trilon.io


Installation

Install & save the library to your package.json:

$ npm i -S @trilon/universal-ssr-mocks

Modules Available


createGlobalMocks

Note: Breaking changes: Renamed to createGlobalMocks. In @trilon/ng-universal v2+ there was a breaking change, and this method has now been introduced as its own npm package to avoid domino being bundled in client angular bundles.

Mock Window & Document in Node to prevent "window undefined" Node errors. Remember these globals don't exist in the Node platform, so it's important to Mock them and fill them with your app skeleton html (utilizing Domino), otherwise 3rd party libraries (and even your own code), can cause errors during a server-side render.

In your server.ts file, grab your template (html) and pass it into the createGlobalMocks utility to populate your Node globals for window|document.

import { createGlobalMocks } from '@trilon/universal-ssr-mocks';

// Make sure you grab wherever your index.html is, we want to use that html as a -base- for Domino
const template = readFileSync(join(DIST_FOLDER, 'Your_CLI_Project_Name', 'index.html')).toString();
createGlobalMocks(template);

You can additionally pass in more globals for window or document incase you need to patch/mock other things such as $ from jQuery / etc.

createWindowMocks(template, /* additional window mocks*/ {
  $: {},
  someOtherWindowProp: {}
})

License

MIT License

Copyright (c) 2019 Trilon

Twitter Follow


Trilon Consulting

JavaScript, Node, NestJS Consulting from Open-Source Fanatics and Key Contributors!

Check out Trilon.io for more info!

Contact us at hello@trilon.io, and let's talk about your projects needs.



Trilon.io - Angular Universal, NestJS, JavaScript Application Consulting Development and Training

Made with :heart: by Trilon.io