Skip to content

Commit

Permalink
fix(ui-devkit): Fix scaffold logic for custom providers
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelbromley committed Sep 8, 2023
1 parent ddef470 commit 2f2ddb5
Showing 1 changed file with 37 additions and 30 deletions.
67 changes: 37 additions & 30 deletions packages/ui-devkit/src/compiler/scaffold.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,44 +194,51 @@ function generateLazyExtensionRoutes(extensions: AdminUiExtensionWithId[]): stri

function generateSharedExtensionModule(extensions: AdminUiExtensionWithId[]) {
const adminUiExtensions = extensions.filter(isAdminUiExtension);
return `import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
${adminUiExtensions
.map(e =>
e.ngModules
?.filter(m => m.type === 'shared')
.map(m => `import { ${m.ngModuleName} } from '${getModuleFilePath(e.id, m)}';\n`)
.join(''),
)
.join('')}
${adminUiExtensions
.map((m, i) =>
(m.providers ?? [])
.map(
(f, j) =>
`import SharedProviders_${i}_${j} from './extensions/${m.id}/${path.basename(
f,
'.ts',
)}';\n`,
)
.join(''),
)
.join('')}
@NgModule({
imports: [CommonModule, ${adminUiExtensions
const moduleImports = adminUiExtensions
.map(e =>
e.ngModules
?.filter(m => m.type === 'shared')
.map(m => `import { ${m.ngModuleName} } from '${getModuleFilePath(e.id, m)}';\n`)
.join(''),
)
.filter(val => !!val)
.join('');
const providerImports = adminUiExtensions
.map((m, i) =>
(m.providers ?? [])
.map(
(f, j) =>
`import SharedProviders_${i}_${j} from './extensions/${m.id}/${path.basename(
f,
'.ts',
)}';\n`,
)
.join(''),
)
.filter(val => !!val)
.join('');
const modules = adminUiExtensions
.map(e =>
e.ngModules
?.filter(m => m.type === 'shared')
.map(m => m.ngModuleName)
.join(', '),
)
.filter(val => !!val)
.join(', ')}],
providers: [${adminUiExtensions
.join(', ');
const providers = adminUiExtensions
.filter(notNullOrUndefined)
.map((m, i) => (m.providers ?? []).map((f, j) => `...SharedProviders_${i}_${j}`))
.join(', ')}],
.map((m, i) => (m.providers ?? []).map((f, j) => `...SharedProviders_${i}_${j}`).join(', '))
.filter(val => !!val)
.join(', ');
return `import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
${moduleImports}
${providerImports}
@NgModule({
imports: [CommonModule, ${modules}],
providers: [${providers}],
})
export class SharedExtensionsModule {}
`;
Expand Down

0 comments on commit 2f2ddb5

Please sign in to comment.