Socket
Book a DemoInstallSign in
Socket

ngx-renderer

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngx-renderer

Advanced abstract renderer for Angular

latest
Source
npmnpm
Version
1.0.0
Version published
Weekly downloads
2
-66.67%
Maintainers
1
Weekly downloads
 
Created
Source

ngx-renderer

Advanced abstract renderer for Angular

Travis CI Coverage Code Climate Npm Npm Downloads Licence semantic-release Greenkeeper badge

Attention

This is Work In Progress

Installation

$ npm install ngx-renderer --save

Also please make sure you have latest version of tslib library

Usage

Default browser application

Import AdvancedRendererModule in your app module:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AdvancedRendererModule } from 'ngx-renderer';

@NgModule({
  imports: [
    BrowserModule,
    AdvancedRendererModule,
  ]
})
export class AppModule { }

Then in your component/directive/service inject AdvancedRenderer and use it:

import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';
import { AdvancedRenderer, AdvancedRendererMethod, elementExpression } from 'ngx-renderer';

@Component({
  selector: 'my-component',
  template: `<input type="text" #myInput placeholder="This will have auto-focus">`
})
class MyComponent implements AfterViewInit {
  @ViewChild('myInput') myInput: ElementRef;

  constructor(private renderer: AdvancedRenderer) { }

  ngAfterViewInit() {
    // This will be safely executed on Browser UI thread (or ignored if not available)
    this.renderer.execute('input.focus()', { input: elementExpression(this.myInput) })
      .then(() => console.log('Input got focus! Yay!!'));
  }
}

Browser + Webworker application

All you need to do is update your AppModule. Your application logic code remains untouched!

Here is the change in your AppModule which now runs on Webworker thread:

import { NgModule } from '@angular/core';
import { WorkerAppModule } from '@angular/platform-webworker';
import { AdvancedRendererWorkerModule } from 'ngx-renderer';

@NgModule({
  imports: [
    WorkerAppModule,
    AdvancedRendererWorkerModule,
  ]
})
export class AppInWorkerModule { }

And here is the change on UI bootstrapping code:

import { bootstrapWorkerUi } from '@angular/platform-webworker';
import { ADVANCED_RENDERER_UI_PROVIDERS } from 'ngx-renderer';

bootstrapWorkerUi('app-worker.js', ADVANCED_RENDERER_UI_PROVIDERS);

Server-side application

If you want to run your application on the server again just update your AppModule:

import { NgModule } from '@angular/core';
import { AdvancedRendererNoopModule } from 'ngx-renderer';

@NgModule({
  imports: [
    AdvancedRendererNoopModule,
  ]
})
export class AppInWorkerModule { }

License

MIT © Alex Malkevich

Keywords

renderer

FAQs

Package last updated on 13 Aug 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts