Skip to content

Instantly share code, notes, and snippets.

@alterx
Created March 13, 2018 17:20
Show Gist options
  • Save alterx/ab520aa6fd83bb2430af7f439e620c57 to your computer and use it in GitHub Desktop.
Save alterx/ab520aa6fd83bb2430af7f439e620c57 to your computer and use it in GitHub Desktop.
const getModule = (
declarations: Array<Type<any> | any[]>,
entryComponents: Array<Type<any> | any[]>,
bootstrap: Array<Type<any> | any[]>,
data: NgProvidedData,
moduleMetadata: NgModuleMetadata
) => {
const moduleMeta = {
declarations: [...declarations, ...(moduleMetadata.declarations || [])],
imports: [BrowserModule, FormsModule, ...(moduleMetadata.imports || [])],
providers: [
{ provide: STORY, useValue: Object.assign({}, data) },
...(moduleMetadata.providers || []),
],
entryComponents: [...entryComponents, ...(moduleMetadata.entryComponents || [])],
schemas: [...(moduleMetadata.schemas || [])],
bootstrap: [...bootstrap],
};
const moduleClass = class DynamicModule {};
return NgModule(moduleMeta)(moduleClass);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment