MCPcopy Index your code
hub / github.com/angular/angular / createSignal

Function createSignal

packages/core/primitives/signals/src/signal.ts:53–73  ·  view source on GitHub ↗
(
  initialValue: T,
  equal?: ValueEqualityFn<T>,
)

Source from the content-addressed store, hash-verified

51 * Creates a `Signal` getter, setter, and updater function.
52 */
53export function createSignal<T>(
54 initialValue: T,
55 equal?: ValueEqualityFn<T>,
56): [SignalGetter<T>, SignalSetter<T>, SignalUpdater<T>] {
57 const node: SignalNode<T> = Object.create(SIGNAL_NODE);
58 node.value = initialValue;
59 if (equal !== undefined) {
60 node.equal = equal;
61 }
62 const getter = (() => signalGetFn(node)) as SignalGetter<T>;
63 (getter as any)[SIGNAL] = node;
64 if (typeof ngDevMode !== 'undefined' && ngDevMode) {
65 getter.toString = () =>
66 `[Signal${node.debugName ? ' (' + node.debugName + ')' : ''}: ${String(node.value)}]`;
67 }
68
69 runPostProducerCreatedFn(node);
70 const set = (newValue: T) => signalSetFn(node, newValue);
71 const update = (updateFn: (value: T) => T) => signalUpdateFn(node, updateFn);
72 return [getter, set, update];
73}
74
75export function setPostSignalSetFn(fn: ReactiveHookFn | null): ReactiveHookFn | null {
76 const prev = postSignalSetFn;

Callers 1

signalFunction · 0.90

Calls 3

runPostProducerCreatedFnFunction · 0.90
signalGetFnFunction · 0.85
createMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…