Skip to content

Commit 6bb6cb5

Browse files
authored
tech(entityNode): Remove onChange attribute (#73)
1 parent 2c0ca28 commit 6bb6cb5

File tree

3 files changed

+12
-18
lines changed

3 files changed

+12
-18
lines changed

Sources/CohesionKit/EntityStore.swift

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public class EntityStore {
137137
/// - Parameter named: the alias to look for
138138
public func find<T: Identifiable>(named: AliasKey<T>) -> EntityObserver<T?> {
139139
identityQueue.sync {
140-
let node = refAliases[safe: named, onChange: registry.enqueueChange(for:)]
140+
let node = refAliases[safe: named]
141141
return EntityObserver(alias: node, registry: registry)
142142
}
143143
}
@@ -146,15 +146,13 @@ public class EntityStore {
146146
/// - Returns: an observer returning the alias value. Note that the value will be an Array
147147
public func find<C: Collection>(named: AliasKey<C>) -> EntityObserver<C?> {
148148
identityQueue.sync {
149-
let node = refAliases[safe: named, onChange: registry.enqueueChange(for:)]
149+
let node = refAliases[safe: named]
150150
return EntityObserver(alias: node, registry: registry)
151151
}
152152
}
153153

154154
func nodeStore<T: Identifiable>(in node: EntityNode<T>? = nil, entity: T, modifiedAt: Stamp?) -> EntityNode<T> {
155-
let node = node ?? storage[entity, new: EntityNode(entity, modifiedAt: nil) { [registry] in
156-
registry.enqueueChange(for: $0)
157-
}]
155+
let node = node ?? storage[entity, new: EntityNode(entity, modifiedAt: nil)]
158156

159157
guard !registry.hasPendingChange(for: node) else {
160158
return node
@@ -175,9 +173,7 @@ public class EntityStore {
175173
}
176174

177175
func nodeStore<T: Aggregate>(in node: EntityNode<T>? = nil, entity: T, modifiedAt: Stamp?) -> EntityNode<T> {
178-
let node = node ?? storage[entity, new: EntityNode(entity, modifiedAt: nil) { [registry] in
179-
registry.enqueueChange(for: $0)
180-
}]
176+
let node = node ?? storage[entity, new: EntityNode(entity, modifiedAt: nil)]
181177

182178
guard !registry.hasPendingChange(for: node) else {
183179
return node
@@ -227,7 +223,7 @@ public class EntityStore {
227223
}
228224

229225
private func storeAlias<T>(content: T?, key: AliasKey<T>, modifiedAt: Stamp?) {
230-
let aliasNode = refAliases[safe: key, onChange: registry.enqueueChange(for:)]
226+
let aliasNode = refAliases[safe: key]
231227
let aliasContainer = AliasContainer(key: key, content: content)
232228

233229
_ = nodeStore(in: aliasNode, entity: aliasContainer, modifiedAt: modifiedAt)

Sources/CohesionKit/Storage/AliasStorage.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ extension AliasStorage {
77
set { self[buildKey(for: T.self, key: aliasKey)] = newValue }
88
}
99

10-
subscript<T>(safe key: AliasKey<T>, onChange onChange: ((EntityNode<AliasContainer<T>>) -> Void)? = nil) -> EntityNode<AliasContainer<T>> {
10+
subscript<T>(safe key: AliasKey<T>) -> EntityNode<AliasContainer<T>> {
1111
mutating get {
1212
let storeKey = buildKey(for: T.self, key: key)
13-
return self[key: key, default: EntityNode(AliasContainer(key: key), key: storeKey, modifiedAt: nil, onChange: onChange)]
13+
return self[key: key, default: EntityNode(AliasContainer(key: key), key: storeKey, modifiedAt: nil)]
1414
}
1515
}
1616

Sources/CohesionKit/Storage/EntityNode.swift

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,27 +59,25 @@ class EntityNode<T>: AnyEntityNode {
5959

6060
let storageKey: String
6161

62-
private let onChange: ((EntityNode<T>) -> Void)?
6362
/// last time the ref.value was changed. Any subsequent change must have a higher value to be applied
6463
/// if nil ref has no stamp and any change will be accepted
6564
private var modifiedAt: Stamp?
6665
/// entity children
6766
private(set) var children: [PartialKeyPath<T>: SubscribedChild] = [:]
6867

69-
init(ref: Observable<T>, key: String, modifiedAt: Stamp?, onChange: ((EntityNode<T>) -> Void)? = nil) {
68+
init(ref: Observable<T>, key: String, modifiedAt: Stamp?) {
7069
self.ref = ref
7170
self.modifiedAt = modifiedAt
72-
self.onChange = onChange
7371
self.storageKey = key
7472
}
7573

76-
convenience init(_ entity: T, key: String, modifiedAt: Stamp?, onChange: ((EntityNode<T>) -> Void)? = nil) {
77-
self.init(ref: Observable(value: entity), key: key, modifiedAt: modifiedAt, onChange: onChange)
74+
convenience init(_ entity: T, key: String, modifiedAt: Stamp?) {
75+
self.init(ref: Observable(value: entity), key: key, modifiedAt: modifiedAt)
7876
}
7977

80-
convenience init(_ entity: T, modifiedAt: Stamp?, onChange: ((EntityNode<T>) -> Void)? = nil) where T: Identifiable {
78+
convenience init(_ entity: T, modifiedAt: Stamp?) where T: Identifiable {
8179
let key = "\(T.self)-\(entity.id)"
82-
self.init(entity, key: key, modifiedAt: modifiedAt, onChange: onChange)
80+
self.init(entity, key: key, modifiedAt: modifiedAt)
8381
}
8482

8583
/// change the entity to a new value. If modifiedAt is nil or > to previous date update the value will be changed

0 commit comments

Comments
 (0)