Skip to content

Commit d8fc9f8

Browse files
authored
Merge pull request #1 from ProAngular/ct/project-init
Ct/project init
2 parents 880a326 + eb2d826 commit d8fc9f8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+28004
-0
lines changed

.browserslistrc

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
2+
# For additional information regarding the format and rule options, please see:
3+
# https://github.com/browserslist/browserslist#queries
4+
5+
# For the full list of supported browsers by the Angular framework, please see:
6+
# https://angular.io/guide/browser-support
7+
8+
# You can see what browsers were selected by your queries by running:
9+
# npx browserslist
10+
11+
last 1 Chrome version
12+
last 1 Firefox version
13+
last 2 Edge major versions
14+
last 2 Safari major versions
15+
last 2 iOS major versions
16+
Firefox ESR

.editorconfig

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Editor configuration, see https://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+
[*.ts]
12+
quote_type = single
13+
14+
[*.md]
15+
max_line_length = off
16+
trim_trailing_whitespace = false

.eslintignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
src/polyfills.ts

.eslintrc.json

+194
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
{
2+
"root": true,
3+
"ignorePatterns": [
4+
"projects/**/*"
5+
],
6+
"overrides": [
7+
{
8+
"files": [
9+
"src/**/*.ts"
10+
],
11+
"parserOptions": {
12+
"project": [
13+
"tsconfig.json",
14+
"e2e/tsconfig.json"
15+
],
16+
"createDefaultProgram": true
17+
},
18+
"extends": [
19+
"eslint:recommended",
20+
"plugin:import/recommended",
21+
"plugin:import/typescript",
22+
"plugin:rxjs/recommended",
23+
"plugin:@typescript-eslint/recommended",
24+
"plugin:@angular-eslint/recommended",
25+
"plugin:@angular-eslint/recommended--extra",
26+
"plugin:@angular-eslint/ng-cli-compat",
27+
"plugin:@angular-eslint/ng-cli-compat--formatting-add-on",
28+
"plugin:@angular-eslint/template/process-inline-templates",
29+
"prettier"
30+
],
31+
"plugins": [ "jsdoc", "rxjs-angular", "unicorn" ],
32+
"rules": {
33+
// Excluded rules
34+
"@typescript-eslint/no-empty-interface": "off",
35+
"import/no-deprecated": "off",
36+
"import/no-unresolved": "off",
37+
"rxjs/no-async-subscribe": "off",
38+
"rxjs/no-sharereplay": "off",
39+
// Included rules
40+
"@angular-eslint/component-selector": [
41+
"error",
42+
{
43+
"type": "element",
44+
"prefix": "ngx",
45+
"style": "kebab-case"
46+
}
47+
],
48+
"@angular-eslint/directive-selector": [
49+
"error",
50+
{
51+
"type": "attribute",
52+
"prefix": "ngx",
53+
"style": "camelCase"
54+
}
55+
],
56+
"@angular-eslint/no-host-metadata-property": [
57+
"error",
58+
{ "allowStatic": true }
59+
],
60+
"@angular-eslint/prefer-output-readonly": [ "error" ],
61+
"@angular-eslint/use-component-selector": [ "error" ],
62+
"@angular-eslint/use-component-view-encapsulation": [ "error" ],
63+
"@angular-eslint/use-lifecycle-interface": [ "error" ],
64+
"@typescript-eslint/array-type": [
65+
"error",
66+
{
67+
"default": "array-simple"
68+
}
69+
],
70+
"@typescript-eslint/consistent-type-assertions": [
71+
"error",
72+
{
73+
"assertionStyle": "as",
74+
"objectLiteralTypeAssertions": "never"
75+
}
76+
],
77+
"@typescript-eslint/consistent-type-definitions": [ "error" ],
78+
"@typescript-eslint/explicit-function-return-type": [
79+
"error",
80+
{
81+
// Only functions which are part of a declaration will be checked.
82+
"allowExpressions": true
83+
}
84+
],
85+
"@typescript-eslint/explicit-member-accessibility": [
86+
"error",
87+
{ "accessibility": "explicit" }
88+
],
89+
"@typescript-eslint/explicit-module-boundary-types": [ "error" ],
90+
"@typescript-eslint/member-ordering": [
91+
"error",
92+
{
93+
"default": [
94+
"constructor",
95+
"static-field",
96+
"instance-field",
97+
"static-method",
98+
"instance-method"
99+
]
100+
}
101+
],
102+
"@typescript-eslint/naming-convention": [
103+
"error",
104+
{
105+
"selector": "classProperty",
106+
"format": [ "PascalCase", "camelCase" ],
107+
"modifiers": [ "public" ]
108+
},
109+
{
110+
"selector": "function",
111+
"format": [ "camelCase" ]
112+
},
113+
{
114+
"selector": "interface",
115+
"format": [ "PascalCase" ],
116+
"custom": {
117+
"regex": "^I[A-Z]",
118+
"match": false
119+
}
120+
}
121+
],
122+
"@typescript-eslint/no-empty-function": "error",
123+
"@typescript-eslint/no-explicit-any": "error",
124+
"@typescript-eslint/no-namespace": [
125+
"error",
126+
{ "allowDeclarations": true }
127+
],
128+
"@typescript-eslint/no-unused-expressions": [ "error" ],
129+
"@typescript-eslint/no-unused-vars": [
130+
"error",
131+
{
132+
"argsIgnorePattern": "^_",
133+
"ignoreRestSiblings": true,
134+
"varsIgnorePattern": "^_"
135+
}
136+
],
137+
"@typescript-eslint/prefer-for-of": [ "warn" ],
138+
"@typescript-eslint/prefer-function-type": [ "warn" ],
139+
"@typescript-eslint/prefer-readonly": "error",
140+
"@typescript-eslint/unified-signatures": [ "warn" ],
141+
"eqeqeq": [ "error" ],
142+
"guard-for-in": [ "error" ],
143+
"import/no-default-export": [ "error" ],
144+
"jsdoc/check-alignment": [ "error" ],
145+
"jsdoc/check-indentation": [ "error" ],
146+
"no-bitwise": [ "error" ],
147+
"no-caller": [ "error" ],
148+
"no-console": [ "error" ],
149+
"no-duplicate-imports": [ "error" ],
150+
"no-empty": "error",
151+
"no-eval": [ "error" ],
152+
"no-new-wrappers": [ "error" ],
153+
"no-throw-literal": [ "error" ],
154+
"no-var": [ "error" ],
155+
"object-shorthand": [ "error" ],
156+
"one-var": [ "error", "never" ],
157+
"prefer-arrow/prefer-arrow-functions": "off",
158+
"prefer-const": [ "error" ],
159+
"radix": [ "error" ],
160+
"rxjs-angular/prefer-takeuntil": [
161+
"error",
162+
{ "alias": [ "untilDestroyed" ] }
163+
],
164+
"rxjs/no-exposed-subjects": [ "error" ],
165+
"rxjs/no-finnish": [ "error" ],
166+
"rxjs/no-ignored-replay-buffer": [ "error" ],
167+
"rxjs/no-tap": [ "error" ],
168+
"rxjs/no-unsafe-takeuntil": [
169+
"error",
170+
{ "alias": [ "untilDestroyed" ] }
171+
],
172+
"spaced-comment": [
173+
"error",
174+
"always",
175+
{ "block": { "balanced": true } }
176+
],
177+
"unicorn/filename-case": [
178+
"error",
179+
{ "case": "kebabCase" }
180+
]
181+
}
182+
},
183+
{
184+
"files": [
185+
"src/**/*.html"
186+
],
187+
"parser": "@angular-eslint/template-parser",
188+
"extends": [
189+
"plugin:@angular-eslint/template/recommended"
190+
],
191+
"rules": {}
192+
}
193+
]
194+
}

