Refactoring

This commit is contained in:
2019-09-30 17:54:47 -04:00
parent 89df5efe5a
commit 5b64470d1f
35 changed files with 484 additions and 485 deletions

View File

@@ -1,132 +1,132 @@
{ {
"$schema": "./node_modules/@angular/cli/lib/config/schema.json", "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1, "version": 1,
"newProjectRoot": "projects", "newProjectRoot": "projects",
"projects": { "projects": {
"Display": { "Display": {
"projectType": "application", "projectType": "application",
"schematics": { "schematics": {
"@schematics/angular:component": { "@schematics/angular:component": {
"style": "scss" "style": "scss"
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/Display",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": false,
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css",
"src/styles.scss"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
} }
], },
"optimization": true, "root": "",
"outputHashing": "all", "sourceRoot": "src",
"sourceMap": false, "prefix": "app",
"extractCss": true, "architect": {
"namedChunks": false, "build": {
"aot": true, "builder": "@angular-devkit/build-angular:browser",
"extractLicenses": true, "options": {
"vendorChunk": false, "outputPath": "dist/Display",
"buildOptimizer": true, "index": "src/index.html",
"budgets": [ "main": "src/main.ts",
{ "polyfills": "src/polyfills.ts",
"type": "initial", "tsConfig": "tsconfig.app.json",
"maximumWarning": "2mb", "aot": false,
"maximumError": "5mb" "assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css",
"src/styles.scss"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
]
}
}
}, },
{ "serve": {
"type": "anyComponentStyle", "builder": "@angular-devkit/build-angular:dev-server",
"maximumWarning": "6kb", "options": {
"maximumError": "10kb" "browserTarget": "Display:build"
},
"configurations": {
"production": {
"browserTarget": "Display:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "Display:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css",
"src/styles.scss"
],
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "Display:serve"
},
"configurations": {
"production": {
"devServerTarget": "Display:serve:production"
}
}
} }
]
} }
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "Display:build"
},
"configurations": {
"production": {
"browserTarget": "Display:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "Display:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css",
"src/styles.scss"
],
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "Display:serve"
},
"configurations": {
"production": {
"devServerTarget": "Display:serve:production"
}
}
} }
} },
} "defaultProject": "Display"
},
"defaultProject": "Display"
} }

View File

@@ -2,31 +2,31 @@
// https://karma-runner.github.io/1.0/config/configuration-file.html // https://karma-runner.github.io/1.0/config/configuration-file.html
module.exports = function (config) { module.exports = function (config) {
config.set({ config.set({
basePath: '', basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'], frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [ plugins: [
require('karma-jasmine'), require('karma-jasmine'),
require('karma-chrome-launcher'), require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'), require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'), require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma') require('@angular-devkit/build-angular/plugins/karma')
], ],
client: { client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser clearContext: false // leave Jasmine Spec Runner output visible in browser
}, },
coverageIstanbulReporter: { coverageIstanbulReporter: {
dir: require('path').join(__dirname, './coverage/Display'), dir: require('path').join(__dirname, './coverage/Display'),
reports: ['html', 'lcovonly', 'text-summary'], reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true fixWebpackSourcePaths: true
}, },
reporters: ['progress', 'kjhtml'], reporters: ['progress', 'kjhtml'],
port: 9876, port: 9876,
colors: true, colors: true,
logLevel: config.LOG_INFO, logLevel: config.LOG_INFO,
autoWatch: true, autoWatch: true,
browsers: ['Chrome'], browsers: ['Chrome'],
singleRun: false, singleRun: false,
restartOnFileChange: true restartOnFileChange: true
}); });
}; };

View File

