Skip to content

Commit

Permalink
feat: Added getSignalName() function
Browse files Browse the repository at this point in the history
  • Loading branch information
mnasyrov committed Feb 16, 2024
1 parent 42f4ca4 commit 26da1d4
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/core/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ export type AtomEffectNode = ReactiveNode &

export type SignalNode<T> = ReactiveNode &
Readonly<{
name?: string;
sync?: boolean;
isDestroyed: boolean;

Expand Down
12 changes: 11 additions & 1 deletion src/core/signal.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
import { flushMicrotasks } from '../test/testUtils';

import { effect } from './effect';
import { signal } from './signal';
import { getSignalName, signal } from './signal';

describe('getSignalName()', () => {
it('should return a name of writable and read-only atoms', () => {
const namelessSignal = signal();
expect(getSignalName(namelessSignal)).toBe(undefined);

const namedSignal = signal({ name: 'foo' });
expect(getSignalName(namedSignal)).toBe('foo');
});
});

describe('signal()', () => {
it('should return an event emitter', async () => {
Expand Down
10 changes: 9 additions & 1 deletion src/core/signal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,20 @@ export function getSignalNode<T>(value: Signal<T>): SignalNode<T> {
return value[SIGNAL_SYMBOL] as SignalNode<T>;
}

/**
* Returns a name of the given Atom.
*/
export function getSignalName(value: Signal<any>): string | undefined {
return getSignalNode(value).name;
}

export function destroySignal(emitter: Signal<any>): void {
getSignalNode(emitter).destroy();
}

class SignalImpl<T> implements SignalNode<T> {
private readonly name?: string;
readonly name?: string;

private onDestroy?: () => void;
private readonly consumerEffects = new Set<WeakRef<SignalEffectNode<T>>>();

Expand Down

0 comments on commit 26da1d4

Please sign in to comment.