MCPcopy Create free account
hub / github.com/angular/angular / linkedSignal

Function linkedSignal

packages/core/src/render3/reactivity/linked_signal.ts:55–90  ·  view source on GitHub ↗
(
  optionsOrComputation:
    | {
        source: () => S;
        computation: ComputationFn<S, D>;
        equal?: ValueEqualityFn<D>;
        debugName?: string;
        set?: (value: D, rawSet: (value: D) => void) => void;
      }
    | (() => D),
  options?: {
    equal?: ValueEqualityFn<D>;
    debugName?: string;
    set?: (value: D, rawSet: (value: D) => void) => void;
  },
)

Source from the content-addressed store, hash-verified

53}): WritableSignal<D>;
54
55export function linkedSignal<S, D>(
56 optionsOrComputation:
57 | {
58 source: () => S;
59 computation: ComputationFn<S, D>;
60 equal?: ValueEqualityFn<D>;
61 debugName?: string;
62 set?: (value: D, rawSet: (value: D) => void) => void;
63 }
64 | (() => D),
65 options?: {
66 equal?: ValueEqualityFn<D>;
67 debugName?: string;
68 set?: (value: D, rawSet: (value: D) => void) => void;
69 },
70): WritableSignal<D> {
71 if (typeof optionsOrComputation === 'function') {
72 const getter = createLinkedSignal<D, D>(
73 optionsOrComputation,
74 identityFn<D>,
75 options?.equal,
76 ) as LinkedSignalGetter<D, D> & WritableSignal<D>;
77 return upgradeLinkedSignalGetter(getter, options?.debugName, options?.set);
78 } else {
79 const getter = createLinkedSignal<S, D>(
80 optionsOrComputation.source,
81 optionsOrComputation.computation,
82 optionsOrComputation.equal,
83 );
84 return upgradeLinkedSignalGetter(
85 getter,
86 optionsOrComputation.debugName,
87 optionsOrComputation.set,
88 );
89 }
90}
91
92function upgradeLinkedSignalGetter<S, D>(
93 getter: LinkedSignalGetter<S, D>,

Callers 15

constructorMethod · 0.90
debouncedFunction · 0.90
AppClass · 0.90
transformedValueFunction · 0.90
createParserFunction · 0.90
FieldNodeClass · 0.90
controlValueSignalMethod · 0.90
constructorMethod · 0.90

Calls 2

createLinkedSignalFunction · 0.90

Tested by

no test coverage detected