@@ -3,33 +3,33 @@ import { RouterTestingModule } from '@angular/router/testing';
import { AppComponent } from './app.component'; import { AppComponent } from './app.component';
describe('AppComponent', () => { describe('AppComponent', () => {
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [ imports: [
RouterTestingModule RouterTestingModule
], ],
declarations: [ declarations: [
AppComponent AppComponent
], ],
}).compileComponents(); }).compileComponents();
})); }));
it('should create the app', () => { it('should create the app', () => {
const fixture = TestBed.createComponent(AppComponent); const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance; const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy(); expect(app).toBeTruthy();
}); });
it(`should have as title 'Display'`, () => { it(`should have as title 'Display'`, () => {
const fixture = TestBed.createComponent(AppComponent); const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance; const app = fixture.debugElement.componentInstance;
expect(app.title).toEqual('Display'); expect(app.title).toEqual('Display');
}); });
it('should render title', () => { it('should render title', () => {
const fixture = TestBed.createComponent(AppComponent); const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges(); fixture.detectChanges();
const compiled = fixture.debugElement.nativeElement; const compiled = fixture.debugElement.nativeElement;
expect(compiled.querySelector('.content span').textContent).toContain('Display app is running!'); expect(compiled.querySelector('.content span').textContent).toContain('Display app is running!');
}); });
}); });

View File

@@ -1,10 +1,10 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
templateUrl: './app.component.html', templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'] styleUrls: ['./app.component.scss']
}) })
export class AppComponent { export class AppComponent {
title = 'Display'; title = 'Display';
} }

View File

@@ -3,23 +3,23 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { DashboardComponent } from './dashboard.component'; import { DashboardComponent } from './dashboard.component';
describe('DashboardComponent', () => { describe('DashboardComponent', () => {
let component: DashboardComponent; let component: DashboardComponent;
let fixture: ComponentFixture<DashboardComponent>; let fixture: ComponentFixture<DashboardComponent>;
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [ DashboardComponent ] declarations: [DashboardComponent]
}) })
.compileComponents(); .compileComponents();
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(DashboardComponent); fixture = TestBed.createComponent(DashboardComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
fixture.detectChanges(); fixture.detectChanges();
}); });
it('should create', () => { it('should create', () => {
expect(component).toBeTruthy(); expect(component).toBeTruthy();
}); });
}); });

View File

@@ -1,15 +1,15 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
@Component({ @Component({
selector: 'app-dashboard', selector: 'app-dashboard',
templateUrl: './dashboard.component.html', templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.scss'] styleUrls: ['./dashboard.component.scss']
}) })
export class DashboardComponent implements OnInit { export class DashboardComponent implements OnInit {
constructor() { } constructor() { }
ngOnInit() { ngOnInit() {
} }
} }

View File

@@ -22,3 +22,4 @@
</tr> </tr>
</table> </table>
</div> </div>
</div>

View File

@@ -1,17 +1,17 @@
.laundry-current { .laundry-current {
font-size: 14px; font-size: 14px;
} }
.laundry-current-header { .laundry-current-header {
font-weight: 500; font-weight: 500;
text-align: right; text-align: right;
padding-right: 10px; padding-right: 10px;
} }
.true { .true {
color: darkgoldenrod; color: darkgoldenrod;
} }
.false { .false {
color: darkgreen; color: darkgreen;
} }

View File

@@ -3,23 +3,23 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { LaundryComponent } from './laundry.component'; import { LaundryComponent } from './laundry.component';
describe('LaundryComponent', () => { describe('LaundryComponent', () => {
let component: LaundryComponent; let component: LaundryComponent;
let fixture: ComponentFixture<LaundryComponent>; let fixture: ComponentFixture<LaundryComponent>;
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [ LaundryComponent ] declarations: [LaundryComponent]
}) })
.compileComponents(); .compileComponents();
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(LaundryComponent); fixture = TestBed.createComponent(LaundryComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
fixture.detectChanges(); fixture.detectChanges();
}); });
it('should create', () => { it('should create', () => {
expect(component).toBeTruthy(); expect(component).toBeTruthy();
}); });
}); });

View File

