view src/worker-require.ts @ 365:9ba7d304a99d

Add css classes to the container divs for ngIf and ngSwitch to ensure they fill the height of their parents. The template needs tidying up to avoid these unnecessary divs.
author Lucas Thompson <dev@lucas.im>
date Tue, 30 May 2017 18:13:12 +0100
parents 53ea6406d601
children
line wrap: on
line source
/**
 * Created by lucas on 01/12/2016.
 */

/* This is a really ad-hoc and crappy way of re-exporting modules,
 * whilst trying to reduce global namespace pollution
 * The main use case is providing access to npm modules inside a worker via importScripts
 * over using some compiled version (a la *.min.js, *.umd.js etc)
 * a better solution would be a custom webpack bundle,
 * but the current build system in angular-cli doesn't provide a way for custom webpack bundles
 * ....unless I am missing something
 *
 * this does, however, mean that modules will be loaded twice..
 * once by index.html and once by the worker..
 * one could potentially run a custom post build script
 * to remove the script tag in index.html generated by angular-cli for scripts.bundle
 * .. or find another way of doing this entirely....
 */

import extractionWorker from './app/services/feature-extraction/FeatureExtractionWorker';

const modules = {
  'feature-extraction-worker': extractionWorker
};

if (typeof (self as any).importScripts === 'function' /* in a worker */) {

  self['require'] = (moduleName) => {
    if (modules.hasOwnProperty(moduleName)) {
      return modules[moduleName];
    } else {
      throw new Error(`Cannot find module '${moduleName}'`);
    }
  };
}