@tanstack/angular-query-experimental
Version:
Signals for managing, caching and syncing asynchronous and remote data in Angular
30 lines (29 loc) • 799 B
JavaScript
import { untracked, computed } from "@angular/core";
function signalProxy(inputSignal) {
const internalState = {};
return new Proxy(internalState, {
get(target, prop) {
const computedField = target[prop];
if (computedField) return computedField;
const targetField = untracked(inputSignal)[prop];
if (typeof targetField === "function") return targetField;
return target[prop] = computed(() => inputSignal()[prop]);
},
has(_, prop) {
return !!untracked(inputSignal)[prop];
},
ownKeys() {
return Reflect.ownKeys(untracked(inputSignal));
},
getOwnPropertyDescriptor() {
return {
enumerable: true,
configurable: true
};
}
});
}
export {
signalProxy
};
//# sourceMappingURL=signal-proxy.mjs.map