@@ -1,6 +1,6 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { LaundryService } from '../../services/laundry/laundry.service'; import { LaundryService } from '../../services/laundry/laundry.service';
import { LaundryStatus } from '../../services/laundry/laundry-status'; import { LaundryStatus } from '../../models/laundry/laundry-status';
@Component({ @Component({
selector: 'app-laundry', selector: 'app-laundry',

View File

@@ -17,5 +17,5 @@
} }
.mat-sidenav-content { .mat-sidenav-content {
padding: 20px; padding: 20px;
} }

View File

@@ -10,31 +10,31 @@ import { MatToolbarModule } from '@angular/material/toolbar';
import { NavComponent } from './nav.component'; import { NavComponent } from './nav.component';
describe('NavComponent', () => { describe('NavComponent', () => {
let component: NavComponent; let component: NavComponent;
let fixture: ComponentFixture<NavComponent>; let fixture: ComponentFixture<NavComponent>;
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [NavComponent], declarations: [NavComponent],
imports: [ imports: [
NoopAnimationsModule, NoopAnimationsModule,
LayoutModule, LayoutModule,
MatButtonModule, MatButtonModule,
MatIconModule, MatIconModule,
MatListModule, MatListModule,
MatSidenavModule, MatSidenavModule,
MatToolbarModule, MatToolbarModule,
] ]
}).compileComponents(); }).compileComponents();
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(NavComponent); fixture = TestBed.createComponent(NavComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
fixture.detectChanges(); fixture.detectChanges();
}); });
it('should compile', () => { it('should compile', () => {
expect(component).toBeTruthy(); expect(component).toBeTruthy();
}); });
}); });

View File

@@ -4,18 +4,16 @@ import { Observable } from 'rxjs';
import { map, shareReplay } from 'rxjs/operators'; import { map, shareReplay } from 'rxjs/operators';
@Component({ @Component({
selector: 'app-nav', selector: 'app-nav',
templateUrl: './nav.component.html', templateUrl: './nav.component.html',
styleUrls: ['./nav.component.scss'] styleUrls: ['./nav.component.scss']
}) })
export class NavComponent { export class NavComponent {
isHandset$: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset)
.pipe(
map(result => result.matches),
shareReplay()
);
isHandset$: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset) constructor(private breakpointObserver: BreakpointObserver) { }
.pipe(
map(result => result.matches),
shareReplay()
);
constructor(private breakpointObserver: BreakpointObserver) {}
} }

View File

@@ -7,18 +7,18 @@
} }
#chart { #chart {
position: absolute; position: absolute;
top: 50px; top: 50px;
bottom: 0; bottom: 0;
left: 0; left: 0;
right: 0; right: 0;
} }
.chart-header { .chart-header {
background-color: rgb(250, 250, 250); background-color: rgb(250, 250, 250);
height: 50px; height: 50px;
} }
.chart-button-spacer { .chart-button-spacer {
margin-right: 20px; margin-right: 20px;
} }

View File

@@ -3,23 +3,23 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { WeatherChartsComponent } from './weather-charts.component'; import { WeatherChartsComponent } from './weather-charts.component';
describe('WeatherChartsComponent', () => { describe('WeatherChartsComponent', () => {
let component: WeatherChartsComponent; let component: WeatherChartsComponent;
let fixture: ComponentFixture<WeatherChartsComponent>; let fixture: ComponentFixture<WeatherChartsComponent>;
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [ WeatherChartsComponent ] declarations: [WeatherChartsComponent]
}) })
.compileComponents(); .compileComponents();
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(WeatherChartsComponent); fixture = TestBed.createComponent(WeatherChartsComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
fixture.detectChanges(); fixture.detectChanges();
}); });
it('should create', () => { it('should create', () => {
expect(component).toBeTruthy(); expect(component).toBeTruthy();
}); });
}); });

View File

@@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core';
import { Chart } from 'angular-highcharts'; import { Chart } from 'angular-highcharts';
import { SeriesLineOptions } from 'highcharts'; import { SeriesLineOptions } from 'highcharts';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { WeatherValue } from '../../../services/weather/weather-value'; import { WeatherValue } from '../../../models/weather/weather-value';
import { ActivatedRoute, ParamMap } from '@angular/router'; import { ActivatedRoute, ParamMap } from '@angular/router';
import * as moment from 'moment'; import * as moment from 'moment';

