diff --git a/templates/module/angular/.eslintrc.json b/templates/module/angular/.eslintrc.json new file mode 100644 index 0000000000..47c17dd9dd --- /dev/null +++ b/templates/module/angular/.eslintrc.json @@ -0,0 +1,50 @@ +{ + "root": true, + "ignorePatterns": [ + "projects/**/*" + ], + "overrides": [ + { + "files": [ + "*.ts" + ], + "parserOptions": { + "project": [ + "tsconfig.json" + ], + "createDefaultProgram": true + }, + "extends": [ + "plugin:@angular-eslint/recommended", + "plugin:@angular-eslint/template/process-inline-templates" + ], + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "app", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "app", + "style": "kebab-case" + } + ] + } + }, + { + "files": [ + "*.html" + ], + "extends": [ + "plugin:@angular-eslint/template/recommended" + ], + "rules": {} + } + ] +} diff --git a/templates/module/angular/.gitignore b/templates/module/angular/.gitignore index 6b1b9c15e7..de51f68a2c 100644 --- a/templates/module/angular/.gitignore +++ b/templates/module/angular/.gitignore @@ -12,7 +12,6 @@ # profiling files chrome-profiler-events*.json -speed-measure-plugin*.json # IDEs and editors /.idea @@ -43,4 +42,4 @@ testem.log # System Files .DS_Store -Thumbs.db \ No newline at end of file +Thumbs.db diff --git a/templates/module/angular/angular.json b/templates/module/angular/angular.json index f7c5426772..bc791b4563 100644 --- a/templates/module/angular/angular.json +++ b/templates/module/angular/angular.json @@ -1,5 +1,8 @@ { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "cli": { + "analytics": false + }, "version": 1, "newProjectRoot": "projects", "projects": { @@ -12,14 +15,17 @@ "build": { "builder": "@angular-devkit/build-angular:ng-packagr", "options": { - "tsConfig": "projects/my-project-name/tsconfig.lib.json", "project": "projects/my-project-name/ng-package.json" }, "configurations": { "production": { "tsConfig": "projects/my-project-name/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "projects/my-project-name/tsconfig.lib.json" } - } + }, + "defaultConfiguration": "production" }, "test": { "builder": "@angular-devkit/build-angular:karma", @@ -30,13 +36,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "projects/my-project-name/tsconfig.lib.json", - "projects/my-project-name/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "projects/my-project-name/**/*.ts", + "projects/my-project-name/**/*.html" + ] } } } @@ -60,7 +65,7 @@ "main": "projects/dev-app/src/main.ts", "polyfills": "projects/dev-app/src/polyfills.ts", "tsConfig": "projects/dev-app/tsconfig.app.json", - "aot": true, + "inlineStyleLanguage": "scss", "allowedCommonJsDependencies": ["chart.js", "js-sha256"], "assets": ["projects/dev-app/src/favicon.ico", "projects/dev-app/src/assets"], "styles": [ @@ -105,20 +110,6 @@ }, "configurations": { "production": { - "tsConfig": "projects/dev-app/tsconfig.prod.json", - "fileReplacements": [ - { - "replace": "projects/dev-app/src/environments/environment.ts", - "with": "projects/dev-app/src/environments/environment.prod.ts" - } - ], - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "namedChunks": false, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, "budgets": [ { "type": "initial", @@ -130,20 +121,37 @@ "maximumWarning": "6kb", "maximumError": "10kb" } - ] + ], + "fileReplacements": [ + { + "replace": "projects/dev-app/src/environments/environment.ts", + "with": "projects/dev-app/src/environments/environment.prod.ts" + } + ], + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true } - } + }, + "defaultConfiguration": "production" }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", - "options": { - "browserTarget": "dev-app:build" - }, "configurations": { "production": { "browserTarget": "dev-app:build:production" + }, + "development": { + "browserTarget": "dev-app:build:development" } - } + }, + "defaultConfiguration": "development" }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", @@ -158,6 +166,7 @@ "polyfills": "projects/dev-app/src/polyfills.ts", "tsConfig": "projects/dev-app/tsconfig.spec.json", "karmaConfig": "projects/dev-app/karma.conf.js", + "inlineStyleLanguage": "scss", "assets": ["projects/dev-app/src/favicon.ico", "projects/dev-app/src/assets"], "styles": [ "node_modules/bootstrap/dist/css/bootstrap.min.css", @@ -172,33 +181,13 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": [ - "projects/dev-app/tsconfig.app.json", - "projects/dev-app/tsconfig.spec.json", - "projects/dev-app/e2e/tsconfig.json" - ], - "exclude": ["**/node_modules/**"] - } - }, - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", + "builder": "@angular-eslint/builder:lint", "options": { - "protractorConfig": "projects/dev-app/e2e/protractor.conf.js", - "devServerTarget": "dev-app:serve" - }, - "configurations": { - "production": { - "devServerTarget": "dev-app:serve:production" - } + "lintFilePatterns": ["projects/dev-app/**/*.ts", "projects/dev-app/**/*.html"] } } } } }, - "cli": { - "analytics": false - }, "defaultProject": "dev-app" } diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 4bb6ce8012..b5e6468ef6 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -1,5 +1,5 @@ { - "name": "my-project-name", + "name": "MyProjectName", "version": "0.0.0", "scripts": { "ng": "ng", @@ -23,40 +23,41 @@ "@abp/ng.tenant-management": "~4.3.2", "@abp/ng.theme.basic": "~4.3.2", "@abp/ng.theme.shared": "~4.3.2", - "@angular/animations": "~11.1.0", - "@angular/common": "~11.1.0", - "@angular/compiler": "~11.1.0", - "@angular/core": "~11.1.0", - "@angular/forms": "~11.1.0", - "@angular/platform-browser": "~11.1.0", - "@angular/platform-browser-dynamic": "~11.1.0", - "@angular/router": "~11.1.0", + "@angular/animations": "~12.0.0", + "@angular/common": "~12.0.0", + "@angular/compiler": "~12.0.0", + "@angular/core": "~12.0.0", + "@angular/forms": "~12.0.0", + "@angular/platform-browser": "~12.0.0", + "@angular/platform-browser-dynamic": "~12.0.0", + "@angular/router": "~12.0.0", "rxjs": "~6.6.0", - "tslib": "^2.0.0", - "zone.js": "~0.10.2" + "tslib": "^2.1.0", + "zone.js": "~0.11.4" }, "devDependencies": { "@abp/ng.schematics": "~4.3.2", - "@angular-devkit/build-angular": "~0.1101.1", - "@angular/cli": "~11.1.1", - "@angular/compiler-cli": "~11.1.0", - "@angular/language-service": "~11.1.0", - "@types/jasmine": "~3.5.0", - "@types/jasminewd2": "~2.0.3", + "symlink-manager": "^1.5.0", + "@angular-devkit/build-angular": "~12.0.4", + "@angular-eslint/builder": "12.1.0", + "@angular-eslint/eslint-plugin": "12.1.0", + "@angular-eslint/eslint-plugin-template": "12.1.0", + "@angular-eslint/schematics": "12.1.0", + "@angular-eslint/template-parser": "12.1.0", + "@angular/cli": "~12.0.0", + "@angular/compiler-cli": "~12.0.0", + "@types/jasmine": "~3.6.0", "@types/node": "^12.11.1", - "codelyzer": "^6.0.1", - "jasmine-core": "~3.6.0", - "jasmine-spec-reporter": "~5.0.0", - "karma": "~5.2.3", + "@typescript-eslint/eslint-plugin": "4.23.0", + "@typescript-eslint/parser": "4.23.0", + "eslint": "^7.26.0", + "jasmine-core": "~3.7.0", + "karma": "~6.3.0", "karma-chrome-launcher": "~3.1.0", - "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-coverage": "~2.0.3", "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "^1.5.0", - "ng-packagr": "^11.0.1", - "protractor": "~7.0.0", - "symlink-manager": "^1.5.0", - "ts-node": "~8.3.0", - "tslint": "~6.1.0", - "typescript": "~4.1.3" + "ng-packagr": "^12.0.0", + "typescript": "~4.2.3" } } diff --git a/templates/module/angular/projects/dev-app/.browserslistrc b/templates/module/angular/projects/dev-app/.browserslistrc index 80848532e4..427441dc93 100644 --- a/templates/module/angular/projects/dev-app/.browserslistrc +++ b/templates/module/angular/projects/dev-app/.browserslistrc @@ -2,11 +2,16 @@ # For additional information regarding the format and rule options, please see: # https://github.com/browserslist/browserslist#queries +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + # You can see what browsers were selected by your queries by running: # npx browserslist -> 0.5% -last 2 versions +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions Firefox ESR -not dead -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file +not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. diff --git a/templates/module/angular/projects/dev-app/.eslintrc.json b/templates/module/angular/projects/dev-app/.eslintrc.json new file mode 100644 index 0000000000..37c0209380 --- /dev/null +++ b/templates/module/angular/projects/dev-app/.eslintrc.json @@ -0,0 +1,44 @@ +{ + "extends": "../../.eslintrc.json", + "ignorePatterns": [ + "!**/*" + ], + "overrides": [ + { + "files": [ + "*.ts" + ], + "parserOptions": { + "project": [ + "projects/dev-app/tsconfig.app.json", + "projects/dev-app/tsconfig.spec.json" + ], + "createDefaultProgram": true + }, + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "app", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "app", + "style": "kebab-case" + } + ] + } + }, + { + "files": [ + "*.html" + ], + "rules": {} + } + ] +} diff --git a/templates/module/angular/projects/dev-app/e2e/protractor.conf.js b/templates/module/angular/projects/dev-app/e2e/protractor.conf.js deleted file mode 100644 index 7c798cfff0..0000000000 --- a/templates/module/angular/projects/dev-app/e2e/protractor.conf.js +++ /dev/null @@ -1,32 +0,0 @@ -// @ts-check -// Protractor configuration file, see link for more information -// https://github.com/angular/protractor/blob/master/lib/config.ts - -const { SpecReporter } = require('jasmine-spec-reporter'); - -/** - * @type { import("protractor").Config } - */ -exports.config = { - allScriptsTimeout: 11000, - specs: [ - './src/**/*.e2e-spec.ts' - ], - capabilities: { - browserName: 'chrome' - }, - directConnect: true, - baseUrl: 'http://localhost:4200/', - framework: 'jasmine', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 30000, - print: function() {} - }, - onPrepare() { - require('ts-node').register({ - project: require('path').join(__dirname, './tsconfig.json') - }); - jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); - } -}; \ No newline at end of file diff --git a/templates/module/angular/projects/dev-app/e2e/src/app.e2e-spec.ts b/templates/module/angular/projects/dev-app/e2e/src/app.e2e-spec.ts deleted file mode 100644 index e8eda49d2a..0000000000 --- a/templates/module/angular/projects/dev-app/e2e/src/app.e2e-spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { AppPage } from './app.po'; -import { browser, logging } from 'protractor'; - -describe('workspace-project App', () => { - let page: AppPage; - - beforeEach(() => { - page = new AppPage(); - }); - - it('should display welcome message', () => { - page.navigateTo(); - expect(page.getTitleText()).toEqual('dev-app app is running!'); - }); - - afterEach(async () => { - // Assert that there are no errors emitted from the browser - const logs = await browser.manage().logs().get(logging.Type.BROWSER); - expect(logs).not.toContain(jasmine.objectContaining({ - level: logging.Level.SEVERE, - } as logging.Entry)); - }); -}); diff --git a/templates/module/angular/projects/dev-app/e2e/src/app.po.ts b/templates/module/angular/projects/dev-app/e2e/src/app.po.ts deleted file mode 100644 index b68475e0fc..0000000000 --- a/templates/module/angular/projects/dev-app/e2e/src/app.po.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { browser, by, element } from 'protractor'; - -export class AppPage { - navigateTo(): Promise { - return browser.get(browser.baseUrl) as Promise; - } - - getTitleText(): Promise { - return element(by.css('app-root .content span')).getText() as Promise; - } -} diff --git a/templates/module/angular/projects/dev-app/e2e/tsconfig.json b/templates/module/angular/projects/dev-app/e2e/tsconfig.json deleted file mode 100644 index 3d809e80f6..0000000000 --- a/templates/module/angular/projects/dev-app/e2e/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../../tsconfig.json", - "compilerOptions": { - "outDir": "../../../out-tsc/e2e", - "module": "commonjs", - "target": "es2018", - "types": [ - "jasmine", - "jasminewd2", - "node" - ] - } -} diff --git a/templates/module/angular/projects/dev-app/karma.conf.js b/templates/module/angular/projects/dev-app/karma.conf.js index 6059f553f2..d693269c53 100644 --- a/templates/module/angular/projects/dev-app/karma.conf.js +++ b/templates/module/angular/projects/dev-app/karma.conf.js @@ -9,16 +9,28 @@ module.exports = function (config) { require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), - require('karma-coverage-istanbul-reporter'), + require('karma-coverage'), require('@angular-devkit/build-angular/plugins/karma') ], client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, clearContext: false // leave Jasmine Spec Runner output visible in browser }, - coverageIstanbulReporter: { + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { dir: require('path').join(__dirname, '../../coverage/dev-app'), - reports: ['html', 'lcovonly', 'text-summary'], - fixWebpackSourcePaths: true + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] }, reporters: ['progress', 'kjhtml'], port: 9876, diff --git a/templates/module/angular/projects/dev-app/favicon.ico b/templates/module/angular/projects/dev-app/src/favicon.ico similarity index 100% rename from templates/module/angular/projects/dev-app/favicon.ico rename to templates/module/angular/projects/dev-app/src/favicon.ico diff --git a/templates/module/angular/projects/dev-app/src/polyfills.ts b/templates/module/angular/projects/dev-app/src/polyfills.ts index 6e00c561ed..373f538a71 100644 --- a/templates/module/angular/projects/dev-app/src/polyfills.ts +++ b/templates/module/angular/projects/dev-app/src/polyfills.ts @@ -1,7 +1,3 @@ -/*************************************************************************************************** - * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates. - */ -import '@angular/localize/init'; /** * This file includes polyfills needed by Angular and is loaded before the app. * You can add your own extra polyfills to this file. @@ -22,7 +18,9 @@ import '@angular/localize/init'; * BROWSER POLYFILLS */ -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +/** + * IE11 requires the following for NgClass support on SVG elements + */ // import 'classlist.js'; // Run `npm install --save classlist.js`. /** @@ -59,7 +57,8 @@ import '@angular/localize/init'; /*************************************************************************************************** * Zone JS is required by default for Angular itself. */ -import 'zone.js/dist/zone'; // Included with Angular CLI. +import 'zone.js'; // Included with Angular CLI. + /*************************************************************************************************** * APPLICATION IMPORTS diff --git a/templates/module/angular/projects/dev-app/src/test.ts b/templates/module/angular/projects/dev-app/src/test.ts index 50193eb0f2..2042356408 100644 --- a/templates/module/angular/projects/dev-app/src/test.ts +++ b/templates/module/angular/projects/dev-app/src/test.ts @@ -1,6 +1,6 @@ // This file is required by karma.conf.js and loads recursively all the .spec and framework files -import 'zone.js/dist/zone-testing'; +import 'zone.js/testing'; import { getTestBed } from '@angular/core/testing'; import { BrowserDynamicTestingModule, diff --git a/templates/module/angular/projects/dev-app/tslint.json b/templates/module/angular/projects/dev-app/tslint.json deleted file mode 100644 index 19e8161a0b..0000000000 --- a/templates/module/angular/projects/dev-app/tslint.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [ - true, - "attribute", - "app", - "camelCase" - ], - "component-selector": [ - true, - "element", - "app", - "kebab-case" - ] - } -} diff --git a/templates/module/angular/projects/my-project-name/.eslintrc.json b/templates/module/angular/projects/my-project-name/.eslintrc.json new file mode 100644 index 0000000000..02085206b7 --- /dev/null +++ b/templates/module/angular/projects/my-project-name/.eslintrc.json @@ -0,0 +1,44 @@ +{ + "extends": "../../.eslintrc.json", + "ignorePatterns": [ + "!**/*" + ], + "overrides": [ + { + "files": [ + "*.ts" + ], + "parserOptions": { + "project": [ + "projects/my-project-name/tsconfig.lib.json", + "projects/my-project-name/tsconfig.spec.json" + ], + "createDefaultProgram": true + }, + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "lib", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "lib", + "style": "kebab-case" + } + ] + } + }, + { + "files": [ + "*.html" + ], + "rules": {} + } + ] +} diff --git a/templates/module/angular/projects/my-project-name/README.md b/templates/module/angular/projects/my-project-name/README.md index 5181227a50..d2c8810fbc 100644 --- a/templates/module/angular/projects/my-project-name/README.md +++ b/templates/module/angular/projects/my-project-name/README.md @@ -1,6 +1,6 @@ # MyProjectName -This is a startup project based on the ABP framework. For more information, visit abp.io=9", + "@angular/core": ">=9", "@abp/ng.core": ">=4.3.2", "@abp/ng.theme.shared": ">=4.3.2" }, "dependencies": { - "tslib": "^2.0.0" -} + "tslib": "^2.1.0" + } } diff --git a/templates/module/angular/projects/my-project-name/src/test.ts b/templates/module/angular/projects/my-project-name/src/test.ts index 303b32a220..52e55168eb 100644 --- a/templates/module/angular/projects/my-project-name/src/test.ts +++ b/templates/module/angular/projects/my-project-name/src/test.ts @@ -1,7 +1,7 @@ // This file is required by karma.conf.js and loads recursively all the .spec and framework files -import 'zone.js/dist/zone'; -import 'zone.js/dist/zone-testing'; +import 'zone.js'; +import 'zone.js/testing'; import { getTestBed } from '@angular/core/testing'; import { BrowserDynamicTestingModule, diff --git a/templates/module/angular/projects/my-project-name/tsconfig.lib.json b/templates/module/angular/projects/my-project-name/tsconfig.lib.json index 36d66a0283..8da4414fb7 100644 --- a/templates/module/angular/projects/my-project-name/tsconfig.lib.json +++ b/templates/module/angular/projects/my-project-name/tsconfig.lib.json @@ -1,18 +1,20 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ { "extends": "../../tsconfig.prod.json", "compilerOptions": { "outDir": "../../out-tsc/lib", - "declarationMap": true, "target": "es2015", "declaration": true, + "declarationMap": true, "inlineSources": true, "types": [], - "lib": ["dom", "es2018"] - }, - "angularCompilerOptions": { - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "enableResourceInlining": true + "lib": [ + "dom", + "es2018" + ] }, - "exclude": ["src/test.ts", "**/*.spec.ts"] + "exclude": [ + "src/test.ts", + "**/*.spec.ts" + ] } diff --git a/templates/module/angular/projects/my-project-name/tsconfig.lib.prod.json b/templates/module/angular/projects/my-project-name/tsconfig.lib.prod.json index 04c0e66277..331d0ecb05 100644 --- a/templates/module/angular/projects/my-project-name/tsconfig.lib.prod.json +++ b/templates/module/angular/projects/my-project-name/tsconfig.lib.prod.json @@ -1,9 +1,11 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ { "extends": "./tsconfig.lib.json", "compilerOptions": { "declarationMap": false }, "angularCompilerOptions": { + "compilationMode": "partial", "enableIvy": false } } diff --git a/templates/module/angular/projects/my-project-name/tsconfig.spec.json b/templates/module/angular/projects/my-project-name/tsconfig.spec.json index 16da33db07..715dd0a5d2 100644 --- a/templates/module/angular/projects/my-project-name/tsconfig.spec.json +++ b/templates/module/angular/projects/my-project-name/tsconfig.spec.json @@ -1,10 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ { "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "../../out-tsc/spec", "types": [ - "jasmine", - "node" + "jasmine" ] }, "files": [ diff --git a/templates/module/angular/projects/my-project-name/tslint.json b/templates/module/angular/projects/my-project-name/tslint.json deleted file mode 100644 index 124133f849..0000000000 --- a/templates/module/angular/projects/my-project-name/tslint.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [ - true, - "attribute", - "lib", - "camelCase" - ], - "component-selector": [ - true, - "element", - "lib", - "kebab-case" - ] - } -} diff --git a/templates/module/angular/tsconfig.prod.json b/templates/module/angular/tsconfig.prod.json index 8cbc5cd8a7..bd2235775b 100644 --- a/templates/module/angular/tsconfig.prod.json +++ b/templates/module/angular/tsconfig.prod.json @@ -7,14 +7,16 @@ "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, - "module": "esnext", "moduleResolution": "node", "importHelpers": true, - "target": "es2015", - "lib": ["es2018", "dom"] + "target": "es2017", + "module": "es2020", + "lib": [ + "es2018", + "dom" + ], }, "angularCompilerOptions": { - "fullTemplateTypeCheck": true, - "strictInjectionParameters": true + "enableI18nLegacyMessageIdFormat": false } } diff --git a/templates/module/angular/tslint.json b/templates/module/angular/tslint.json deleted file mode 100644 index 2b01f826bc..0000000000 --- a/templates/module/angular/tslint.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "extends": "tslint:recommended", - "rulesDirectory": [ - "codelyzer" - ], - "rules": { - "align": { - "options": [ - "parameters", - "statements" - ] - }, - "array-type": false, - "arrow-return-shorthand": true, - "curly": true, - "deprecation": { - "severity": "warning" - }, - "eofline": true, - "import-blacklist": [ - true, - "rxjs/Rx" - ], - "import-spacing": true, - "indent": { - "options": [ - "spaces" - ] - }, - "max-classes-per-file": false, - "max-line-length": [ - true, - 140 - ], - "member-ordering": [ - true, - { - "order": [ - "static-field", - "instance-field", - "static-method", - "instance-method" - ] - } - ], - "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-var-requires": false, - "object-literal-key-quotes": [ - true, - "as-needed" - ], - "quotemark": [ - true, - "single" - ], - "semicolon": { - "options": [ - "always", - "ignore-bound-class-methods" - ] - }, - "space-before-function-paren": { - "options": { - "anonymous": "never", - "asyncArrow": "always", - "constructor": "never", - "method": "never", - "named": "never" - } - }, - "typedef-whitespace": { - "options": [ - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - }, - { - "call-signature": "onespace", - "index-signature": "onespace", - "parameter": "onespace", - "property-declaration": "onespace", - "variable-declaration": "onespace" - } - ] - }, - "variable-name": { - "options": [ - "ban-keywords", - "check-format", - "allow-pascal-case" - ] - }, - "whitespace": { - "options": [ - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type", - "check-typecast" - ] - }, - "component-class-suffix": true, - "contextual-lifecycle": true, - "directive-class-suffix": true, - "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, - "object-literal-shorthand": false - } -}