.github/FUNDING.yml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Displaying a sponsor button in your repository
2+
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
3+
4+
# LFX Mentorship (formerly CommunityBridge)
5+
# https://lfx.linuxfoundation.org/tools/mentorship
6+
community_bridge:
7+
# GitHub Sponsors
8+
# https://github.com/sponsors
9+
github: [ProAngular, CodyTolene]
10+
# IssueHunt
11+
# https://issuehunt.io/
12+
issuehunt:
13+
# Ko-fi
14+
# https://ko-fi.com/
15+
ko_fi:
16+
# Liberapay
17+
# https://en.liberapay.com/
18+
liberapay:
19+
# Open Collective
20+
# https://opencollective.com/
21+
open_collective:
22+
# Otechie
23+
# https://otechie.com/
24+
otechie:
25+
# Patreon
26+
# https://www.patreon.com/
27+
patreon:
28+
# Tidelift
29+
# https://tidelift.com/
30+
tidelift:
31+
# Custom URL
32+
custom: ["https://www.paypal.me/CodyTolene"]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Github Package Deployment
2+
# https://docs.github.com/en/packages
3+
# https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
4+
5+
name: Verify and Deploy to GitHub Packages
6+
on:
7+
push:
8+
branches:
9+
- main
10+
jobs:
11+
deploy_gpr_package:
12+
runs-on: ubuntu-latest
13+
permissions:
14+
contents: read
15+
packages: write
16+
steps:
17+
- uses: actions/checkout@v3
18+
- uses: actions/setup-node@v3
19+
with:
20+
node-version: "16.x"
21+
registry-url: "https://npm.pkg.github.com"
22+
- run: npm ci
23+
- run: npm run npm-build-package
24+
- run: cd dist/npm && npm publish
25+
env:
26+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# npmjs Package Deployment
2+
# https://docs.npmjs.com/about-packages-and-modules
3+
4+
name: Verify and Deploy to npmjs
5+
on:
6+
push:
7+
branches:
8+
- main
9+
jobs:
10+
deploy_npmjs_package:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v3
14+
- uses: actions/setup-node@v3
15+
with:
16+
node-version: "16.x"
17+
registry-url: "https://registry.npmjs.org"
18+
- run: npm ci
19+
- run: npm run npm-build-package
20+
- run: cd dist/npm && npm publish
21+
env:
22+
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: "Verify Pull Request"
2+
on: pull_request
3+
jobs:
4+
verify_pull_request:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- uses: actions/checkout@v3
8+
- name: Checkout 🛎️
9+
run: npm ci
10+
11+
- name: Verify Code 👌
12+
run: |
13+
npm run lint
14+
npm run prettier:check
15+
16+
- name: Build 🔧
17+
run: |
18+
npm run build:prod
19+
npm run npm-build-package

0 commit comments

Comments
 (0)