View File

@@ -1,9 +1,9 @@
.weather-current { .weather-current {
font-size: 14px; font-size: 14px;
} }
.weather-current-header { .weather-current-header {
font-weight: 500; font-weight: 500;
text-align: right; text-align: right;
padding-right: 10px; padding-right: 10px;
} }

View File

@@ -3,23 +3,23 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { WeatherCurrentComponent } from './weather-current.component'; import { WeatherCurrentComponent } from './weather-current.component';
describe('WeatherCurrentComponent', () => { describe('WeatherCurrentComponent', () => {
let component: WeatherCurrentComponent; let component: WeatherCurrentComponent;
let fixture: ComponentFixture<WeatherCurrentComponent>; let fixture: ComponentFixture<WeatherCurrentComponent>;
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [ WeatherCurrentComponent ] declarations: [WeatherCurrentComponent]
}) })
.compileComponents(); .compileComponents();
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(WeatherCurrentComponent); fixture = TestBed.createComponent(WeatherCurrentComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
fixture.detectChanges(); fixture.detectChanges();
}); });
it('should create', () => { it('should create', () => {
expect(component).toBeTruthy(); expect(component).toBeTruthy();
}); });
}); });

View File

@@ -1,5 +1,5 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { WeatherReading } from '../../../services/weather/weather-reading'; import { WeatherReading } from '../../../models/weather/weather-reading';
import { WeatherService } from '../../../services/weather/weather.service'; import { WeatherService } from '../../../services/weather/weather.service';
@Component({ @Component({

View File

@@ -0,0 +1,7 @@
import { LaundryStatus } from './laundry-status';
describe('LaundryStatus', () => {
it('should create an instance', () => {
expect(new LaundryStatus()).toBeTruthy();
});
});

View File

@@ -0,0 +1,7 @@
import { WeatherReading } from './weather-reading';
describe('WeatherReading', () => {
it('should create an instance', () => {
expect(new WeatherReading()).toBeTruthy();
});
});

View File

@@ -1,7 +0,0 @@
import { LaundryStatus } from './laundry-status';
describe('LaundryStatus', () => {
it('should create an instance', () => {
expect(new LaundryStatus()).toBeTruthy();
});
});

View File

@@ -3,10 +3,10 @@ import { TestBed } from '@angular/core/testing';
import { LaundryService } from './laundry.service'; import { LaundryService } from './laundry.service';
describe('LaundryService', () => { describe('LaundryService', () => {
beforeEach(() => TestBed.configureTestingModule({})); beforeEach(() => TestBed.configureTestingModule({}));
it('should be created', () => { it('should be created', () => {
const service: LaundryService = TestBed.get(LaundryService); const service: LaundryService = TestBed.get(LaundryService);
expect(service).toBeTruthy(); expect(service).toBeTruthy();
}); });
}); });

View File

@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Observable, BehaviorSubject } from 'rxjs'; import { Observable, BehaviorSubject } from 'rxjs';
import { Socket } from 'ngx-socket-io'; import { Socket } from 'ngx-socket-io';
import { LaundryStatus } from './laundry-status'; import { LaundryStatus } from '../../models/laundry/laundry-status';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@@ -14,11 +14,11 @@ export class LaundryService {
const newStatus: LaundryStatus = JSON.parse(statusString); const newStatus: LaundryStatus = JSON.parse(statusString);
if (newStatus.washer !== undefined) { if (newStatus.washer !== undefined) {
this.latestStatus.value.washer = newStatus.washer; this.latestStatus.value.washer = newStatus.washer;
} }
if (newStatus.dryer !== undefined) { if (newStatus.dryer !== undefined) {
this.latestStatus.value.dryer = newStatus.dryer; this.latestStatus.value.dryer = newStatus.dryer;
} }
}); });

