@quenty/rxsignal 1.5.0 → 2.0.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,20 @@
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
+ # [2.0.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/rxsignal@1.5.0...@quenty/rxsignal@2.0.0) (2023-10-11)
7
+
8
+
9
+ * fix!: Make RxSignal not automatically skip first input ([6fe7586](https://github.com/Quenty/NevermoreEngine/commit/6fe7586029ea4753b1de7a8633c7d5af15bab420))
10
+
11
+
12
+ ### BREAKING CHANGES
13
+
14
+ * RxSignal used to export a different value
15
+
16
+
17
+
18
+
19
+
6
20
  # [1.5.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/rxsignal@1.4.0...@quenty/rxsignal@1.5.0) (2023-09-21)
7
21
 
8
22
  **Note:** Version bump only for package @quenty/rxsignal
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/rxsignal",
3
- "version": "1.5.0",
3
+ "version": "2.0.0",
4
4
  "description": "Signal API for RxObservables",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -25,11 +25,11 @@
25
25
  "Quenty"
26
26
  ],
27
27
  "dependencies": {
28
- "@quenty/loader": "^6.3.0",
29
- "@quenty/rx": "^7.16.0"
28
+ "@quenty/loader": "^7.0.0",
29
+ "@quenty/rx": "^8.0.0"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "public"
33
33
  },
34
- "gitHead": "fd634d0ed1918fc14bae8501aff1cc099d0537e7"
34
+ "gitHead": "fdeae46099587019ec5fc15317dc673aed379400"
35
35
  }
@@ -5,6 +5,7 @@
5
5
  local require = require(script.Parent.loader).load(script)
6
6
 
7
7
  local Rx = require("Rx")
8
+ local Observable = require("Observable")
8
9
 
9
10
  local RxSignal = {}
10
11
  RxSignal.ClassName = "RxSignal"
@@ -13,7 +14,7 @@ RxSignal.__index = RxSignal
13
14
  --[=[
14
15
  Converts an observable to the Signal interface
15
16
 
16
- @param observable Observable<T>
17
+ @param observable Observable<T> | () -> Observable<T>
17
18
  @return RxSignal<T>
18
19
  ]=]
19
20
  function RxSignal.new(observable)
@@ -21,19 +22,33 @@ function RxSignal.new(observable)
21
22
 
22
23
  local self = setmetatable({}, RxSignal)
23
24
 
24
- self._observable = observable:Pipe({
25
- Rx.skip(1);
26
- })
25
+ self._observable = observable
27
26
 
28
27
  return self
29
28
  end
30
29
 
31
30
  function RxSignal:Connect(callback)
32
- return self._observable:Subscribe(callback)
31
+ return self:_getObservable():Subscribe(callback)
32
+ end
33
+
34
+ function RxSignal:_getObservable()
35
+ if Observable.isObservable(self._observable) then
36
+ return self._observable
37
+ end
38
+
39
+ if type(self._observable) == "function" then
40
+ local result = self._observable()
41
+
42
+ assert(Observable.isObservable(result), "Result should be observable")
43
+
44
+ return result
45
+ else
46
+ error("Could not convert self._observable to observable")
47
+ end
33
48
  end
34
49
 
35
50
  function RxSignal:Once(callback)
36
- return self._observable:Pipe({
51
+ return self:_getObservable():Pipe({
37
52
  Rx.take(1);
38
53
  }):Subscribe(callback)
39
54
  end