(options: ResourceOptions<T, R>)
| 65 | */ |
| 66 | export function resource<T, R>(options: ResourceOptions<T, R>): ResourceRef<T | undefined>; |
| 67 | export function resource<T, R>(options: ResourceOptions<T, R>): ResourceRef<T | undefined> { |
| 68 | if (ngDevMode && !options?.injector) { |
| 69 | assertInInjectionContext(resource); |
| 70 | } |
| 71 | |
| 72 | const oldNameForParams = ( |
| 73 | options as ResourceOptions<T, R> & {request: ResourceOptions<T, R>['params']} |
| 74 | ).request; |
| 75 | const params = options.params ?? oldNameForParams ?? (() => null!); |
| 76 | return new ResourceImpl<T | undefined, R>( |
| 77 | params, |
| 78 | getLoader(options), |
| 79 | options.defaultValue, |
| 80 | options.equal ? wrapEqualityFn(options.equal) : undefined, |
| 81 | options.debugName, |
| 82 | options.injector ?? inject(Injector), |
| 83 | options.id as StateKey<T>, |
| 84 | ); |
| 85 | } |
| 86 | |
| 87 | type ResourceInternalStatus = 'idle' | 'loading' | 'resolved' | 'local'; |
| 88 |
searching dependent graphs…