MCPcopy
hub / github.com/midrender/revideo / signal

Function signal

packages/2d/src/lib/decorators/signal.ts:113–136  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

111 * ```
112 */
113export function signal<T>(): PropertyDecorator {
114 return (target: any, key) => {
115 // FIXME property metadata is not inherited
116 // Consider retrieving it inside the initializer using the instance and not
117 // the class.
118 const meta = getPropertyMetaOrCreate<T>(target, key);
119 addInitializer(target, (instance: any) => {
120 let initial: SignalValue<T> = meta.default!;
121 const defaultMethod = instance[`getDefault${capitalize(key as string)}`];
122 if (defaultMethod) {
123 initial = () => defaultMethod.call(instance, meta.default);
124 }
125
126 const signal = new SignalContext<T, T, any>(
127 initial,
128 meta.interpolationFunction ?? deepLerp,
129 instance,
130 meta.parser?.bind(instance),
131 makeSignalExtensions(meta, instance, <string>key),
132 );
133 instance[key] = signal.toSignal();
134 });
135 };
136}
137
138/**
139 * Create an initial signal value decorator.

Callers 15

LatexClass · 0.90
CodeBlockClass · 0.90
SplineClass · 0.90
RectClass · 0.90
View2DClass · 0.90
LayoutClass · 0.90
originSignalFunction · 0.90
CodeClass · 0.90
Media.tsFile · 0.90
CircleClass · 0.90
LineClass · 0.90
TxtClass · 0.90

Calls 5

toSignalMethod · 0.95
addInitializerFunction · 0.90
capitalizeFunction · 0.90
makeSignalExtensionsFunction · 0.90
getPropertyMetaOrCreateFunction · 0.85

Tested by

no test coverage detected