Skip to content

Commit 835014b

Browse files
authored
feat(signals): add ability to provide SignalStore at the platform level (#4964)
Closes #4963
1 parent 9a2a4ba commit 835014b

File tree

1 file changed

+33
-31
lines changed

1 file changed

+33
-31
lines changed

modules/signals/src/signal-store.ts

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import {
99
} from './signal-store-models';
1010
import { OmitPrivate, Prettify } from './ts-helpers';
1111

12-
type SignalStoreConfig = { providedIn?: 'root'; protectedState?: boolean };
12+
type ProvidedInConfig = { providedIn?: 'root' | 'platform' };
13+
14+
type SignalStoreConfig = ProvidedInConfig & { protectedState?: boolean };
1315

1416
type SignalStoreMembers<FeatureResult extends SignalStoreFeatureResult> =
1517
Prettify<
@@ -440,7 +442,7 @@ export function signalStore<
440442
): Type<SignalStoreMembers<R> & StateSource<Prettify<OmitPrivate<R['state']>>>>;
441443

442444
export function signalStore<F1 extends SignalStoreFeatureResult>(
443-
config: { providedIn?: 'root'; protectedState?: true },
445+
config: ProvidedInConfig & { protectedState?: true },
444446
f1: SignalStoreFeature<EmptyFeatureResult, F1>
445447
): Type<
446448
SignalStoreMembers<F1> & StateSource<Prettify<OmitPrivate<F1['state']>>>
@@ -450,7 +452,7 @@ export function signalStore<
450452
F2 extends SignalStoreFeatureResult,
451453
R extends SignalStoreFeatureResult = F1 & F2,
452454
>(
453-
config: { providedIn?: 'root'; protectedState?: true },
455+
config: ProvidedInConfig & { protectedState?: true },
454456
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
455457
f2: SignalStoreFeature<{} & F1, F2>
456458
): Type<SignalStoreMembers<R> & StateSource<Prettify<OmitPrivate<R['state']>>>>;
@@ -460,7 +462,7 @@ export function signalStore<
460462
F3 extends SignalStoreFeatureResult,
461463
R extends SignalStoreFeatureResult = F1 & F2 & F3,
462464
>(
463-
config: { providedIn?: 'root'; protectedState?: true },
465+
config: ProvidedInConfig & { protectedState?: true },
464466
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
465467
f2: SignalStoreFeature<{} & F1, F2>,
466468
f3: SignalStoreFeature<F1 & F2, F3>
@@ -472,7 +474,7 @@ export function signalStore<
472474
F4 extends SignalStoreFeatureResult,
473475
R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4,
474476
>(
475-
config: { providedIn?: 'root'; protectedState?: true },
477+
config: ProvidedInConfig & { protectedState?: true },
476478
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
477479
f2: SignalStoreFeature<{} & F1, F2>,
478480
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -486,7 +488,7 @@ export function signalStore<
486488
F5 extends SignalStoreFeatureResult,
487489
R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5,
488490
>(
489-
config: { providedIn?: 'root'; protectedState?: true },
491+
config: ProvidedInConfig & { protectedState?: true },
490492
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
491493
f2: SignalStoreFeature<{} & F1, F2>,
492494
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -502,7 +504,7 @@ export function signalStore<
502504
F6 extends SignalStoreFeatureResult,
503505
R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5 & F6,
504506
>(
505-
config: { providedIn?: 'root'; protectedState?: true },
507+
config: ProvidedInConfig & { protectedState?: true },
506508
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
507509
f2: SignalStoreFeature<{} & F1, F2>,
508510
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -520,7 +522,7 @@ export function signalStore<
520522
F7 extends SignalStoreFeatureResult,
521523
R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5 & F6 & F7,
522524
>(
523-
config: { providedIn?: 'root'; protectedState?: true },
525+
config: ProvidedInConfig & { protectedState?: true },
524526
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
525527
f2: SignalStoreFeature<{} & F1, F2>,
526528
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -540,7 +542,7 @@ export function signalStore<
540542
F8 extends SignalStoreFeatureResult,
541543
R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5 & F6 & F7 & F8,
542544
>(
543-
config: { providedIn?: 'root'; protectedState?: true },
545+
config: ProvidedInConfig & { protectedState?: true },
544546
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
545547
f2: SignalStoreFeature<{} & F1, F2>,
546548
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -570,7 +572,7 @@ export function signalStore<
570572
F8 &
571573
F9,
572574
>(
573-
config: { providedIn?: 'root'; protectedState?: true },
575+
config: ProvidedInConfig & { protectedState?: true },
574576
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
575577
f2: SignalStoreFeature<{} & F1, F2>,
576578
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -603,7 +605,7 @@ export function signalStore<
603605
F9 &
604606
F10,
605607
>(
606-
config: { providedIn?: 'root'; protectedState?: true },
608+
config: ProvidedInConfig & { protectedState?: true },
607609
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
608610
f2: SignalStoreFeature<{} & F1, F2>,
609611
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -639,7 +641,7 @@ export function signalStore<
639641
F10 &
640642
F11,
641643
>(
642-
config: { providedIn?: 'root'; protectedState?: true },
644+
config: ProvidedInConfig & { protectedState?: true },
643645
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
644646
f2: SignalStoreFeature<{} & F1, F2>,
645647
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -678,7 +680,7 @@ export function signalStore<
678680
F11 &
679681
F12,
680682
>(
681-
config: { providedIn?: 'root'; protectedState?: true },
683+
config: ProvidedInConfig & { protectedState?: true },
682684
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
683685
f2: SignalStoreFeature<{} & F1, F2>,
684686
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -726,7 +728,7 @@ export function signalStore<
726728
F12 &
727729
F13,
728730
>(
729-
config: { providedIn?: 'root'; protectedState?: true },
731+
config: ProvidedInConfig & { protectedState?: true },
730732
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
731733
f2: SignalStoreFeature<{} & F1, F2>,
732734
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -780,7 +782,7 @@ export function signalStore<
780782
F13 &
781783
F14,
782784
>(
783-
config: { providedIn?: 'root'; protectedState?: true },
785+
config: ProvidedInConfig & { protectedState?: true },
784786
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
785787
f2: SignalStoreFeature<{} & F1, F2>,
786788
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -840,7 +842,7 @@ export function signalStore<
840842
F14 &
841843
F15,
842844
>(
843-
config: { providedIn?: 'root'; protectedState?: true },
845+
config: ProvidedInConfig & { protectedState?: true },
844846
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
845847
f2: SignalStoreFeature<{} & F1, F2>,
846848
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -874,7 +876,7 @@ export function signalStore<
874876
): Type<SignalStoreMembers<R> & StateSource<Prettify<OmitPrivate<R['state']>>>>;
875877

876878
export function signalStore<F1 extends SignalStoreFeatureResult>(
877-
config: { providedIn?: 'root'; protectedState: false },
879+
config: ProvidedInConfig & { protectedState: false },
878880
f1: SignalStoreFeature<EmptyFeatureResult, F1>
879881
): Type<
880882
SignalStoreMembers<F1> &
@@ -885,7 +887,7 @@ export function signalStore<
885887
F2 extends SignalStoreFeatureResult,
886888
R extends SignalStoreFeatureResult = F1 & F2,
887889
>(
888-
config: { providedIn?: 'root'; protectedState: false },
890+
config: ProvidedInConfig & { protectedState: false },
889891
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
890892
f2: SignalStoreFeature<{} & F1, F2>
891893
): Type<
@@ -897,7 +899,7 @@ export function signalStore<
897899
F3 extends SignalStoreFeatureResult,
898900
R extends SignalStoreFeatureResult = F1 & F2 & F3,
899901
>(
900-
config: { providedIn?: 'root'; protectedState: false },
902+
config: ProvidedInConfig & { protectedState: false },
901903
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
902904
f2: SignalStoreFeature<{} & F1, F2>,
903905
f3: SignalStoreFeature<F1 & F2, F3>
@@ -911,7 +913,7 @@ export function signalStore<
911913
F4 extends SignalStoreFeatureResult,
912914
R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4,
913915
>(
914-
config: { providedIn?: 'root'; protectedState: false },
916+
config: ProvidedInConfig & { protectedState: false },
915917
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
916918
f2: SignalStoreFeature<{} & F1, F2>,
917919
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -927,7 +929,7 @@ export function signalStore<
927929
F5 extends SignalStoreFeatureResult,
928930
R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5,
929931
>(
930-
config: { providedIn?: 'root'; protectedState: false },
932+
config: ProvidedInConfig & { protectedState: false },
931933
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
932934
f2: SignalStoreFeature<{} & F1, F2>,
933935
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -945,7 +947,7 @@ export function signalStore<
945947
F6 extends SignalStoreFeatureResult,
946948
R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5 & F6,
947949
>(
948-
config: { providedIn?: 'root'; protectedState: false },
950+
config: ProvidedInConfig & { protectedState: false },
949951
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
950952
f2: SignalStoreFeature<{} & F1, F2>,
951953
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -965,7 +967,7 @@ export function signalStore<
965967
F7 extends SignalStoreFeatureResult,
966968
R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5 & F6 & F7,
967969
>(
968-
config: { providedIn?: 'root'; protectedState: false },
970+
config: ProvidedInConfig & { protectedState: false },
969971
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
970972
f2: SignalStoreFeature<{} & F1, F2>,
971973
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -987,7 +989,7 @@ export function signalStore<
987989
F8 extends SignalStoreFeatureResult,
988990
R extends SignalStoreFeatureResult = F1 & F2 & F3 & F4 & F5 & F6 & F7 & F8,
989991
>(
990-
config: { providedIn?: 'root'; protectedState: false },
992+
config: ProvidedInConfig & { protectedState: false },
991993
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
992994
f2: SignalStoreFeature<{} & F1, F2>,
993995
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -1019,7 +1021,7 @@ export function signalStore<
10191021
F8 &
10201022
F9,
10211023
>(
1022-
config: { providedIn?: 'root'; protectedState: false },
1024+
config: ProvidedInConfig & { protectedState: false },
10231025
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
10241026
f2: SignalStoreFeature<{} & F1, F2>,
10251027
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -1054,7 +1056,7 @@ export function signalStore<
10541056
F9 &
10551057
F10,
10561058
>(
1057-
config: { providedIn?: 'root'; protectedState: false },
1059+
config: ProvidedInConfig & { protectedState: false },
10581060
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
10591061
f2: SignalStoreFeature<{} & F1, F2>,
10601062
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -1092,7 +1094,7 @@ export function signalStore<
10921094
F10 &
10931095
F11,
10941096
>(
1095-
config: { providedIn?: 'root'; protectedState: false },
1097+
config: ProvidedInConfig & { protectedState: false },
10961098
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
10971099
f2: SignalStoreFeature<{} & F1, F2>,
10981100
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -1133,7 +1135,7 @@ export function signalStore<
11331135
F11 &
11341136
F12,
11351137
>(
1136-
config: { providedIn?: 'root'; protectedState: false },
1138+
config: ProvidedInConfig & { protectedState: false },
11371139
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
11381140
f2: SignalStoreFeature<{} & F1, F2>,
11391141
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -1183,7 +1185,7 @@ export function signalStore<
11831185
F12 &
11841186
F13,
11851187
>(
1186-
config: { providedIn?: 'root'; protectedState: false },
1188+
config: ProvidedInConfig & { protectedState: false },
11871189
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
11881190
f2: SignalStoreFeature<{} & F1, F2>,
11891191
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -1239,7 +1241,7 @@ export function signalStore<
12391241
F13 &
12401242
F14,
12411243
>(
1242-
config: { providedIn?: 'root'; protectedState: false },
1244+
config: ProvidedInConfig & { protectedState: false },
12431245
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
12441246
f2: SignalStoreFeature<{} & F1, F2>,
12451247
f3: SignalStoreFeature<F1 & F2, F3>,
@@ -1301,7 +1303,7 @@ export function signalStore<
13011303
F14 &
13021304
F15,
13031305
>(
1304-
config: { providedIn?: 'root'; protectedState: false },
1306+
config: ProvidedInConfig & { protectedState: false },
13051307
f1: SignalStoreFeature<EmptyFeatureResult, F1>,
13061308
f2: SignalStoreFeature<{} & F1, F2>,
13071309
f3: SignalStoreFeature<F1 & F2, F3>,

0 commit comments

Comments
 (0)