- Follows SOLID / OOP
- Follows Files and Folder Structure
- Use Servicies rather than base Classes (But Both are mendatory)
- Components Constructor Only Use for Service Injection
- Dont Write Huge Lines of Code in OnInit
- Use Rapper Component for External Libraries
- Constructor & OnInit will availaible at top of every Component
- Avoid Servicies Depends on Other Servicies
- If Components Exceed 200 To 300 Lines of Code Split it into Multiple Files
- Make Component for all Controls (Text, Dropdown, Auto Complete, Radio, Checkbox, Button etc...)
- Group Several Related Properties into Object
- Instead of Using Several Arguments pass Object
- Use Default Properties Where possible
- Only Global Loader Use to Display Request in Progress
- Mostly Used Angular Services will be the Part of AngularServiceAbstractClass
- Mostly Used Helper Services will be the Part of HelperServiceAbstractClass
- Avoid using Third Party Libraries that Cause Update Problem
-
- Most Common Files as per Folder those Required at Application Level
- Class Builders
- Abstract Classes
- Angular Service Injector
- Local Service Injector
- Form Base Class
- List Base Class
- Methods Base Class
- Reusable Forms & Interface Side by Side
- Form Helper Service
- Base Service
- Helper Service
- Form Service
- Validator Service
- Http Service
- State Service
- Swal Service
- Theme Services
-
- SideBar
-
- Header
- ServerMultipleResponse
- ServerSingleResponse
- ValidatorParamInterface
- HttpParamInterface
- Pure Functions
- Group of Functions
- Permission
- Action
- Endpoints
- AngularzModule
- MatzModule
- OtherModules
- RootModule
- Dialog Module (Dialog Boxs)
-
- Confirmation
-
- Success
- Controls
-
- Text
-
- Dropdown
-
- AutoComplete
-
- Table
-
- Utils
-
- DateTime
-
- Currency
-
- Content Projection
-
- Permission
-
- Form Control
-
- Has
-
- DisRegard
-
- IsUser
-
- hasRole
-
- AccessToken
-
- Auth
-
- Loader
- Sidebar (Left, Rigth, Top, Bottom)
- Headers
- Footer
- MasterComponent
- Sign In
- Sign Up
- Forget Password
- Rest Password
- etc..
- Error (401, 404, 500)
- Admin
- Customer
- Product etc...
"compilerOptions": {
"strict":false,
"noImplicitAny": false,
"noPropertyAccessFromIndexSignature": false,
"@ngx-translate/core": "^14.0.0",
"@ngx-translate/http-loader": "^7.0.0",
"libphonenumber-js": "^1.10.13",
"ngx-cookie-service": "^14.0.1",
"ngx-mat-intl-tel-input": "^5.0.0",
"ngx-mat-select-search": "^4.2.1",
"ngx-spinner": "^14.0.0",
"ngx-toastr": "^15.0.0",
"sweetalert2": "^11.4.32",
"@angular-eslint/eslint-plugin": "^14.0.4",
"@typescript-eslint/eslint-plugin": "^5.36.2",
"@typescript-eslint/parser": "^5.36.2",
"eslint": "^8.23.1",
"ngx-mat-intl-tel-input": "^5.0.0",
"ngx-mat-select-search": "^4.2.1",
npm i prettier -D
npx prettier --write .
"off" or 0 - turn the rule off
"warn" or 1 - turn the rule on as a warning (doesn't affect exit code)
"error" or 2 - turn the rule on as an error (exit code will be 1)
.eslintrc.json
"rules": {
"@typescript-eslint/no-inferrable-types": "warn"
},