From 40110c4a8c649678613a21d4e6762541d664f0af Mon Sep 17 00:00:00 2001 From: "s.v.zaytsev" Date: Wed, 24 Sep 2025 12:48:40 +0500 Subject: [PATCH] feat(signals): add support all providedIn types from `Injectable` (#4963) --- modules/signals/src/signal-store.ts | 38 +++++++++++++++++------------ 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/modules/signals/src/signal-store.ts b/modules/signals/src/signal-store.ts index 720cd79df9..d274354414 100644 --- a/modules/signals/src/signal-store.ts +++ b/modules/signals/src/signal-store.ts @@ -9,7 +9,13 @@ import { } from './signal-store-models'; import { OmitPrivate, Prettify } from './ts-helpers'; -type SignalStoreConfig = { providedIn?: 'root'; protectedState?: boolean }; +type ProvidedIn = { + providedIn?: 'root' | 'platform'; +}; + +type SignalStoreConfig = ProvidedIn & { + protectedState?: boolean; +}; type SignalStoreMembers = Prettify< @@ -440,7 +446,7 @@ export function signalStore< ): Type & StateSource>>>; export function signalStore( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature ): Type< SignalStoreMembers & StateSource>> @@ -450,7 +456,7 @@ export function signalStore< F2 extends SignalStoreFeatureResult, R extends SignalStoreFeatureResult = F1 & F2, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2> ): Type & StateSource>>>; @@ -460,7 +466,7 @@ export function signalStore< F3 extends SignalStoreFeatureResult, R extends SignalStoreFeatureResult = F1 & F2 & F3, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature @@ -472,7 +478,7 @@ export function signalStore< F4 extends SignalStoreFeatureResult, R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -486,7 +492,7 @@ export function signalStore< F5 extends SignalStoreFeatureResult, R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -502,7 +508,7 @@ export function signalStore< F6 extends SignalStoreFeatureResult, R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5 & F6, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -520,7 +526,7 @@ export function signalStore< F7 extends SignalStoreFeatureResult, R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5 & F6 & F7, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -540,7 +546,7 @@ export function signalStore< F8 extends SignalStoreFeatureResult, R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5 & F6 & F7 & F8, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -570,7 +576,7 @@ export function signalStore< F8 & F9, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -603,7 +609,7 @@ export function signalStore< F9 & F10, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -639,7 +645,7 @@ export function signalStore< F10 & F11, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -678,7 +684,7 @@ export function signalStore< F11 & F12, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -726,7 +732,7 @@ export function signalStore< F12 & F13, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -780,7 +786,7 @@ export function signalStore< F13 & F14, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, @@ -840,7 +846,7 @@ export function signalStore< F14 & F15, >( - config: { providedIn?: 'root'; protectedState?: true }, + config: ProvidedIn & { protectedState?: true }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature,