Skip to content

Commit 6b640db

Browse files
5871d4dc chore: release 17.0.0-beta.0
1 parent f478c1a commit 6b640db

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+2798
-1
lines changed

LICENSE

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2017-2023 Brandon Roberts, Mike Ryan, Victor Savkin, Rob Wormald
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
22+
23+
This repository includes a file "debounceSync.ts" originially copied from
24+
https://github.com/cartant/rxjs-etc by Nicholas Jamieson, MIT licensed. See the
25+
file header for details.

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
# NgRx Signals Builds
1+
# @ngrx/signals
2+
3+
The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo.

commit_message

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
5871d4dc chore: release 17.0.0-beta.0

esm2022/index.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './src/index';
2+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9pbmRleCc7XG4iXX0=

esm2022/ngrx-signals.mjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
* Generated bundle index. Do not edit.
3+
*/
4+
export * from './index';
5+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyeC1zaWduYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL25ncngtc2lnbmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==

esm2022/rxjs-interop/index.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './src/index';
2+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvcnhqcy1pbnRlcm9wL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvaW5kZXgnO1xuIl19
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
* Generated bundle index. Do not edit.
3+
*/
4+
export * from './index';
5+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyeC1zaWduYWxzLXJ4anMtaW50ZXJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9yeGpzLWludGVyb3AvbmdyeC1zaWduYWxzLXJ4anMtaW50ZXJvcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==