View File

@@ -1,7 +0,0 @@
import { WeatherReading } from './weather-reading';
describe('WeatherReading', () => {
it('should create an instance', () => {
expect(new WeatherReading()).toBeTruthy();
});
});

View File

@@ -3,10 +3,10 @@ import { TestBed } from '@angular/core/testing';
import { WeatherService } from './weather.service'; import { WeatherService } from './weather.service';
describe('WeatherService', () => { describe('WeatherService', () => {
beforeEach(() => TestBed.configureTestingModule({})); beforeEach(() => TestBed.configureTestingModule({}));
it('should be created', () => { it('should be created', () => {
const service: WeatherService = TestBed.get(WeatherService); const service: WeatherService = TestBed.get(WeatherService);
expect(service).toBeTruthy(); expect(service).toBeTruthy();
}); });
}); });

View File

@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Observable, BehaviorSubject } from 'rxjs'; import { Observable, BehaviorSubject } from 'rxjs';
import { HubConnectionBuilder, HubConnection } from '@aspnet/signalr'; import { HubConnectionBuilder, HubConnection } from '@aspnet/signalr';
import { WeatherReading } from './weather-reading'; import { WeatherReading } from '../../models/weather/weather-reading';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'

View File

@@ -3,16 +3,16 @@
import 'zone.js/dist/zone-testing'; import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing'; import { getTestBed } from '@angular/core/testing';
import { import {
BrowserDynamicTestingModule, BrowserDynamicTestingModule,
platformBrowserDynamicTesting platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing'; } from '@angular/platform-browser-dynamic/testing';
declare const require: any; declare const require: any;
// First, initialize the Angular testing environment. // First, initialize the Angular testing environment.
getTestBed().initTestEnvironment( getTestBed().initTestEnvironment(
BrowserDynamicTestingModule, BrowserDynamicTestingModule,
platformBrowserDynamicTesting() platformBrowserDynamicTesting()
); );
// Then we find all the tests. // Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/); const context = require.context('./', true, /\.spec\.ts$/);

View File

@@ -1,18 +1,18 @@
{ {
"extends": "./tsconfig.json", "extends": "./tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "./out-tsc/app", "outDir": "./out-tsc/app",
"types": [] "types": []
}, },
"files": [ "files": [
"src/main.ts", "src/main.ts",
"src/polyfills.ts" "src/polyfills.ts"
], ],
"include": [ "include": [
"src/**/*.ts" "src/**/*.ts"
], ],
"exclude": [ "exclude": [
"src/test.ts", "src/test.ts",
"src/**/*.spec.ts" "src/**/*.spec.ts"
] ]
} }

View File

@@ -1,26 +1,26 @@
{ {
"compileOnSave": false, "compileOnSave": false,
"compilerOptions": { "compilerOptions": {
"baseUrl": "./", "baseUrl": "./",
"outDir": "./dist/out-tsc", "outDir": "./dist/out-tsc",
"sourceMap": true, "sourceMap": true,
"declaration": false, "declaration": false,
"downlevelIteration": true, "downlevelIteration": true,
"experimentalDecorators": true, "experimentalDecorators": true,
"module": "esnext", "module": "esnext",
"moduleResolution": "node", "moduleResolution": "node",
"importHelpers": true, "importHelpers": true,
"target": "es2015", "target": "es2015",
"typeRoots": [ "typeRoots": [
"node_modules/@types" "node_modules/@types"
], ],
"lib": [ "lib": [
"es2018", "es2018",
"dom" "dom"
] ]
}, },
"angularCompilerOptions": { "angularCompilerOptions": {
"fullTemplateTypeCheck": true, "fullTemplateTypeCheck": true,
"strictInjectionParameters": true "strictInjectionParameters": true
} }
} }

View File

