Skip to content

Commit acb7b8b

Browse files
committed
rename to signals
Will try to grab: https://pub.dev/packages/signals
1 parent 715ed6e commit acb7b8b

13 files changed

+78
-49
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
## 0.0.1
22

3-
* TODO: Describe initial release.
3+
- Adding `computed`, `effect`, `signal`
4+
- Adding tests
5+
- Adding web example

example/pubspec.lock

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -177,13 +177,6 @@ packages:
177177
url: "https://pub.dev"
178178
source: hosted
179179
version: "3.0.3"
180-
dart_signals:
181-
dependency: "direct main"
182-
description:
183-
path: ".."
184-
relative: true
185-
source: path
186-
version: "0.0.1"
187180
dart_style:
188181
dependency: transitive
189182
description:
@@ -392,6 +385,13 @@ packages:
392385
url: "https://pub.dev"
393386
source: hosted
394387
version: "1.0.4"
388+
signals:
389+
dependency: "direct main"
390+
description:
391+
path: ".."
392+
relative: true
393+
source: path
394+
version: "0.0.1"
395395
source_maps:
396396
dependency: transitive
397397
description:

example/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ environment:
77
sdk: ^3.1.3
88

99
dependencies:
10-
dart_signals:
10+
signals:
1111
path: ..
1212

1313
dev_dependencies:

example/web/main.dart

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'dart:html';
22

3-
import 'package:dart_signals/dart_signals.dart';
3+
import 'package:signals/signals.dart';
44

55
typedef Task = ({String title, bool completed});
66

@@ -12,10 +12,10 @@ void main() {
1212
final taskFilter = document.getElementById("taskFilter")!;
1313
final taskCounter = document.getElementById("taskCounter")!;
1414

15-
final tasks = createSignal<List<Task>>([]);
16-
final filter = createSignal("all");
15+
final tasks = signal<List<Task>>([]);
16+
final filter = signal("all");
1717

18-
final filteredTasks = createComputed(() {
18+
final filteredTasks = computed(() {
1919
final currentFilter = filter.value;
2020
final currentTasks = tasks.value;
2121
if (currentFilter == "all") {
@@ -27,15 +27,15 @@ void main() {
2727
}
2828
});
2929

30-
final taskCount = createComputed(() {
30+
final taskCount = computed(() {
3131
return tasks.value.length;
3232
});
3333

34-
final activeTaskCount = createComputed(() {
34+
final activeTaskCount = computed(() {
3535
return tasks.value.where((task) => !task.completed).length;
3636
});
3737

38-
final completedTaskCount = createComputed(() {
38+
final completedTaskCount = computed(() {
3939
return tasks.value.where((task) => task.completed).length;
4040
});
4141

@@ -54,7 +54,7 @@ void main() {
5454
filter.value = target.value ?? '';
5555
});
5656

57-
createEffect(() {
57+
effect(() {
5858
final currentTasks = filteredTasks.value;
5959
todoList.innerHtml = "";
6060
for (var index = 0; index < currentTasks.length; index++) {
@@ -78,7 +78,7 @@ void main() {
7878
}
7979
});
8080

81-
createEffect(() {
81+
effect(() {
8282
taskCounter.text = '''
8383
Total: ${taskCount.value},
8484
Active: ${activeTaskCount.value},

lib/dart_signals.dart

Lines changed: 0 additions & 11 deletions
This file was deleted.

lib/signals.dart

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
library dart_signals;
2+
3+
import 'src/signals.dart';
4+
export 'src/signals.dart';
5+
6+
/// Creates a [Signal] with the given [initialValue].
7+
///
8+
/// ```dart
9+
/// final count = signal(0);
10+
/// final multiplier = signal(2);
11+
/// ```
12+
Signal<T> signal<T>(T initialValue) {
13+
return Signal<T>(initialValue);
14+
}
15+
16+
/// Creates a [Computed] with the given [computeFn].
17+
///
18+
/// ```dart
19+
/// final multipliedCount = computed(() {
20+
/// return count.value * multiplier.value;
21+
/// });
22+
Computed<T> computed<T>(ComputedCallback<T> computeFn) {
23+
return Computed<T>(computeFn);
24+
}
25+
26+
/// Creates an [Effect] with the given [effectFn].
27+
///
28+
/// ```dart
29+
/// effect(() {
30+
/// print(
31+
/// 'Effect called: Count is ${count.value} and multiplier is ${multiplier.value}');
32+
/// });
33+
/// ```
34+
Effect effect(EffectCallback effectFn) {
35+
return Effect(effectFn);
36+
}

lib/src/computed.dart

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
part of '../dart_signals.dart';
1+
part of 'signals.dart';
22

33
typedef ComputedCallback<T> = T Function();
44

@@ -40,6 +40,3 @@ class Computed<T> extends _Notifier implements _Listenable {
4040
}
4141
}
4242

43-
Computed<T> createComputed<T>(ComputedCallback<T> computeFn) {
44-
return Computed<T>(computeFn);
45-
}

lib/src/effect.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
part of '../dart_signals.dart';
1+
part of 'signals.dart';
22

33
typedef EffectCallback = void Function();
44

5+
final _effectQueue = Queue<Effect>();
6+
57
class Effect implements _Listenable {
68
Effect(this._effectFn) {
79
_isStale = true;
@@ -35,7 +37,3 @@ void _executeEffects() {
3537
effect._execute();
3638
}
3739
}
38-
39-
Effect createEffect(EffectCallback effectFn) {
40-
return Effect(effectFn);
41-
}

lib/src/listenable.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
part of '../dart_signals.dart';
1+
part of 'signals.dart';
2+
3+
_Listenable? _currentAccessed;
24

35
abstract class _Listenable {
46
void _update();

lib/src/signal.dart

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
part of '../dart_signals.dart';
1+
part of 'signals.dart';
22

33
class Signal<T> extends _Notifier {
44
Signal(this._value);
@@ -21,6 +21,3 @@ class Signal<T> extends _Notifier {
2121
}
2222
}
2323

24-
Signal<T> createSignal<T>(T initialValue) {
25-
return Signal<T>(initialValue);
26-
}

lib/src/signals.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import 'dart:collection';
2+
3+
part 'listenable.dart';
4+
part 'signal.dart';
5+
part 'computed.dart';
6+
part 'effect.dart';
7+
8+

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: dart_signals
1+
name: signals
22
description: Signal, Computed and Effect built with dart
33
version: 0.0.1
44

test/dart_signals_test.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
import 'package:test/test.dart';
22

3-
import 'package:dart_signals/dart_signals.dart';
3+
import 'package:signals/signals.dart';
44

55
void main() {
66
test('init', () {
77
// Create signals
8-
final count = createSignal(0);
9-
final multiplier = createSignal(2);
8+
final count = signal(0);
9+
final multiplier = signal(2);
1010

1111
// Creating a computed value
12-
final multipliedCount = createComputed(() {
12+
final multipliedCount = computed(() {
1313
return count.value * multiplier.value;
1414
});
1515

16-
createEffect(() {
16+
effect(() {
1717
print(
1818
'Effect called: Count is ${count.value} and multiplier is ${multiplier.value}');
1919
});

0 commit comments

Comments
 (0)