esm2022/rxjs-interop/src/index.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { rxMethod } from './rx-method';
2+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvcnhqcy1pbnRlcm9wL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcnhNZXRob2QgfSBmcm9tICcuL3J4LW1ldGhvZCc7XG4iXX0=
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { assertInInjectionContext, DestroyRef, inject, Injector, isSignal, } from '@angular/core';
2+
import { toObservable } from '@angular/core/rxjs-interop';
3+
import { isObservable, of, Subject } from 'rxjs';
4+
export function rxMethod(generator, config) {
5+
if (!config?.injector) {
6+
assertInInjectionContext(rxMethod);
7+
}
8+
const injector = config?.injector ?? inject(Injector);
9+
const destroyRef = injector.get(DestroyRef);
10+
const source$ = new Subject();
11+
const sourceSub = generator(source$).subscribe();
12+
destroyRef.onDestroy(() => sourceSub.unsubscribe());
13+
const rxMethodFn = (input) => {
14+
let input$;
15+
if (isSignal(input)) {
16+
input$ = toObservable(input, { injector });
17+
}
18+
else if (isObservable(input)) {
19+
input$ = input;
20+
}
21+
else {
22+
input$ = of(input);
23+
}
24+
const instanceSub = input$.subscribe((value) => source$.next(value));
25+
sourceSub.add(instanceSub);
26+
return instanceSub;
27+
};
28+
rxMethodFn.unsubscribe = sourceSub.unsubscribe.bind(sourceSub);
29+
return rxMethodFn;
30+
}
31+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3J4anMtaW50ZXJvcC9zcmMvcngtbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQWtCLE1BQU0sTUFBTSxDQUFDO0FBTzdFLE1BQU0sVUFBVSxRQUFRLENBQ3RCLFNBQThELEVBQzlELE1BQWdDO0lBRWhDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO1FBQ3JCLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3BDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO0lBRXJDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRCxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRXBELE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBMkIsRUFBRSxFQUFFO1FBQ2pELElBQUksTUFBeUIsQ0FBQztRQUU5QixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQixNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDNUM7YUFBTSxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QixNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ2hCO2FBQU07WUFDTCxNQUFNLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BCO1FBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0IsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBQ0YsVUFBVSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LFxuICBEZXN0cm95UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpc1NpZ25hbCxcbiAgU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIFVuc3Vic2NyaWJhYmxlIH0gZnJvbSAncnhqcyc7XG5cbnR5cGUgUnhNZXRob2RJbnB1dDxJbnB1dD4gPSBJbnB1dCB8IE9ic2VydmFibGU8SW5wdXQ+IHwgU2lnbmFsPElucHV0PjtcblxudHlwZSBSeE1ldGhvZDxJbnB1dD4gPSAoKGlucHV0OiBSeE1ldGhvZElucHV0PElucHV0PikgPT4gVW5zdWJzY3JpYmFibGUpICZcbiAgVW5zdWJzY3JpYmFibGU7XG5cbmV4cG9ydCBmdW5jdGlvbiByeE1ldGhvZDxJbnB1dD4oXG4gIGdlbmVyYXRvcjogKHNvdXJjZSQ6IE9ic2VydmFibGU8SW5wdXQ+KSA9PiBPYnNlcnZhYmxlPHVua25vd24+LFxuICBjb25maWc/OiB7IGluamVjdG9yPzogSW5qZWN0b3IgfVxuKTogUnhNZXRob2Q8SW5wdXQ+IHtcbiAgaWYgKCFjb25maWc/LmluamVjdG9yKSB7XG4gICAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KHJ4TWV0aG9kKTtcbiAgfVxuXG4gIGNvbnN0IGluamVjdG9yID0gY29uZmlnPy5pbmplY3RvciA/PyBpbmplY3QoSW5qZWN0b3IpO1xuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0b3IuZ2V0KERlc3Ryb3lSZWYpO1xuICBjb25zdCBzb3VyY2UkID0gbmV3IFN1YmplY3Q8SW5wdXQ+KCk7XG5cbiAgY29uc3Qgc291cmNlU3ViID0gZ2VuZXJhdG9yKHNvdXJjZSQpLnN1YnNjcmliZSgpO1xuICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiBzb3VyY2VTdWIudW5zdWJzY3JpYmUoKSk7XG5cbiAgY29uc3QgcnhNZXRob2RGbiA9IChpbnB1dDogUnhNZXRob2RJbnB1dDxJbnB1dD4pID0+IHtcbiAgICBsZXQgaW5wdXQkOiBPYnNlcnZhYmxlPElucHV0PjtcblxuICAgIGlmIChpc1NpZ25hbChpbnB1dCkpIHtcbiAgICAgIGlucHV0JCA9IHRvT2JzZXJ2YWJsZShpbnB1dCwgeyBpbmplY3RvciB9KTtcbiAgICB9IGVsc2UgaWYgKGlzT2JzZXJ2YWJsZShpbnB1dCkpIHtcbiAgICAgIGlucHV0JCA9IGlucHV0O1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dCQgPSBvZihpbnB1dCk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFuY2VTdWIgPSBpbnB1dCQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gc291cmNlJC5uZXh0KHZhbHVlKSk7XG4gICAgc291cmNlU3ViLmFkZChpbnN0YW5jZVN1Yik7XG5cbiAgICByZXR1cm4gaW5zdGFuY2VTdWI7XG4gIH07XG4gIHJ4TWV0aG9kRm4udW5zdWJzY3JpYmUgPSBzb3VyY2VTdWIudW5zdWJzY3JpYmUuYmluZChzb3VyY2VTdWIpO1xuXG4gIHJldHVybiByeE1ldGhvZEZuO1xufVxuIl19

