@quenty/tie 10.26.0 → 10.26.1-canary.a3ac54d.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [10.26.1-canary.a3ac54d.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/tie@10.26.0...@quenty/tie@10.26.1-canary.a3ac54d.0) (2025-11-22)
7
+
8
+
9
+ ### Performance Improvements
10
+
11
+ * Fix memory cleanup in Tie + Rogue Properties to try to address memory consumption ([c989f23](https://github.com/Quenty/NevermoreEngine/commit/c989f23bb7741a1f160ee341dfb542ba71775620))
12
+
13
+
14
+
15
+
16
+
6
17
  # [10.26.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/tie@10.25.1...@quenty/tie@10.26.0) (2025-11-17)
7
18
 
8
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/tie",
3
- "version": "10.26.0",
3
+ "version": "10.26.1-canary.a3ac54d.0",
4
4
  "description": "Tie allows interfaces to be defined between Lua OOP and Roblox objects.",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -28,29 +28,29 @@
28
28
  "Quenty"
29
29
  ],
30
30
  "dependencies": {
31
- "@quenty/attributeutils": "^14.20.0",
32
- "@quenty/baseobject": "^10.9.0",
33
- "@quenty/brio": "^14.20.0",
34
- "@quenty/collectionserviceutils": "^8.21.0",
35
- "@quenty/instanceutils": "^13.20.1",
36
- "@quenty/loader": "^10.9.0",
37
- "@quenty/maid": "^3.5.0",
38
- "@quenty/rx": "^13.20.0",
39
- "@quenty/rxsignal": "^7.20.0",
40
- "@quenty/statestack": "^14.22.1",
41
- "@quenty/string": "^3.3.3",
42
- "@quenty/symbol": "^3.5.0",
43
- "@quenty/table": "^3.8.0",
44
- "@quenty/tuple": "^1.6.0",
45
- "@quenty/valuebaseutils": "^13.20.1",
46
- "@quenty/valueobject": "^13.21.1"
31
+ "@quenty/attributeutils": "14.20.1-canary.a3ac54d.0",
32
+ "@quenty/baseobject": "10.9.0",
33
+ "@quenty/brio": "14.20.1-canary.a3ac54d.0",
34
+ "@quenty/collectionserviceutils": "8.21.1-canary.a3ac54d.0",
35
+ "@quenty/instanceutils": "13.20.2-canary.a3ac54d.0",
36
+ "@quenty/loader": "10.9.0",
37
+ "@quenty/maid": "3.5.0",
38
+ "@quenty/rx": "13.20.0",
39
+ "@quenty/rxsignal": "7.20.0",
40
+ "@quenty/statestack": "14.22.2-canary.a3ac54d.0",
41
+ "@quenty/string": "3.3.3",
42
+ "@quenty/symbol": "3.5.0",
43
+ "@quenty/table": "3.8.0",
44
+ "@quenty/tuple": "1.6.0",
45
+ "@quenty/valuebaseutils": "13.20.2-canary.a3ac54d.0",
46
+ "@quenty/valueobject": "13.21.2-canary.a3ac54d.0"
47
47
  },
48
48
  "devDependencies": {
49
- "@quenty/promise": "^10.12.0",
50
- "@quenty/signal": "^7.11.1"
49
+ "@quenty/promise": "10.12.0",
50
+ "@quenty/signal": "7.11.1"
51
51
  },
52
52
  "publishConfig": {
53
53
  "access": "public"
54
54
  },
55
- "gitHead": "b023a776411d1c1b6f158eb920d896d0f686b05d"
55
+ "gitHead": "a3ac54d43aafa1c37b0e8c9b6e7b20b3f3362742"
56
56
  }
@@ -25,6 +25,15 @@ function TieMethodImplementation.new(memberDefinition, parent: Instance, initial
25
25
 
26
26
  self:SetImplementation(initialValue)
27
27
 
28
+ -- Since "actualSelf" can be quite large, we clean up our stuff aggressively for GC.
29
+ self._maid:GiveTask(function()
30
+ self._maid:DoCleaning()
31
+
32
+ for key, _ in pairs(self) do
33
+ rawset(self, key, nil)
34
+ end
35
+ end)
36
+
28
37
  return self
29
38
  end
30
39
 
@@ -38,13 +38,23 @@ function TiePropertyImplementation.new(memberDefinition, folder: Folder, initial
38
38
 
39
39
  self:SetImplementation(initialValue)
40
40
 
41
+ -- Since "actualSelf" can be quite large, we clean up our stuff aggressively for GC.
42
+ self._maid:GiveTask(function()
43
+ self._maid:DoCleaning()
44
+
45
+ for key, _ in pairs(self) do
46
+ rawset(self, key, nil)
47
+ end
48
+ end)
49
+
41
50
  return self
42
51
  end
43
52
 
44
53
  function TiePropertyImplementation:SetImplementation(implementation)
45
- local maid = Maid.new()
46
54
  self._maid._current = nil
47
55
 
56
+ local maid = Maid.new()
57
+
48
58
  -- override with default value on nil case
49
59
  if implementation == nil then
50
60
  implementation = self._memberDefinition:GetDefaultValue()
@@ -26,6 +26,15 @@ function TieSignalImplementation.new(memberDefinition, implParent, initialValue)
26
26
 
27
27
  self:SetImplementation(initialValue)
28
28
 
29
+ -- Since "actualSelf" can be quite large, we clean up our stuff aggressively for GC.
30
+ self._maid:GiveTask(function()
31
+ self._maid:DoCleaning()
32
+
33
+ for key, _ in pairs(self) do
34
+ rawset(self, key, nil)
35
+ end
36
+ end)
37
+
29
38
  return self
30
39
  end
31
40
 
@@ -50,6 +50,15 @@ function TieImplementation.new(
50
50
 
51
51
  self._implParent.Parent = self._adornee
52
52
 
53
+ -- Since "actualSelf" can be quite large, we clean up our stuff aggressively for GC.
54
+ self._maid:GiveTask(function()
55
+ self._maid:DoCleaning()
56
+
57
+ for key, _ in pairs(self) do
58
+ rawset(self, key, nil)
59
+ end
60
+ end)
61
+
53
62
  return self
54
63
  end
55
64