@one-paragon/angular-utilities 2.8.4 → 2.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/one-paragon-angular-utilities.mjs +7350 -0
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
- package/package.json +27 -15
- package/types/one-paragon-angular-utilities.d.ts +2211 -0
- package/karma.conf.js +0 -43
- package/ng-package.json +0 -7
- package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
- package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -7
- package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
- package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
- package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
- package/src/action-state/index.ts +0 -8
- package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -14
- package/src/action-state/ngrx.ts +0 -69
- package/src/http-request-state/RequestStateFactory.ts +0 -56
- package/src/http-request-state/RequestStateStore.ts +0 -360
- package/src/http-request-state/deprecated.ts +0 -20
- package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -29
- package/src/http-request-state/directives/http-error-state-directive.ts +0 -21
- package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -19
- package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -19
- package/src/http-request-state/directives/http-success-state-directive.ts +0 -29
- package/src/http-request-state/directives/index.ts +0 -5
- package/src/http-request-state/directives/request-state-directive.spec.ts +0 -73
- package/src/http-request-state/directives/request-state-directive.ts +0 -78
- package/src/http-request-state/documentation/CREATE-REQUESTOR.md +0 -667
- package/src/http-request-state/documentation/README.md +0 -191
- package/src/http-request-state/documentation/REQUEST-STATE-STORE-CONFIG.md +0 -648
- package/src/http-request-state/documentation/REQUESTOR.md +0 -616
- package/src/http-request-state/helpers.ts +0 -30
- package/src/http-request-state/http-state-module.ts +0 -23
- package/src/http-request-state/index.ts +0 -7
- package/src/http-request-state/models/view-context.ts +0 -18
- package/src/http-request-state/observable.spec.ts +0 -43
- package/src/http-request-state/request-state.ts +0 -66
- package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
- package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
- package/src/http-request-state/rxjs/index.ts +0 -4
- package/src/http-request-state/rxjs/tapError.ts +0 -16
- package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
- package/src/http-request-state/strategies.spec.ts +0 -42
- package/src/http-request-state/types.ts +0 -54
- package/src/ngrx/actionable-selector.ts +0 -189
- package/src/ngrx/index.ts +0 -1
- package/src/public-api.ts +0 -40
- package/src/rxjs/defaultShareReplay.ts +0 -8
- package/src/rxjs/index.ts +0 -5
- package/src/rxjs/mapError.ts +0 -8
- package/src/rxjs/rxjs-operators.ts +0 -130
- package/src/rxjs/subjectifier.ts +0 -17
- package/src/rxjs/subscriber.directive.ts +0 -57
- package/src/specs/clickSubject.spec.ts +0 -99
- package/src/specs/dialog.spec.ts +0 -101
- package/src/specs/toggleGroupDirective.spec.ts +0 -229
- package/src/table-builder/classes/DefaultSettings.ts +0 -11
- package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
- package/src/table-builder/classes/TableBuilderConfig.ts +0 -49
- package/src/table-builder/classes/TableBuilderDataSource.ts +0 -64
- package/src/table-builder/classes/TableState.ts +0 -96
- package/src/table-builder/classes/data-store.ts +0 -10
- package/src/table-builder/classes/display-col.ts +0 -5
- package/src/table-builder/classes/filter-info.ts +0 -129
- package/src/table-builder/classes/table-builder-general-settings.ts +0 -233
- package/src/table-builder/classes/table-builder.ts +0 -105
- package/src/table-builder/classes/table-store.helpers.ts +0 -109
- package/src/table-builder/classes/table-store.ts +0 -540
- package/src/table-builder/components/array-column.component.ts +0 -34
- package/src/table-builder/components/column-builder/column-builder.component.html +0 -109
- package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
- package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
- package/src/table-builder/components/column-builder/column-builder.component.ts +0 -130
- package/src/table-builder/components/column-builder/column-helpers.ts +0 -54
- package/src/table-builder/components/column-header-menu/column-header-menu.component.html +0 -128
- package/src/table-builder/components/column-header-menu/column-header-menu.component.scss +0 -97
- package/src/table-builder/components/column-header-menu/column-header-menu.component.ts +0 -113
- package/src/table-builder/components/date-filter/date-filter.component.html +0 -39
- package/src/table-builder/components/date-filter/date-filter.component.ts +0 -33
- package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -25
- package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -33
- package/src/table-builder/components/filter/filter.component.html +0 -120
- package/src/table-builder/components/filter/filter.component.scss +0 -60
- package/src/table-builder/components/filter/filter.component.spec.ts +0 -86
- package/src/table-builder/components/filter/filter.component.ts +0 -73
- package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -171
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -60
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -44
- package/src/table-builder/components/generic-table/generic-table.component.html +0 -140
- package/src/table-builder/components/generic-table/generic-table.component.scss +0 -45
- package/src/table-builder/components/generic-table/generic-table.component.ts +0 -531
- package/src/table-builder/components/generic-table/paginator.component.ts +0 -125
- package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -24
- package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -21
- package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
- package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -26
- package/src/table-builder/components/in-filter/in-filter.component.css +0 -22
- package/src/table-builder/components/in-filter/in-filter.component.html +0 -38
- package/src/table-builder/components/in-filter/in-filter.component.ts +0 -66
- package/src/table-builder/components/index.ts +0 -9
- package/src/table-builder/components/initialization-component/initialization.component.html +0 -78
- package/src/table-builder/components/initialization-component/initialization.component.ts +0 -28
- package/src/table-builder/components/link-column.component.ts +0 -42
- package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
- package/src/table-builder/components/number-filter/number-filter.component.html +0 -32
- package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
- package/src/table-builder/components/number-filter/number-filter.component.ts +0 -34
- package/src/table-builder/components/profiles-menu/profiles-menu.component.html +0 -77
- package/src/table-builder/components/profiles-menu/profiles-menu.component.scss +0 -126
- package/src/table-builder/components/profiles-menu/profiles-menu.component.spec.ts +0 -23
- package/src/table-builder/components/profiles-menu/profiles-menu.component.ts +0 -64
- package/src/table-builder/components/reset-menu/reset-menu.component.css +0 -3
- package/src/table-builder/components/reset-menu/reset-menu.component.html +0 -10
- package/src/table-builder/components/reset-menu/reset-menu.component.ts +0 -87
- package/src/table-builder/components/scroll-strategy.ts +0 -139
- package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -57
- package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -115
- package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
- package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -88
- package/src/table-builder/components/table-container/table-container.component.html +0 -94
- package/src/table-builder/components/table-container/table-container.component.scss +0 -60
- package/src/table-builder/components/table-container/table-container.component.ts +0 -467
- package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -113
- package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -125
- package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -172
- package/src/table-builder/components/table-container/table-container.helpers/meta-data.helpers.ts +0 -19
- package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -47
- package/src/table-builder/components/table-container/tableProps.ts +0 -21
- package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -216
- package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -42
- package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -47
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -40
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -11
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -85
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -35
- package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -13
- package/src/table-builder/components/table-header-menu/table-header-menu.component.css +0 -21
- package/src/table-builder/components/table-header-menu/table-header-menu.component.html +0 -48
- package/src/table-builder/components/table-header-menu/table-header-menu.component.ts +0 -36
- package/src/table-builder/directives/custom-cell-directive.ts +0 -63
- package/src/table-builder/directives/custom-header-directive.ts +0 -16
- package/src/table-builder/directives/group-row-directive.ts +0 -91
- package/src/table-builder/directives/index.ts +0 -8
- package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
- package/src/table-builder/directives/multi-sort.directive.ts +0 -58
- package/src/table-builder/directives/resize-column.directive.ts +0 -107
- package/src/table-builder/directives/table-wrapper.directive.ts +0 -13
- package/src/table-builder/directives/tb-filter.directive.ts +0 -376
- package/src/table-builder/documentation/table-builder/CUSTOM-CELL.md +0 -568
- package/src/table-builder/documentation/table-builder/CUSTOM-GROUP-ROW.md +0 -356
- package/src/table-builder/documentation/table-builder/METADATA-DOCUMENTATION.md +0 -517
- package/src/table-builder/documentation/table-builder/STYLER-STYLE.md +0 -228
- package/src/table-builder/documentation/table-builder/TABLE-BUILDER-CONFIG.md +0 -325
- package/src/table-builder/documentation/table-builder/TABLE-BUILDER-SETTINGS.md +0 -515
- package/src/table-builder/documentation/table-builder/TABLE-BUILDER.md +0 -430
- package/src/table-builder/documentation/table-builder/TABLE-CONTAINER.md +0 -628
- package/src/table-builder/enums/filterTypes.ts +0 -39
- package/src/table-builder/functions/boolean-filter-function.ts +0 -12
- package/src/table-builder/functions/date-filter-function.ts +0 -85
- package/src/table-builder/functions/download-data.ts +0 -11
- package/src/table-builder/functions/null-filter-function.ts +0 -9
- package/src/table-builder/functions/number-filter-function.ts +0 -47
- package/src/table-builder/functions/sort-data-function.ts +0 -80
- package/src/table-builder/functions/string-filter-function.ts +0 -59
- package/src/table-builder/interfaces/ColumnInfo.ts +0 -9
- package/src/table-builder/interfaces/dictionary.ts +0 -3
- package/src/table-builder/interfaces/meta-data.ts +0 -279
- package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -203
- package/src/table-builder/pipes/column-total.pipe.ts +0 -16
- package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
- package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -71
- package/src/table-builder/pipes/key-display.ts +0 -13
- package/src/table-builder/services/all-values-filter-creator.service.ts +0 -92
- package/src/table-builder/services/export-to-csv.service.ts +0 -117
- package/src/table-builder/services/link-creator.service.ts +0 -98
- package/src/table-builder/services/table-template-service.ts +0 -47
- package/src/table-builder/services/transform-creator.ts +0 -90
- package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
- package/src/table-builder/styles/collapser.styles.scss +0 -16
- package/src/table-builder/table-builder.module.ts +0 -42
- package/src/table-builder/types/group-types.ts +0 -42
- package/src/table-builder/types/index.ts +0 -1
- package/src/test.ts +0 -17
- package/src/utilities/array-helpers.ts +0 -13
- package/src/utilities/directives/auto-focus.directive.ts +0 -20
- package/src/utilities/directives/clickEmitterDirective.ts +0 -15
- package/src/utilities/directives/clickSubject.ts +0 -19
- package/src/utilities/directives/conditional-classes.directive.ts +0 -36
- package/src/utilities/directives/dialog-service.ts +0 -19
- package/src/utilities/directives/dialog.ts +0 -174
- package/src/utilities/directives/mat-toggle-group-directive.ts +0 -60
- package/src/utilities/directives/prevent-enter.directive.ts +0 -12
- package/src/utilities/directives/stop-propagation.directive.ts +0 -19
- package/src/utilities/directives/styler.ts +0 -45
- package/src/utilities/directives/trim-whitespace.directive.ts +0 -20
- package/src/utilities/index.ts +0 -22
- package/src/utilities/module.ts +0 -53
- package/src/utilities/pipes/function.pipe.ts +0 -21
- package/src/utilities/pipes/phone.pipe.ts +0 -20
- package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
- package/src/utilities/pipes/space-case.pipes.ts +0 -29
- package/tsconfig.lib.json +0 -20
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
# HTTP Request State Documentation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
This directory contains comprehensive documentation for the HTTP Request State management system in Angular Utilities. This system provides a signal-based, reactive approach to managing HTTP request states, errors, and success handling.
|
|
6
|
-
|
|
7
|
-
## Documentation Files
|
|
8
|
-
|
|
9
|
-
### Core Concepts
|
|
10
|
-
|
|
11
|
-
1. **[REQUESTOR.md](./REQUESTOR.md)** - Complete guide to using requestors (RequestStateStore instances)
|
|
12
|
-
- Overview of features and capabilities
|
|
13
|
-
- Request strategies (concurrent, sequential, cancelPrevious, singleUse)
|
|
14
|
-
- State management with signals and observables
|
|
15
|
-
- Making requests and handling responses
|
|
16
|
-
- Error and success handling patterns
|
|
17
|
-
- Common usage patterns and best practices
|
|
18
|
-
- Migration guide from traditional observable patterns
|
|
19
|
-
|
|
20
|
-
2. **[CREATE-REQUESTOR.md](./CREATE-REQUESTOR.md)** - Documentation for the `createRequestor` function
|
|
21
|
-
- Function signatures and type parameters
|
|
22
|
-
- Injection context requirements
|
|
23
|
-
- Basic and advanced usage examples
|
|
24
|
-
- Request strategies and configuration
|
|
25
|
-
- Projection/transformation patterns
|
|
26
|
-
- Testing strategies
|
|
27
|
-
- Comparison with RequestStateFactory
|
|
28
|
-
|
|
29
|
-
3. **[REQUEST-STATE-STORE-CONFIG.md](./REQUEST-STATE-STORE-CONFIG.md)** - Global configuration options
|
|
30
|
-
- RequestStateStoreConfig interface
|
|
31
|
-
- Setting up default error handlers
|
|
32
|
-
- Setting up default success handlers
|
|
33
|
-
- Application-wide and component-level configuration
|
|
34
|
-
- Integration with notification/toast services
|
|
35
|
-
- Error tracking and logging patterns
|
|
36
|
-
- Testing with configuration
|
|
37
|
-
|
|
38
|
-
## Quick Start
|
|
39
|
-
|
|
40
|
-
### Creating a Simple Requestor
|
|
41
|
-
|
|
42
|
-
```typescript
|
|
43
|
-
import { createRequestor } from 'angular-utilities';
|
|
44
|
-
import { inject } from '@angular/core';
|
|
45
|
-
import { HttpClient } from '@angular/common/http';
|
|
46
|
-
|
|
47
|
-
export class UserComponent {
|
|
48
|
-
private http = inject(HttpClient);
|
|
49
|
-
|
|
50
|
-
// Create a requestor
|
|
51
|
-
userRequestor = createRequestor(
|
|
52
|
-
(userId: number) => this.http.get<User>(`/api/users/${userId}`)
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
// Make a request
|
|
56
|
-
loadUser(id: number) {
|
|
57
|
-
this.userRequestor.request(id);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Using in Templates
|
|
63
|
-
|
|
64
|
-
```typescript
|
|
65
|
-
@Component({
|
|
66
|
-
template: `
|
|
67
|
-
@if (userRequestor.$isInProgress()) {
|
|
68
|
-
<app-loading />
|
|
69
|
-
} @else if (userRequestor.$isSuccess()) {
|
|
70
|
-
<h1>{{ userRequestor.$selectResponse()?.name }}</h1>
|
|
71
|
-
} @else if (userRequestor.$isError()) {
|
|
72
|
-
<app-error [error]="userRequestor.$selectError()!" />
|
|
73
|
-
}
|
|
74
|
-
`
|
|
75
|
-
})
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### With Error and Success Handlers
|
|
79
|
-
|
|
80
|
-
```typescript
|
|
81
|
-
saveUser = createRequestor(
|
|
82
|
-
(user: User) => this.http.post<User>('/api/users', user)
|
|
83
|
-
)
|
|
84
|
-
.onSuccess((savedUser) => {
|
|
85
|
-
this.router.navigate(['/users', savedUser.id]);
|
|
86
|
-
})
|
|
87
|
-
.onError((error) => {
|
|
88
|
-
this.showErrorMessage(error.message);
|
|
89
|
-
});
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Key Features
|
|
93
|
-
|
|
94
|
-
- **Signal-based State Management**: Reactive state updates using Angular signals
|
|
95
|
-
- **Multiple Request Strategies**: Concurrent, sequential, cancel-previous, and single-use patterns
|
|
96
|
-
- **Automatic Lifecycle Management**: Integrates with Angular's DestroyRef for cleanup
|
|
97
|
-
- **Flexible Error Handling**: Multiple patterns for handling errors
|
|
98
|
-
- **Type-safe**: Full TypeScript support with generic type parameters
|
|
99
|
-
- **Observable and Signal Support**: Works with both reactive paradigms
|
|
100
|
-
- **Projection/Transformation**: Built-in response transformation support
|
|
101
|
-
|
|
102
|
-
## Request Strategies
|
|
103
|
-
|
|
104
|
-
| Strategy | Behavior | Use Case |
|
|
105
|
-
|----------|----------|----------|
|
|
106
|
-
| `cancelPrevious` (default) | Cancels in-flight requests | Search, autocomplete |
|
|
107
|
-
| `concurrent` | Runs all requests simultaneously | Independent operations |
|
|
108
|
-
| `sequential` | Queues and executes in order | Ordered operations, uploads |
|
|
109
|
-
| `singleUse` | One request only (must reset) | Initialization, one-time actions |
|
|
110
|
-
|
|
111
|
-
## State Access Patterns
|
|
112
|
-
|
|
113
|
-
### Using Signals (Recommended)
|
|
114
|
-
|
|
115
|
-
```typescript
|
|
116
|
-
requestor.$selectStatus() // Signal<RequestStatus>
|
|
117
|
-
requestor.$isInProgress() // Signal<boolean>
|
|
118
|
-
requestor.$isSuccess() // Signal<boolean>
|
|
119
|
-
requestor.$isError() // Signal<boolean>
|
|
120
|
-
requestor.$selectResponse() // Signal<T | undefined>
|
|
121
|
-
requestor.$selectError() // Signal<HttpErrorResponse | undefined>
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### Using Observables
|
|
125
|
-
|
|
126
|
-
```typescript
|
|
127
|
-
requestor.state$ // Observable<RequestResponse<TParam, T>>
|
|
128
|
-
requestor.selectRequestState$ // Observable<RequestState<T>>
|
|
129
|
-
requestor.selectResponse$ // Observable<T>
|
|
130
|
-
requestor.selectStatus$ // Observable<RequestStatus>
|
|
131
|
-
requestor.selectError$ // Observable<HttpErrorResponse>
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
## Common Patterns
|
|
135
|
-
|
|
136
|
-
### Master-Detail Pattern
|
|
137
|
-
|
|
138
|
-
```typescript
|
|
139
|
-
userId = signal(1);
|
|
140
|
-
userIdArray = computed(() => [this.userId()]);
|
|
141
|
-
|
|
142
|
-
user = createRequestor(
|
|
143
|
-
(id: number) => this.http.get<User>(`/api/users/${id}`)
|
|
144
|
-
).requestWith(this.userIdArray);
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### Search with Debounce
|
|
148
|
-
|
|
149
|
-
```typescript
|
|
150
|
-
searchTerm = signal('');
|
|
151
|
-
|
|
152
|
-
results = createRequestor(
|
|
153
|
-
(term: string) => this.http.get(`/api/search?q=${term}`),
|
|
154
|
-
{ strategy: RequestStrategy.cancelPrevious }
|
|
155
|
-
).requestWith(
|
|
156
|
-
toObservable(this.searchTerm).pipe(
|
|
157
|
-
debounceTime(300),
|
|
158
|
-
map(term => [term])
|
|
159
|
-
)
|
|
160
|
-
);
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Form Submission
|
|
164
|
-
|
|
165
|
-
```typescript
|
|
166
|
-
saveForm = createRequestor(
|
|
167
|
-
(data: FormData) => this.http.post('/api/save', data)
|
|
168
|
-
)
|
|
169
|
-
.onSuccess(() => this.router.navigate(['/success']))
|
|
170
|
-
.onError((error) => this.showError(error));
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
## Additional Resources
|
|
175
|
-
|
|
176
|
-
- [Angular Signals Documentation](https://angular.dev/guide/signals)
|
|
177
|
-
- [RxJS Operators](https://rxjs.dev/guide/operators)
|
|
178
|
-
- [HttpClient Guide](https://angular.dev/guide/http)
|
|
179
|
-
|
|
180
|
-
## Contributing
|
|
181
|
-
|
|
182
|
-
When contributing to this system:
|
|
183
|
-
1. Maintain backward compatibility
|
|
184
|
-
2. Add tests for new features
|
|
185
|
-
3. Update documentation
|
|
186
|
-
4. Follow TypeScript best practices
|
|
187
|
-
5. Consider performance implications
|
|
188
|
-
|
|
189
|
-
## Support
|
|
190
|
-
|
|
191
|
-
For issues, questions, or contributions, please refer to the main repository documentation.
|