esm2022/src/deep-signal.mjs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { computed, untracked } from '@angular/core';
2+
export function toDeepSignal(signal) {
3+
const value = untracked(() => signal());
4+
if (!isRecord(value)) {
5+
return signal;
6+
}
7+
return new Proxy(signal, {
8+
get(target, prop) {
9+
if (!(prop in value)) {
10+
return target[prop];
11+
}
12+
if (!target[prop]) {
13+
target[prop] = computed(() => target()[prop]);
14+
}
15+
return toDeepSignal(target[prop]);
16+
},
17+
});
18+
}
19+
function isRecord(value) {
20+
return value?.constructor === Object;
21+
}
22+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1zaWduYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL2RlZXAtc2lnbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBZ0I1RCxNQUFNLFVBQVUsWUFBWSxDQUFJLE1BQWlCO0lBQy9DLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDcEIsT0FBTyxNQUF1QixDQUFDO0tBQ2hDO0lBRUQsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDdkIsR0FBRyxDQUFDLE1BQVcsRUFBRSxJQUFJO1lBQ25CLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDcEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckI7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDL0M7WUFFRCxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLEtBQWM7SUFDOUIsT0FBTyxLQUFLLEVBQUUsV0FBVyxLQUFLLE1BQU0sQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIFNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJc1Vua25vd25SZWNvcmQgfSBmcm9tICcuL3RzLWhlbHBlcnMnO1xuXG5leHBvcnQgdHlwZSBEZWVwU2lnbmFsPFQ+ID0gU2lnbmFsPFQ+ICZcbiAgKFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgID8gSXNVbmtub3duUmVjb3JkPFQ+IGV4dGVuZHMgdHJ1ZVxuICAgICAgPyB1bmtub3duXG4gICAgICA6IFJlYWRvbmx5PHtcbiAgICAgICAgICBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgICAgICA/IElzVW5rbm93blJlY29yZDxUW0tdPiBleHRlbmRzIHRydWVcbiAgICAgICAgICAgICAgPyBTaWduYWw8VFtLXT5cbiAgICAgICAgICAgICAgOiBEZWVwU2lnbmFsPFRbS10+XG4gICAgICAgICAgICA6IFNpZ25hbDxUW0tdPjtcbiAgICAgICAgfT5cbiAgICA6IHVua25vd24pO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9EZWVwU2lnbmFsPFQ+KHNpZ25hbDogU2lnbmFsPFQ+KTogRGVlcFNpZ25hbDxUPiB7XG4gIGNvbnN0IHZhbHVlID0gdW50cmFja2VkKCgpID0+IHNpZ25hbCgpKTtcbiAgaWYgKCFpc1JlY29yZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc2lnbmFsIGFzIERlZXBTaWduYWw8VD47XG4gIH1cblxuICByZXR1cm4gbmV3IFByb3h5KHNpZ25hbCwge1xuICAgIGdldCh0YXJnZXQ6IGFueSwgcHJvcCkge1xuICAgICAgaWYgKCEocHJvcCBpbiB2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wXTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0YXJnZXRbcHJvcF0pIHtcbiAgICAgICAgdGFyZ2V0W3Byb3BdID0gY29tcHV0ZWQoKCkgPT4gdGFyZ2V0KClbcHJvcF0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdG9EZWVwU2lnbmFsKHRhcmdldFtwcm9wXSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGlzUmVjb3JkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gdmFsdWU/LmNvbnN0cnVjdG9yID09PSBPYmplY3Q7XG59XG4iXX0=

esm2022/src/helpers.mjs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export function excludeKeys(obj, keys) {
2+
return Object.keys(obj).reduce((acc, key) => (keys.includes(key) ? acc : { ...acc, [key]: obj[key] }), {});
3+
}
4+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsV0FBVyxDQUd6QixHQUFRLEVBQUUsSUFBVTtJQUNwQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUM1QixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFDdEUsRUFBRSxDQUN3QixDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZXhjbHVkZUtleXM8XG4gIE9iaiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBLZXlzIGV4dGVuZHMgc3RyaW5nW11cbj4ob2JqOiBPYmosIGtleXM6IEtleXMpOiBPbWl0PE9iaiwgS2V5c1tudW1iZXJdPiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZShcbiAgICAoYWNjLCBrZXkpID0+IChrZXlzLmluY2x1ZGVzKGtleSkgPyBhY2MgOiB7IC4uLmFjYywgW2tleV06IG9ialtrZXldIH0pLFxuICAgIHt9XG4gICkgYXMgT21pdDxPYmosIEtleXNbbnVtYmVyXT47XG59XG4iXX0=

