Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.ts]
end_of_line = lf
quote_type = double
max_line_length=120
Comment on lines 11 to +12
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The [*.ts] section was removed, so quote_type / max_line_length now apply to all files under [*]. If the intent was to scope these settings to TypeScript only, reintroduce the [*.ts] header (or split settings per file type) to avoid unintended editor behavior.

Suggested change
quote_type = double
max_line_length=120
[*.ts]
quote_type = double
max_line_length = 120

Copilot uses AI. Check for mistakes.

[*.md]
max_line_length = off
Expand Down
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
src/app/utils/deepEqual.ts
src/index.html
66 changes: 58 additions & 8 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,35 +1,85 @@
{
"root": true,
"ignorePatterns": [
"src/utils"
],
"overrides": [
{
"files": [
"*.ts"
],
"parserOptions": {
"project": ["./tsconfig.json", "./tsconfig.app.json"]
},
"plugins": [
"import"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@angular-eslint/recommended",
"plugin:@angular-eslint/template/process-inline-templates"
"plugin:@angular-eslint/template/process-inline-templates",
"plugin:prettier/recommended"
],
"rules": {
"@angular-eslint/directive-selector": [
"error",
{
"type": "attribute",
"prefix": "norcus",
"prefix": "app",
"style": "camelCase"
}
],
"@angular-eslint/component-selector": [
"error",
{
"type": "element",
"prefix": "norcus",
"prefix": "app",
"style": "kebab-case"
}
],
"@typescript-eslint/explicit-function-return-type": "error",

"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 1 }],
"comma-spacing": ["error", { "before": false, "after": true }],
"eqeqeq": ["error", "always"],
Comment on lines +40 to +44
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@typescript-eslint/explicit-function-return-type is enabled as error, but multiple updated TS files still have methods/getters without explicit return types; this will make ng lint fail in CI. Either relax/replace this rule (e.g. prefer explicit-module-boundary-types) or update the codebase to add explicit return types everywhere.

Copilot uses AI. Check for mistakes.
"curly": ["error", "all"],
"no-fallthrough": "error",
"no-implicit-coercion": "error",
"no-return-await": "error",
"@typescript-eslint/consistent-type-imports": "error",
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
"@typescript-eslint/array-type": "error",
"@typescript-eslint/no-unnecessary-condition": "error",
"@typescript-eslint/no-unnecessary-type-assertion": "error",
"sort-imports": [
"error",
{
"ignoreCase": true,
"ignoreDeclarationSort": true,
"ignoreMemberSort": false,
"memberSyntaxSortOrder": ["none", "all", "multiple", "single"]
}
],
"import/order": [
"error",
{
"alphabetize": { "order": "asc", "caseInsensitive": true },
"newlines-between": "always",
"groups": [
"builtin",
"external",
"internal",
["parent", "sibling", "index"]
],
"pathGroups": [
{
"pattern": "@angular/**",
"group": "external",
"position": "before"
}
],
"pathGroupsExcludedImportTypes": ["builtin"]
}
]
}
},
Expand All @@ -38,9 +88,9 @@
"*.html"
],
"extends": [
"plugin:@angular-eslint/template/recommended"
],
"rules": {}
"plugin:@angular-eslint/template/recommended",
"plugin:@angular-eslint/template/accessibility"
]
}
]
}
}
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: CI

on:
push:
branches: ['**']
pull_request:

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 24
cache: npm

- name: Install packages
run: npm ci

- name: Check linting rules
run: npm run lint

publish-docker:
name: Publish Docker
runs-on: ubuntu-latest
needs: lint
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4

- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: ${{ github.repository }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
15 changes: 0 additions & 15 deletions .github/workflows/publish-docker.yml

This file was deleted.

19 changes: 19 additions & 0 deletions .prettierrc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import type { Config } from "prettier";

const config: Config = {
arrowParens: "avoid",
bracketSpacing: true,
bracketSameLine: false,
endOfLine: "lf",
htmlWhitespaceSensitivity: "css",
objectWrap: "preserve",
quoteProps: "consistent",
semi: true,
singleAttributePerLine: true,
singleQuote: false,
tabWidth: 2,
trailingComma: "es5",
useTabs: false,
};

export default config;
Empty file added .stylelintrc
Empty file.
14 changes: 13 additions & 1 deletion angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -107,12 +107,24 @@
],
"scripts": []
}
},
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"src/**/*.ts",
"src/**/*.html"
]
}
}
}
}
},
"cli": {
"analytics": false
"analytics": false,
"schematicCollections": [
"@angular-eslint/schematics"
]
},
"schematics": {
"@schematics/angular:component": {
Expand Down
Loading
Loading