Commit 329f7ea1c4472e52bbde9c9ef5344f47ba9c05e8
0 parents
chore: initial commit from @angular/cli
Showing
29 changed files
with
711 additions
and
0 deletions
.angular-cli.json
0 โ 100644
1 | +++ a/.angular-cli.json | |
1 | +{ | |
2 | + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", | |
3 | + "project": { | |
4 | + "name": "ng2-test-app" | |
5 | + }, | |
6 | + "apps": [ | |
7 | + { | |
8 | + "root": "src", | |
9 | + "outDir": "dist", | |
10 | + "assets": [ | |
11 | + "assets", | |
12 | + "favicon.ico" | |
13 | + ], | |
14 | + "index": "index.html", | |
15 | + "main": "main.ts", | |
16 | + "polyfills": "polyfills.ts", | |
17 | + "test": "test.ts", | |
18 | + "tsconfig": "tsconfig.app.json", | |
19 | + "testTsconfig": "tsconfig.spec.json", | |
20 | + "prefix": "app", | |
21 | + "styles": [ | |
22 | + "styles.css" | |
23 | + ], | |
24 | + "scripts": [], | |
25 | + "environmentSource": "environments/environment.ts", | |
26 | + "environments": { | |
27 | + "dev": "environments/environment.ts", | |
28 | + "prod": "environments/environment.prod.ts" | |
29 | + } | |
30 | + } | |
31 | + ], | |
32 | + "e2e": { | |
33 | + "protractor": { | |
34 | + "config": "./protractor.conf.js" | |
35 | + } | |
36 | + }, | |
37 | + "lint": [ | |
38 | + { | |
39 | + "project": "src/tsconfig.app.json", | |
40 | + "exclude": "**/node_modules/**" | |
41 | + }, | |
42 | + { | |
43 | + "project": "src/tsconfig.spec.json", | |
44 | + "exclude": "**/node_modules/**" | |
45 | + }, | |
46 | + { | |
47 | + "project": "e2e/tsconfig.e2e.json", | |
48 | + "exclude": "**/node_modules/**" | |
49 | + } | |
50 | + ], | |
51 | + "test": { | |
52 | + "karma": { | |
53 | + "config": "./karma.conf.js" | |
54 | + } | |
55 | + }, | |
56 | + "defaults": { | |
57 | + "styleExt": "css", | |
58 | + "component": {} | |
59 | + } | |
60 | +} | ... | ... |
.editorconfig
0 โ 100644
1 | +++ a/.editorconfig | |
1 | +# Editor configuration, see http://editorconfig.org | |
2 | +root = true | |
3 | + | |
4 | +[*] | |
5 | +charset = utf-8 | |
6 | +indent_style = space | |
7 | +indent_size = 2 | |
8 | +insert_final_newline = true | |
9 | +trim_trailing_whitespace = true | |
10 | + | |
11 | +[*.md] | |
12 | +max_line_length = off | |
13 | +trim_trailing_whitespace = false | ... | ... |
.gitignore
0 โ 100644
1 | +++ a/.gitignore | |
1 | +# See http://help.github.com/ignore-files/ for more about ignoring files. | |
2 | + | |
3 | +# compiled output | |
4 | +/dist | |
5 | +/tmp | |
6 | +/out-tsc | |
7 | + | |
8 | +# dependencies | |
9 | +/node_modules | |
10 | + | |
11 | +# IDEs and editors | |
12 | +/.idea | |
13 | +.project | |
14 | +.classpath | |
15 | +.c9/ | |
16 | +*.launch | |
17 | +.settings/ | |
18 | +*.sublime-workspace | |
19 | + | |
20 | +# IDE - VSCode | |
21 | +.vscode/* | |
22 | +!.vscode/settings.json | |
23 | +!.vscode/tasks.json | |
24 | +!.vscode/launch.json | |
25 | +!.vscode/extensions.json | |
26 | + | |
27 | +# misc | |
28 | +/.sass-cache | |
29 | +/connect.lock | |
30 | +/coverage | |
31 | +/libpeerconnection.log | |
32 | +npm-debug.log | |
33 | +testem.log | |
34 | +/typings | |
35 | +yarn-error.log | |
36 | + | |
37 | +# e2e | |
38 | +/e2e/*.js | |
39 | +/e2e/*.map | |
40 | + | |
41 | +# System Files | |
42 | +.DS_Store | |
43 | +Thumbs.db | ... | ... |
README.md
0 โ 100644
1 | +++ a/README.md | |
1 | +# Ng2TestApp | |
2 | + | |
3 | +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.3.0. | |
4 | + | |
5 | +## Development server | |
6 | + | |
7 | +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. | |
8 | + | |
9 | +## Code scaffolding | |
10 | + | |
11 | +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. | |
12 | + | |
13 | +## Build | |
14 | + | |
15 | +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build. | |
16 | + | |
17 | +## Running unit tests | |
18 | + | |
19 | +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). | |
20 | + | |
21 | +## Running end-to-end tests | |
22 | + | |
23 | +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). | |
24 | +Before running the tests make sure you are serving the app via `ng serve`. | |
25 | + | |
26 | +## Further help | |
27 | + | |
28 | +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). | ... | ... |
e2e/app.e2e-spec.ts
0 โ 100644
1 | +++ a/e2e/app.e2e-spec.ts | |
1 | +import { AppPage } from './app.po'; | |
2 | + | |
3 | +describe('ng2-test-app App', () => { | |
4 | + let page: AppPage; | |
5 | + | |
6 | + beforeEach(() => { | |
7 | + page = new AppPage(); | |
8 | + }); | |
9 | + | |
10 | + it('should display welcome message', () => { | |
11 | + page.navigateTo(); | |
12 | + expect(page.getParagraphText()).toEqual('Welcome to app!'); | |
13 | + }); | |
14 | +}); | ... | ... |
e2e/app.po.ts
0 โ 100644
e2e/tsconfig.e2e.json
0 โ 100644
karma.conf.js
0 โ 100644
1 | +++ a/karma.conf.js | |
1 | +// Karma configuration file, see link for more information | |
2 | +// https://karma-runner.github.io/1.0/config/configuration-file.html | |
3 | + | |
4 | +module.exports = function (config) { | |
5 | + config.set({ | |
6 | + basePath: '', | |
7 | + frameworks: ['jasmine', '@angular/cli'], | |
8 | + plugins: [ | |
9 | + require('karma-jasmine'), | |
10 | + require('karma-chrome-launcher'), | |
11 | + require('karma-jasmine-html-reporter'), | |
12 | + require('karma-coverage-istanbul-reporter'), | |
13 | + require('@angular/cli/plugins/karma') | |
14 | + ], | |
15 | + client:{ | |
16 | + clearContext: false // leave Jasmine Spec Runner output visible in browser | |
17 | + }, | |
18 | + coverageIstanbulReporter: { | |
19 | + reports: [ 'html', 'lcovonly' ], | |
20 | + fixWebpackSourcePaths: true | |
21 | + }, | |
22 | + angularCli: { | |
23 | + environment: 'dev' | |
24 | + }, | |
25 | + reporters: ['progress', 'kjhtml'], | |
26 | + port: 9876, | |
27 | + colors: true, | |
28 | + logLevel: config.LOG_INFO, | |
29 | + autoWatch: true, | |
30 | + browsers: ['Chrome'], | |
31 | + singleRun: false | |
32 | + }); | |
33 | +}; | ... | ... |
package.json
0 โ 100644
1 | +++ a/package.json | |
1 | +{ | |
2 | + "name": "ng2-test-app", | |
3 | + "version": "0.0.0", | |
4 | + "license": "MIT", | |
5 | + "scripts": { | |
6 | + "ng": "ng", | |
7 | + "start": "ng serve", | |
8 | + "build": "ng build", | |
9 | + "test": "ng test", | |
10 | + "lint": "ng lint", | |
11 | + "e2e": "ng e2e" | |
12 | + }, | |
13 | + "private": true, | |
14 | + "dependencies": { | |
15 | + "@angular/animations": "^4.2.4", | |
16 | + "@angular/common": "^4.2.4", | |
17 | + "@angular/compiler": "^4.2.4", | |
18 | + "@angular/core": "^4.2.4", | |
19 | + "@angular/forms": "^4.2.4", | |
20 | + "@angular/http": "^4.2.4", | |
21 | + "@angular/platform-browser": "^4.2.4", | |
22 | + "@angular/platform-browser-dynamic": "^4.2.4", | |
23 | + "@angular/router": "^4.2.4", | |
24 | + "core-js": "^2.4.1", | |
25 | + "rxjs": "^5.4.2", | |
26 | + "zone.js": "^0.8.14" | |
27 | + }, | |
28 | + "devDependencies": { | |
29 | + "@angular/cli": "1.3.0", | |
30 | + "@angular/compiler-cli": "^4.2.4", | |
31 | + "@angular/language-service": "^4.2.4", | |
32 | + "@types/jasmine": "~2.5.53", | |
33 | + "@types/jasminewd2": "~2.0.2", | |
34 | + "@types/node": "~6.0.60", | |
35 | + "codelyzer": "~3.1.1", | |
36 | + "jasmine-core": "~2.6.2", | |
37 | + "jasmine-spec-reporter": "~4.1.0", | |
38 | + "karma": "~1.7.0", | |
39 | + "karma-chrome-launcher": "~2.1.1", | |
40 | + "karma-cli": "~1.0.1", | |
41 | + "karma-coverage-istanbul-reporter": "^1.2.1", | |
42 | + "karma-jasmine": "~1.1.0", | |
43 | + "karma-jasmine-html-reporter": "^0.2.2", | |
44 | + "protractor": "~5.1.2", | |
45 | + "ts-node": "~3.2.0", | |
46 | + "tslint": "~5.3.2", | |
47 | + "typescript": "~2.3.3" | |
48 | + } | |
49 | +} | ... | ... |
protractor.conf.js
0 โ 100644
1 | +++ a/protractor.conf.js | |
1 | +// Protractor configuration file, see link for more information | |
2 | +// https://github.com/angular/protractor/blob/master/lib/config.ts | |
3 | + | |
4 | +const { SpecReporter } = require('jasmine-spec-reporter'); | |
5 | + | |
6 | +exports.config = { | |
7 | + allScriptsTimeout: 11000, | |
8 | + specs: [ | |
9 | + './e2e/**/*.e2e-spec.ts' | |
10 | + ], | |
11 | + capabilities: { | |
12 | + 'browserName': 'chrome' | |
13 | + }, | |
14 | + directConnect: true, | |
15 | + baseUrl: 'http://localhost:4200/', | |
16 | + framework: 'jasmine', | |
17 | + jasmineNodeOpts: { | |
18 | + showColors: true, | |
19 | + defaultTimeoutInterval: 30000, | |
20 | + print: function() {} | |
21 | + }, | |
22 | + onPrepare() { | |
23 | + require('ts-node').register({ | |
24 | + project: 'e2e/tsconfig.e2e.json' | |
25 | + }); | |
26 | + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); | |
27 | + } | |
28 | +}; | ... | ... |
src/app/app.component.css
0 โ 100644
1 | +++ a/src/app/app.component.css | ... | ... |
src/app/app.component.html
0 โ 100644
1 | +++ a/src/app/app.component.html | |
1 | +<!--The content below is only a placeholder and can be replaced.--> | |
2 | +<div style="text-align:center"> | |
3 | + <h1> | |
4 | + Welcome to {{title}}! | |
5 | + </h1> | |
6 | + <img width="300" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyNTAgMjUwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNTAgMjUwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDojREQwMDMxO30NCgkuc3Qxe2ZpbGw6I0MzMDAyRjt9DQoJLnN0MntmaWxsOiNGRkZGRkY7fQ0KPC9zdHlsZT4NCjxnPg0KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iMTI1LDMwIDEyNSwzMCAxMjUsMzAgMzEuOSw2My4yIDQ2LjEsMTg2LjMgMTI1LDIzMCAxMjUsMjMwIDEyNSwyMzAgMjAzLjksMTg2LjMgMjE4LjEsNjMuMiAJIi8+DQoJPHBvbHlnb24gY2xhc3M9InN0MSIgcG9pbnRzPSIxMjUsMzAgMTI1LDUyLjIgMTI1LDUyLjEgMTI1LDE1My40IDEyNSwxNTMuNCAxMjUsMjMwIDEyNSwyMzAgMjAzLjksMTg2LjMgMjE4LjEsNjMuMiAxMjUsMzAgCSIvPg0KCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMjUsNTIuMUw2Ni44LDE4Mi42aDBoMjEuN2gwbDExLjctMjkuMmg0OS40bDExLjcsMjkuMmgwaDIxLjdoMEwxMjUsNTIuMUwxMjUsNTIuMUwxMjUsNTIuMUwxMjUsNTIuMQ0KCQlMMTI1LDUyLjF6IE0xNDIsMTM1LjRIMTA4bDE3LTQwLjlMMTQyLDEzNS40eiIvPg0KPC9nPg0KPC9zdmc+DQo="> | |
7 | +</div> | |
8 | +<h2>Here are some links to help you start: </h2> | |
9 | +<ul> | |
10 | + <li> | |
11 | + <h2><a target="_blank" href="https://angular.io/tutorial">Tour of Heroes</a></h2> | |
12 | + </li> | |
13 | + <li> | |
14 | + <h2><a target="_blank" href="https://github.com/angular/angular-cli/wiki">CLI Documentation</a></h2> | |
15 | + </li> | |
16 | + <li> | |
17 | + <h2><a target="_blank" href="https://blog.angular.io//">Angular blog</a></h2> | |
18 | + </li> | |
19 | +</ul> | |
20 | + | ... | ... |
src/app/app.component.spec.ts
0 โ 100644
1 | +++ a/src/app/app.component.spec.ts | |
1 | +import { TestBed, async } from '@angular/core/testing'; | |
2 | + | |
3 | +import { AppComponent } from './app.component'; | |
4 | + | |
5 | +describe('AppComponent', () => { | |
6 | + beforeEach(async(() => { | |
7 | + TestBed.configureTestingModule({ | |
8 | + declarations: [ | |
9 | + AppComponent | |
10 | + ], | |
11 | + }).compileComponents(); | |
12 | + })); | |
13 | + | |
14 | + it('should create the app', async(() => { | |
15 | + const fixture = TestBed.createComponent(AppComponent); | |
16 | + const app = fixture.debugElement.componentInstance; | |
17 | + expect(app).toBeTruthy(); | |
18 | + })); | |
19 | + | |
20 | + it(`should have as title 'app'`, async(() => { | |
21 | + const fixture = TestBed.createComponent(AppComponent); | |
22 | + const app = fixture.debugElement.componentInstance; | |
23 | + expect(app.title).toEqual('app'); | |
24 | + })); | |
25 | + | |
26 | + it('should render title in a h1 tag', async(() => { | |
27 | + const fixture = TestBed.createComponent(AppComponent); | |
28 | + fixture.detectChanges(); | |
29 | + const compiled = fixture.debugElement.nativeElement; | |
30 | + expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!'); | |
31 | + })); | |
32 | +}); | ... | ... |
src/app/app.component.ts
0 โ 100644
src/app/app.module.ts
0 โ 100644
1 | +++ a/src/app/app.module.ts | |
1 | +import { BrowserModule } from '@angular/platform-browser'; | |
2 | +import { NgModule } from '@angular/core'; | |
3 | + | |
4 | +import { AppComponent } from './app.component'; | |
5 | + | |
6 | +@NgModule({ | |
7 | + declarations: [ | |
8 | + AppComponent | |
9 | + ], | |
10 | + imports: [ | |
11 | + BrowserModule | |
12 | + ], | |
13 | + providers: [], | |
14 | + bootstrap: [AppComponent] | |
15 | +}) | |
16 | +export class AppModule { } | ... | ... |
src/assets/.gitkeep
0 โ 100644
1 | +++ a/src/assets/.gitkeep | ... | ... |
src/environments/environment.prod.ts
0 โ 100644
src/environments/environment.ts
0 โ 100644
1 | +++ a/src/environments/environment.ts | |
1 | +// The file contents for the current environment will overwrite these during build. | |
2 | +// The build system defaults to the dev environment which uses `environment.ts`, but if you do | |
3 | +// `ng build --env=prod` then `environment.prod.ts` will be used instead. | |
4 | +// The list of which env maps to which file can be found in `.angular-cli.json`. | |
5 | + | |
6 | +export const environment = { | |
7 | + production: false | |
8 | +}; | ... | ... |
src/favicon.ico
0 โ 100644
No preview for this file type
src/index.html
0 โ 100644
1 | +++ a/src/index.html | |
1 | +<!doctype html> | |
2 | +<html lang="en"> | |
3 | +<head> | |
4 | + <meta charset="utf-8"> | |
5 | + <title>Ng2TestApp</title> | |
6 | + <base href="/"> | |
7 | + | |
8 | + <meta name="viewport" content="width=device-width, initial-scale=1"> | |
9 | + <link rel="icon" type="image/x-icon" href="favicon.ico"> | |
10 | +</head> | |
11 | +<body> | |
12 | + <app-root></app-root> | |
13 | +</body> | |
14 | +</html> | ... | ... |
src/main.ts
0 โ 100644
1 | +++ a/src/main.ts | |
1 | +import { enableProdMode } from '@angular/core'; | |
2 | +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; | |
3 | + | |
4 | +import { AppModule } from './app/app.module'; | |
5 | +import { environment } from './environments/environment'; | |
6 | + | |
7 | +if (environment.production) { | |
8 | + enableProdMode(); | |
9 | +} | |
10 | + | |
11 | +platformBrowserDynamic().bootstrapModule(AppModule); | ... | ... |
src/polyfills.ts
0 โ 100644
1 | +++ a/src/polyfills.ts | |
1 | +/** | |
2 | + * This file includes polyfills needed by Angular and is loaded before the app. | |
3 | + * You can add your own extra polyfills to this file. | |
4 | + * | |
5 | + * This file is divided into 2 sections: | |
6 | + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. | |
7 | + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main | |
8 | + * file. | |
9 | + * | |
10 | + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that | |
11 | + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), | |
12 | + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. | |
13 | + * | |
14 | + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html | |
15 | + */ | |
16 | + | |
17 | +/*************************************************************************************************** | |
18 | + * BROWSER POLYFILLS | |
19 | + */ | |
20 | + | |
21 | +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ | |
22 | +// import 'core-js/es6/symbol'; | |
23 | +// import 'core-js/es6/object'; | |
24 | +// import 'core-js/es6/function'; | |
25 | +// import 'core-js/es6/parse-int'; | |
26 | +// import 'core-js/es6/parse-float'; | |
27 | +// import 'core-js/es6/number'; | |
28 | +// import 'core-js/es6/math'; | |
29 | +// import 'core-js/es6/string'; | |
30 | +// import 'core-js/es6/date'; | |
31 | +// import 'core-js/es6/array'; | |
32 | +// import 'core-js/es6/regexp'; | |
33 | +// import 'core-js/es6/map'; | |
34 | +// import 'core-js/es6/weak-map'; | |
35 | +// import 'core-js/es6/set'; | |
36 | + | |
37 | +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ | |
38 | +// import 'classlist.js'; // Run `npm install --save classlist.js`. | |
39 | + | |
40 | +/** Evergreen browsers require these. **/ | |
41 | +import 'core-js/es6/reflect'; | |
42 | +import 'core-js/es7/reflect'; | |
43 | + | |
44 | + | |
45 | +/** | |
46 | + * Required to support Web Animations `@angular/animation`. | |
47 | + * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation | |
48 | + **/ | |
49 | +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. | |
50 | + | |
51 | + | |
52 | + | |
53 | +/*************************************************************************************************** | |
54 | + * Zone JS is required by Angular itself. | |
55 | + */ | |
56 | +import 'zone.js/dist/zone'; // Included with Angular CLI. | |
57 | + | |
58 | + | |
59 | + | |
60 | +/*************************************************************************************************** | |
61 | + * APPLICATION IMPORTS | |
62 | + */ | |
63 | + | |
64 | +/** | |
65 | + * Date, currency, decimal and percent pipes. | |
66 | + * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 | |
67 | + */ | |
68 | +// import 'intl'; // Run `npm install --save intl`. | |
69 | +/** | |
70 | + * Need to import at least one locale-data with intl. | |
71 | + */ | |
72 | +// import 'intl/locale-data/jsonp/en'; | ... | ... |
src/styles.css
0 โ 100644
src/test.ts
0 โ 100644
1 | +++ a/src/test.ts | |
1 | +// This file is required by karma.conf.js and loads recursively all the .spec and framework files | |
2 | + | |
3 | +import 'zone.js/dist/long-stack-trace-zone'; | |
4 | +import 'zone.js/dist/proxy.js'; | |
5 | +import 'zone.js/dist/sync-test'; | |
6 | +import 'zone.js/dist/jasmine-patch'; | |
7 | +import 'zone.js/dist/async-test'; | |
8 | +import 'zone.js/dist/fake-async-test'; | |
9 | +import { getTestBed } from '@angular/core/testing'; | |
10 | +import { | |
11 | + BrowserDynamicTestingModule, | |
12 | + platformBrowserDynamicTesting | |
13 | +} from '@angular/platform-browser-dynamic/testing'; | |
14 | + | |
15 | +// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. | |
16 | +declare const __karma__: any; | |
17 | +declare const require: any; | |
18 | + | |
19 | +// Prevent Karma from running prematurely. | |
20 | +__karma__.loaded = function () {}; | |
21 | + | |
22 | +// First, initialize the Angular testing environment. | |
23 | +getTestBed().initTestEnvironment( | |
24 | + BrowserDynamicTestingModule, | |
25 | + platformBrowserDynamicTesting() | |
26 | +); | |
27 | +// Then we find all the tests. | |
28 | +const context = require.context('./', true, /\.spec\.ts$/); | |
29 | +// And load the modules. | |
30 | +context.keys().map(context); | |
31 | +// Finally, start Karma to run the tests. | |
32 | +__karma__.start(); | ... | ... |
src/tsconfig.app.json
0 โ 100644
src/tsconfig.spec.json
0 โ 100644
1 | +++ a/src/tsconfig.spec.json | |
1 | +{ | |
2 | + "extends": "../tsconfig.json", | |
3 | + "compilerOptions": { | |
4 | + "outDir": "../out-tsc/spec", | |
5 | + "baseUrl": "./", | |
6 | + "module": "commonjs", | |
7 | + "target": "es5", | |
8 | + "types": [ | |
9 | + "jasmine", | |
10 | + "node" | |
11 | + ] | |
12 | + }, | |
13 | + "files": [ | |
14 | + "test.ts" | |
15 | + ], | |
16 | + "include": [ | |
17 | + "**/*.spec.ts", | |
18 | + "**/*.d.ts" | |
19 | + ] | |
20 | +} | ... | ... |
src/typings.d.ts
0 โ 100644
tsconfig.json
0 โ 100644
1 | +++ a/tsconfig.json | |
1 | +{ | |
2 | + "compileOnSave": false, | |
3 | + "compilerOptions": { | |
4 | + "outDir": "./dist/out-tsc", | |
5 | + "sourceMap": true, | |
6 | + "declaration": false, | |
7 | + "moduleResolution": "node", | |
8 | + "emitDecoratorMetadata": true, | |
9 | + "experimentalDecorators": true, | |
10 | + "target": "es5", | |
11 | + "typeRoots": [ | |
12 | + "node_modules/@types" | |
13 | + ], | |
14 | + "lib": [ | |
15 | + "es2017", | |
16 | + "dom" | |
17 | + ] | |
18 | + } | |
19 | +} | ... | ... |
tslint.json
0 โ 100644
1 | +++ a/tslint.json | |
1 | +{ | |
2 | + "rulesDirectory": [ | |
3 | + "node_modules/codelyzer" | |
4 | + ], | |
5 | + "rules": { | |
6 | + "arrow-return-shorthand": true, | |
7 | + "callable-types": true, | |
8 | + "class-name": true, | |
9 | + "comment-format": [ | |
10 | + true, | |
11 | + "check-space" | |
12 | + ], | |
13 | + "curly": true, | |
14 | + "eofline": true, | |
15 | + "forin": true, | |
16 | + "import-blacklist": [ | |
17 | + true, | |
18 | + "rxjs" | |
19 | + ], | |
20 | + "import-spacing": true, | |
21 | + "indent": [ | |
22 | + true, | |
23 | + "spaces" | |
24 | + ], | |
25 | + "interface-over-type-literal": true, | |
26 | + "label-position": true, | |
27 | + "max-line-length": [ | |
28 | + true, | |
29 | + 140 | |
30 | + ], | |
31 | + "member-access": false, | |
32 | + "member-ordering": [ | |
33 | + true, | |
34 | + { | |
35 | + "order": [ | |
36 | + "static-field", | |
37 | + "instance-field", | |
38 | + "static-method", | |
39 | + "instance-method" | |
40 | + ] | |
41 | + } | |
42 | + ], | |
43 | + "no-arg": true, | |
44 | + "no-bitwise": true, | |
45 | + "no-console": [ | |
46 | + true, | |
47 | + "debug", | |
48 | + "info", | |
49 | + "time", | |
50 | + "timeEnd", | |
51 | + "trace" | |
52 | + ], | |
53 | + "no-construct": true, | |
54 | + "no-debugger": true, | |
55 | + "no-duplicate-super": true, | |
56 | + "no-empty": false, | |
57 | + "no-empty-interface": true, | |
58 | + "no-eval": true, | |
59 | + "no-inferrable-types": [ | |
60 | + true, | |
61 | + "ignore-params" | |
62 | + ], | |
63 | + "no-misused-new": true, | |
64 | + "no-non-null-assertion": true, | |
65 | + "no-shadowed-variable": true, | |
66 | + "no-string-literal": false, | |
67 | + "no-string-throw": true, | |
68 | + "no-switch-case-fall-through": true, | |
69 | + "no-trailing-whitespace": true, | |
70 | + "no-unnecessary-initializer": true, | |
71 | + "no-unused-expression": true, | |
72 | + "no-use-before-declare": true, | |
73 | + "no-var-keyword": true, | |
74 | + "object-literal-sort-keys": false, | |
75 | + "one-line": [ | |
76 | + true, | |
77 | + "check-open-brace", | |
78 | + "check-catch", | |
79 | + "check-else", | |
80 | + "check-whitespace" | |
81 | + ], | |
82 | + "prefer-const": true, | |
83 | + "quotemark": [ | |
84 | + true, | |
85 | + "single" | |
86 | + ], | |
87 | + "radix": true, | |
88 | + "semicolon": [ | |
89 | + true, | |
90 | + "always" | |
91 | + ], | |
92 | + "triple-equals": [ | |
93 | + true, | |
94 | + "allow-null-check" | |
95 | + ], | |
96 | + "typedef-whitespace": [ | |
97 | + true, | |
98 | + { | |
99 | + "call-signature": "nospace", | |
100 | + "index-signature": "nospace", | |
101 | + "parameter": "nospace", | |
102 | + "property-declaration": "nospace", | |
103 | + "variable-declaration": "nospace" | |
104 | + } | |
105 | + ], | |
106 | + "typeof-compare": true, | |
107 | + "unified-signatures": true, | |
108 | + "variable-name": false, | |
109 | + "whitespace": [ | |
110 | + true, | |
111 | + "check-branch", | |
112 | + "check-decl", | |
113 | + "check-operator", | |
114 | + "check-separator", | |
115 | + "check-type" | |
116 | + ], | |
117 | + "directive-selector": [ | |
118 | + true, | |
119 | + "attribute", | |
120 | + "app", | |
121 | + "camelCase" | |
122 | + ], | |
123 | + "component-selector": [ | |
124 | + true, | |
125 | + "element", | |
126 | + "app", | |
127 | + "kebab-case" | |
128 | + ], | |
129 | + "use-input-property-decorator": true, | |
130 | + "use-output-property-decorator": true, | |
131 | + "use-host-property-decorator": true, | |
132 | + "no-input-rename": true, | |
133 | + "no-output-rename": true, | |
134 | + "use-life-cycle-interface": true, | |
135 | + "use-pipe-transform-interface": true, | |
136 | + "component-class-suffix": true, | |
137 | + "directive-class-suffix": true, | |
138 | + "no-access-missing-member": true, | |
139 | + "templates-use-public": true, | |
140 | + "invoke-injectable": true | |
141 | + } | |
142 | +} | ... | ... |