esm2022/src/index.mjs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export { patchState } from './patch-state';
2+
export { signalState } from './signal-state';
3+
export { signalStore } from './signal-store';
4+
export { signalStoreFeature, type } from './signal-store-feature';
5+
export { withComputed } from './with-computed';
6+
export { withHooks } from './with-hooks';
7+
export { withMethods } from './with-methods';
8+
export { withState } from './with-state';
9+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgUGFydGlhbFN0YXRlVXBkYXRlciwgcGF0Y2hTdGF0ZSB9IGZyb20gJy4vcGF0Y2gtc3RhdGUnO1xuZXhwb3J0IHsgc2lnbmFsU3RhdGUgfSBmcm9tICcuL3NpZ25hbC1zdGF0ZSc7XG5leHBvcnQgeyBzaWduYWxTdG9yZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlJztcbmV4cG9ydCB7IHNpZ25hbFN0b3JlRmVhdHVyZSwgdHlwZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlLWZlYXR1cmUnO1xuZXhwb3J0IHsgd2l0aENvbXB1dGVkIH0gZnJvbSAnLi93aXRoLWNvbXB1dGVkJztcbmV4cG9ydCB7IHdpdGhIb29rcyB9IGZyb20gJy4vd2l0aC1ob29rcyc7XG5leHBvcnQgeyB3aXRoTWV0aG9kcyB9IGZyb20gJy4vd2l0aC1tZXRob2RzJztcbmV4cG9ydCB7IHdpdGhTdGF0ZSB9IGZyb20gJy4vd2l0aC1zdGF0ZSc7XG4iXX0=

esm2022/src/patch-state.mjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { STATE_SIGNAL } from './signal-state';
2+
export function patchState(signalState, ...updaters) {
3+
signalState[STATE_SIGNAL].update((currentState) => updaters.reduce((nextState, updater) => ({
4+
...nextState,
5+
...(typeof updater === 'function' ? updater(nextState) : updater),
6+
}), currentState));
7+
}
8+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL3BhdGNoLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFNL0QsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsV0FBbUMsRUFDbkMsR0FBRyxRQUE0RDtJQUUvRCxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDaEQsUUFBUSxDQUFDLE1BQU0sQ0FDYixDQUFDLFNBQWdCLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLEdBQUcsU0FBUztRQUNaLEdBQUcsQ0FBQyxPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ2xFLENBQUMsRUFDRixZQUFZLENBQ2IsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNUQVRFX1NJR05BTCwgU2lnbmFsU3RhdGVNZXRhIH0gZnJvbSAnLi9zaWduYWwtc3RhdGUnO1xuXG5leHBvcnQgdHlwZSBQYXJ0aWFsU3RhdGVVcGRhdGVyPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKFxuICBzdGF0ZTogU3RhdGVcbikgPT4gUGFydGlhbDxTdGF0ZT47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFN0YXRlPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBzaWduYWxTdGF0ZTogU2lnbmFsU3RhdGVNZXRhPFN0YXRlPixcbiAgLi4udXBkYXRlcnM6IEFycmF5PFBhcnRpYWw8U3RhdGU+IHwgUGFydGlhbFN0YXRlVXBkYXRlcjxTdGF0ZT4+XG4pOiB2b2lkIHtcbiAgc2lnbmFsU3RhdGVbU1RBVEVfU0lHTkFMXS51cGRhdGUoKGN1cnJlbnRTdGF0ZSkgPT5cbiAgICB1cGRhdGVycy5yZWR1Y2UoXG4gICAgICAobmV4dFN0YXRlOiBTdGF0ZSwgdXBkYXRlcikgPT4gKHtcbiAgICAgICAgLi4ubmV4dFN0YXRlLFxuICAgICAgICAuLi4odHlwZW9mIHVwZGF0ZXIgPT09ICdmdW5jdGlvbicgPyB1cGRhdGVyKG5leHRTdGF0ZSkgOiB1cGRhdGVyKSxcbiAgICAgIH0pLFxuICAgICAgY3VycmVudFN0YXRlXG4gICAgKVxuICApO1xufVxuIl19

