diff --git a/spec-bundle.js b/spec-bundle.js index 36026d530f..d2e4b2fd3e 100644 --- a/spec-bundle.js +++ b/spec-bundle.js @@ -38,25 +38,11 @@ testing.TestBed.initTestEnvironment( browser.platformBrowserDynamicTesting() ); -/* - * Ok, this is kinda crazy. We can use the context method on - * require that webpack created in order to tell webpack - * what files we actually want to require or import. - * Below, context will be a function/object with file names as keys. - * Using that regex we are saying look in ../src then find - * any file that ends with spec.ts and get its path. By passing in true - * we say do this recursively - */ -var testContext = require.context('./src', true, /\.spec\.ts/); -/* - * get all the files, for each file, call the context function - * that will require the file and load it up here. Context will - * loop and require those spec files here - */ -function requireAll(requireContext) { - return requireContext.keys().map(requireContext); -} +var tests = require.context('./src', true, /\.spec\.ts$/); -// requires and returns all modules that match -var modules = requireAll(testContext); +tests.keys().forEach(tests); + +const components = require.context('./src/app', true, /\.module\.ts$/); + +components.keys().forEach(components); diff --git a/src/app/app.reducer.ts b/src/app/app.reducer.ts index 646d7a26b5..baa3250549 100644 --- a/src/app/app.reducer.ts +++ b/src/app/app.reducer.ts @@ -1,17 +1,17 @@ -import { ActionReducerMap } from '@ngrx/store'; -import * as fromRouter from '@ngrx/router-store'; - -import { headerReducer, HeaderState } from './header/header.reducer'; -import { hostWindowReducer, HostWindowState } from './shared/host-window.reducer'; - -export interface AppState { - router: fromRouter.RouterReducerState; - hostWindow: HostWindowState; - header: HeaderState; -} - -export const appReducers: ActionReducerMap = { - router: fromRouter.routerReducer, - hostWindow: hostWindowReducer, - header: headerReducer -}; +import { ActionReducerMap } from '@ngrx/store'; +import * as fromRouter from '@ngrx/router-store'; + +import { headerReducer, HeaderState } from './header/header.reducer'; +import { hostWindowReducer, HostWindowState } from './shared/host-window.reducer'; + +export interface AppState { + router: fromRouter.RouterReducerState; + hostWindow: HostWindowState; + header: HeaderState; +} + +export const appReducers: ActionReducerMap = { + router: fromRouter.routerReducer, + hostWindow: hostWindowReducer, + header: headerReducer +}; diff --git a/src/main.browser.ts b/src/main.browser.ts index 3f228b9d13..55e346108f 100644 --- a/src/main.browser.ts +++ b/src/main.browser.ts @@ -1,31 +1,31 @@ -import 'zone.js/dist/zone'; -import 'reflect-metadata'; - -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { bootloader } from '@angularclass/bootloader'; - -import { load as loadWebFont } from 'webfontloader'; - -import { BrowserAppModule } from './app/browser-app.module'; - -import { ENV_CONFIG } from './config'; - -if (ENV_CONFIG.production) { - enableProdMode(); -} - -export function main() { - // Load fonts async - // https://github.com/typekit/webfontloader#configuration - loadWebFont({ - google: { - families: ['Droid Sans'] - } - }); - - return platformBrowserDynamic().bootstrapModule(BrowserAppModule); -} - -// support async tag or hmr -bootloader(main); +import 'zone.js/dist/zone'; +import 'reflect-metadata'; + +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { bootloader } from '@angularclass/bootloader'; + +import { load as loadWebFont } from 'webfontloader'; + +import { BrowserAppModule } from './modules/app/browser-app.module'; + +import { ENV_CONFIG } from './config'; + +if (ENV_CONFIG.production) { + enableProdMode(); +} + +export function main() { + // Load fonts async + // https://github.com/typekit/webfontloader#configuration + loadWebFont({ + google: { + families: ['Droid Sans'] + } + }); + + return platformBrowserDynamic().bootstrapModule(BrowserAppModule); +} + +// support async tag or hmr +bootloader(main); diff --git a/src/main.server.ts b/src/main.server.ts index f787f30514..aae5b89a62 100644 --- a/src/main.server.ts +++ b/src/main.server.ts @@ -17,7 +17,7 @@ import { enableProdMode } from '@angular/core'; import { ngExpressEngine } from '@nguniversal/express-engine'; -import { ServerAppModule } from './app/server-app.module'; +import { ServerAppModule } from './modules/app/server-app.module'; import { serverApi, createMockApi } from './backend/api'; diff --git a/src/app/browser-app.module.ts b/src/modules/app/browser-app.module.ts similarity index 76% rename from src/app/browser-app.module.ts rename to src/modules/app/browser-app.module.ts index 0904ba9ecc..aad1af9f4e 100644 --- a/src/app/browser-app.module.ts +++ b/src/modules/app/browser-app.module.ts @@ -11,15 +11,15 @@ import { TranslateHttpLoader } from '@ngx-translate/http-loader'; import { EffectsModule } from '@ngrx/effects'; -import { TransferState } from '../modules/transfer-state/transfer-state'; -import { BrowserTransferStateModule } from '../modules/transfer-state/browser-transfer-state.module'; -import { BrowserTransferStoreEffects } from '../modules/transfer-store/browser-transfer-store.effects'; -import { BrowserTransferStoreModule } from '../modules/transfer-store/browser-transfer-store.module'; +import { TransferState } from '../transfer-state/transfer-state'; +import { BrowserTransferStateModule } from '../transfer-state/browser-transfer-state.module'; +import { BrowserTransferStoreEffects } from '../transfer-store/browser-transfer-store.effects'; +import { BrowserTransferStoreModule } from '../transfer-store/browser-transfer-store.module'; -import { AppModule } from './app.module'; -import { CoreModule } from './core/core.module'; +import { AppModule } from '../../app/app.module'; +import { CoreModule } from '../../app/core/core.module'; -import { AppComponent } from './app.component'; +import { AppComponent } from '../../app/app.component'; export function init(cache: TransferState) { return () => { diff --git a/src/app/server-app.module.ts b/src/modules/app/server-app.module.ts similarity index 74% rename from src/app/server-app.module.ts rename to src/modules/app/server-app.module.ts index 0eea0cac24..d97c13a7bb 100644 --- a/src/app/server-app.module.ts +++ b/src/modules/app/server-app.module.ts @@ -16,21 +16,21 @@ import { TranslateModule, TranslateLoader } from '@ngx-translate/core'; import { Store } from '@ngrx/store'; import { EffectsModule } from '@ngrx/effects'; -import { TranslateUniversalLoader } from '../modules/translate-universal-loader'; +import { TranslateUniversalLoader } from '../translate-universal-loader'; -import { ServerTransferStateModule } from '../modules/transfer-state/server-transfer-state.module'; -import { TransferState } from '../modules/transfer-state/transfer-state'; +import { ServerTransferStateModule } from '../transfer-state/server-transfer-state.module'; +import { TransferState } from '../transfer-state/transfer-state'; -import { ServerTransferStoreEffects } from '../modules/transfer-store/server-transfer-store.effects'; -import { ServerTransferStoreModule } from '../modules/transfer-store/server-transfer-store.module'; +import { ServerTransferStoreEffects } from '../transfer-store/server-transfer-store.effects'; +import { ServerTransferStoreModule } from '../transfer-store/server-transfer-store.module'; -import { AppState } from './app.reducer'; +import { AppState } from '../../app/app.reducer'; -import { AppModule } from './app.module'; +import { AppModule } from '../../app/app.module'; -import { AppComponent } from './app.component'; +import { AppComponent } from '../../app/app.component'; -import { GLOBAL_CONFIG, GlobalConfig } from '../config'; +import { GLOBAL_CONFIG, GlobalConfig } from '../../config'; export function boot(cache: TransferState, appRef: ApplicationRef, store: Store, request: Request, config: GlobalConfig) { // authentication mechanism goes here diff --git a/src/tsconfig.browser.json b/src/tsconfig.browser.json index a14de3972a..f7140b9fe4 100644 --- a/src/tsconfig.browser.json +++ b/src/tsconfig.browser.json @@ -1,6 +1,6 @@ { "extends": "../tsconfig.json", "angularCompilerOptions": { - "entryModule": "./app/browser-app.module#BrowserAppModule" + "entryModule": "./modules/app/browser-app.module#BrowserAppModule" } } diff --git a/src/tsconfig.server.json b/src/tsconfig.server.json index b86ab358f9..480b685a2a 100644 --- a/src/tsconfig.server.json +++ b/src/tsconfig.server.json @@ -1,6 +1,6 @@ { "extends": "../tsconfig.json", "angularCompilerOptions": { - "entryModule": "./app/server-app.module#ServerAppModule" + "entryModule": "./modules/app/server-app.module#ServerAppModule" } } diff --git a/src/tsconfig.test.json b/src/tsconfig.test.json index 32a466a3e9..712ad1ab1c 100644 --- a/src/tsconfig.test.json +++ b/src/tsconfig.test.json @@ -4,6 +4,6 @@ "sourceMap": true }, "angularCompilerOptions": { - "entryModule": "./app/browser-app.module#BrowserAppModule" + "entryModule": "./modules/app/browser-app.module#BrowserAppModule" } } diff --git a/webpack/webpack.test.js b/webpack/webpack.test.js index 818e348c7e..703da033a2 100644 --- a/webpack/webpack.test.js +++ b/webpack/webpack.test.js @@ -225,8 +225,7 @@ module.exports = function (options) { new ContextReplacementPlugin( /angular(\\|\/)core(\\|\/)@angular/, - root('./src'), - {} + root('./src'), {} ), /**