@@ -1,18 +1,18 @@
{ {
"extends": "./tsconfig.json", "extends": "./tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "./out-tsc/spec", "outDir": "./out-tsc/spec",
"types": [ "types": [
"jasmine", "jasmine",
"node" "node"
]
},
"files": [
"src/test.ts",
"src/polyfills.ts"
],
"include": [
"src/**/*.spec.ts",
"src/**/*.d.ts"
] ]
},
"files": [
"src/test.ts",
"src/polyfills.ts"
],
"include": [
"src/**/*.spec.ts",
"src/**/*.d.ts"
]
} }

View File

@@ -1,91 +1,91 @@
{ {
"extends": "tslint:recommended", "extends": "tslint:recommended",
"rules": { "rules": {
"array-type": false, "array-type": false,
"arrow-parens": false, "arrow-parens": false,
"deprecation": { "deprecation": {
"severity": "warning" "severity": "warning"
},
"component-class-suffix": true,
"contextual-lifecycle": true,
"directive-class-suffix": true,
"directive-selector": [
true,
"attribute",
"app",
"camelCase"
],
"component-selector": [
true,
"element",
"app",
"kebab-case"
],
"import-blacklist": [
true,
"rxjs/Rx"
],
"interface-name": false,
"max-classes-per-file": false,
"max-line-length": [
false
],
"member-access": false,
"member-ordering": [
true,
{
"order": [
"static-field",
"instance-field",
"static-method",
"instance-method"
]
}
],
"no-consecutive-blank-lines": false,
"no-console": [
true,
"debug",
"info",
"time",
"timeEnd",
"trace"
],
"no-empty": false,
"no-inferrable-types": [
true,
"ignore-params"
],
"no-non-null-assertion": true,
"no-redundant-jsdoc": true,
"no-switch-case-fall-through": true,
"no-use-before-declare": true,
"no-var-requires": false,
"object-literal-key-quotes": [
true,
"as-needed"
],
"object-literal-sort-keys": false,
"ordered-imports": false,
"quotemark": [
true,
"single"
],
"trailing-comma": false,
"no-conflicting-lifecycle": true,
"no-host-metadata-property": true,
"no-input-rename": true,
"no-inputs-metadata-property": true,
"no-output-native": true,
"no-output-on-prefix": true,
"no-output-rename": true,
"no-outputs-metadata-property": true,
"template-banana-in-box": true,
"template-no-negated-async": true,
"use-lifecycle-interface": true,
"use-pipe-transform-interface": true
}, },
"component-class-suffix": true, "rulesDirectory": [
"contextual-lifecycle": true, "codelyzer"
"directive-class-suffix": true, ]
"directive-selector": [
true,
"attribute",
"app",
"camelCase"
],
"component-selector": [
true,
"element",
"app",
"kebab-case"
],
"import-blacklist": [
true,
"rxjs/Rx"
],
"interface-name": false,
"max-classes-per-file": false,
"max-line-length": [
false
],
"member-access": false,
"member-ordering": [
true,
{
"order": [
"static-field",
"instance-field",
"static-method",
"instance-method"
]
}
],
"no-consecutive-blank-lines": false,
"no-console": [
true,
"debug",
"info",
"time",
"timeEnd",
"trace"
],
"no-empty": false,
"no-inferrable-types": [
true,
"ignore-params"
],
"no-non-null-assertion": true,
"no-redundant-jsdoc": true,
"no-switch-case-fall-through": true,
"no-use-before-declare": true,
"no-var-requires": false,
"object-literal-key-quotes": [
true,
"as-needed"
],
"object-literal-sort-keys": false,
"ordered-imports": false,
"quotemark": [
true,
"single"
],
"trailing-comma": false,
"no-conflicting-lifecycle": true,
"no-host-metadata-property": true,
"no-input-rename": true,
"no-inputs-metadata-property": true,
"no-output-native": true,
"no-output-on-prefix": true,
"no-output-rename": true,
"no-outputs-metadata-property": true,
"template-banana-in-box": true,
"template-no-negated-async": true,
"use-lifecycle-interface": true,
"use-pipe-transform-interface": true
},
"rulesDirectory": [
"codelyzer"
]
} }