esm2022/src/signal-state.mjs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { signal } from '@angular/core';
2+
import { toDeepSignal } from './deep-signal';
3+
export const STATE_SIGNAL = Symbol('STATE_SIGNAL');
4+
export function signalState(initialState) {
5+
const stateSignal = signal(initialState);
6+
const deepSignal = toDeepSignal(stateSignal.asReadonly());
7+
Object.defineProperty(deepSignal, STATE_SIGNAL, {
8+
value: stateSignal,
9+
});
10+
return deepSignal;
11+
}
12+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zaWduYWwtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBYW5ELE1BQU0sVUFBVSxXQUFXLENBQ3pCLFlBQTZDO0lBRTdDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxZQUFxQixDQUFDLENBQUM7SUFDbEQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRTtRQUM5QyxLQUFLLEVBQUUsV0FBVztLQUNuQixDQUFDLENBQUM7SUFFSCxPQUFPLFVBQWdDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlZXBTaWduYWwsIHRvRGVlcFNpZ25hbCB9IGZyb20gJy4vZGVlcC1zaWduYWwnO1xuaW1wb3J0IHsgSGFzRnVuY3Rpb25LZXlzIH0gZnJvbSAnLi90cy1oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IFNUQVRFX1NJR05BTCA9IFN5bWJvbCgnU1RBVEVfU0lHTkFMJyk7XG5cbmV4cG9ydCB0eXBlIFNpZ25hbFN0YXRlTWV0YTxTdGF0ZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9IHtcbiAgW1NUQVRFX1NJR05BTF06IFdyaXRhYmxlU2lnbmFsPFN0YXRlPjtcbn07XG5cbnR5cGUgU2lnbmFsU3RhdGVDaGVjazxTdGF0ZT4gPSBIYXNGdW5jdGlvbktleXM8U3RhdGU+IGV4dGVuZHMgZmFsc2UgfCB1bmRlZmluZWRcbiAgPyB1bmtub3duXG4gIDogJ0BuZ3J4L3NpZ25hbHM6IHNpZ25hbCBzdGF0ZSBjYW5ub3QgY29udGFpbiBgRnVuY3Rpb25gIHByb3BlcnR5IG9yIG1ldGhvZCBuYW1lcyc7XG5cbnR5cGUgU2lnbmFsU3RhdGU8U3RhdGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSBEZWVwU2lnbmFsPFN0YXRlPiAmXG4gIFNpZ25hbFN0YXRlTWV0YTxTdGF0ZT47XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdGF0ZTxTdGF0ZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgaW5pdGlhbFN0YXRlOiBTdGF0ZSAmIFNpZ25hbFN0YXRlQ2hlY2s8U3RhdGU+XG4pOiBTaWduYWxTdGF0ZTxTdGF0ZT4ge1xuICBjb25zdCBzdGF0ZVNpZ25hbCA9IHNpZ25hbChpbml0aWFsU3RhdGUgYXMgU3RhdGUpO1xuICBjb25zdCBkZWVwU2lnbmFsID0gdG9EZWVwU2lnbmFsKHN0YXRlU2lnbmFsLmFzUmVhZG9ubHkoKSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWVwU2lnbmFsLCBTVEFURV9TSUdOQUwsIHtcbiAgICB2YWx1ZTogc3RhdGVTaWduYWwsXG4gIH0pO1xuXG4gIHJldHVybiBkZWVwU2lnbmFsIGFzIFNpZ25hbFN0YXRlPFN0YXRlPjtcbn1cbiJdfQ==

0 commit comments

Comments
 (0)