diff --git a/rx.lua b/rx.lua index fcb5cf2..e0dae0a 100644 --- a/rx.lua +++ b/rx.lua @@ -5,7 +5,7 @@ local util = {} util.pack = table.pack or function(...) return { n = select('#', ...), ... } end -util.unpack = table.unpack or unpack +util.unpack = table.unpack or _G.unpack util.eq = function(x, y) return x == y end util.noop = function() end util.identity = function(x) return x end @@ -133,7 +133,7 @@ end --- Returns an Observable that never produces values and never completes. function Observable.never() - return Observable.create(function(observer) end) + return Observable.create(function() end) end --- Returns an Observable that immediately produces an error. @@ -657,8 +657,6 @@ function Observable:debounce(time, scheduler) local function wrap(key) return function(...) - local value = util.pack(...) - if debounced[key] then debounced[key]:unsubscribe() end @@ -1829,6 +1827,7 @@ function Observable.zip(...) table.insert(values[i], value) values[i].n = values[i].n + 1 + -- luacheck: ignore i local ready = true for i = 1, count do if values[i].n == 0 then @@ -1890,6 +1889,7 @@ end --- Schedules a function to be run on the scheduler. It is executed immediately. -- @arg {function} action - The function to execute. function ImmediateScheduler:schedule(action) + local _ = self action() end @@ -1993,8 +1993,8 @@ end -- @arg {number=0} delay - The delay, in milliseconds. -- @returns {Subscription} function TimeoutScheduler:schedule(action, delay, ...) + local _ = self local timer = require 'timer' - local subscription local handle = timer.setTimeout(delay, action, ...) return Subscription.create(function() timer.clearTimeout(handle) @@ -2315,4 +2315,4 @@ return { AsyncSubject = AsyncSubject, BehaviorSubject = BehaviorSubject, ReplaySubject = ReplaySubject -} \ No newline at end of file +} diff --git a/src/observable.lua b/src/observable.lua index ec792c5..4f9efa4 100644 --- a/src/observable.lua +++ b/src/observable.lua @@ -1,3 +1,4 @@ +local Observer = require 'observer' local util = require 'util' --- @class Observable @@ -38,7 +39,7 @@ end --- Returns an Observable that never produces values and never completes. function Observable.never() - return Observable.create(function(observer) end) + return Observable.create(function() end) end --- Returns an Observable that immediately produces an error. diff --git a/src/operators/amb.lua b/src/operators/amb.lua index f2ad5c2..f3ea3b0 100644 --- a/src/operators/amb.lua +++ b/src/operators/amb.lua @@ -1,4 +1,5 @@ local Observable = require 'observable' +local Subscription = require 'subscription' --- Given a set of Observables, produces values from only the first one to produce a value. -- @arg {Observable...} observables diff --git a/src/operators/combineLatest.lua b/src/operators/combineLatest.lua index 56d23ac..11c59a8 100644 --- a/src/operators/combineLatest.lua +++ b/src/operators/combineLatest.lua @@ -1,4 +1,5 @@ local Observable = require 'observable' +local Subscription = require 'subscription' local util = require 'util' --- Returns a new Observable that runs a combinator function on the most recent values from a set diff --git a/src/operators/debounce.lua b/src/operators/debounce.lua index 0710b25..3afd722 100644 --- a/src/operators/debounce.lua +++ b/src/operators/debounce.lua @@ -16,8 +16,6 @@ function Observable:debounce(time, scheduler) local function wrap(key) return function(...) - local value = util.pack(...) - if debounced[key] then debounced[key]:unsubscribe() end diff --git a/src/operators/flatten.lua b/src/operators/flatten.lua index e5e898f..adc54f5 100644 --- a/src/operators/flatten.lua +++ b/src/operators/flatten.lua @@ -1,5 +1,5 @@ local Observable = require 'observable' -local util = require 'util' +local Subscription = require 'subscription' --- Returns a new Observable that subscribes to the Observables produced by the original and -- produces their values. diff --git a/src/operators/merge.lua b/src/operators/merge.lua index d3ffcc5..1b543a3 100644 --- a/src/operators/merge.lua +++ b/src/operators/merge.lua @@ -1,4 +1,5 @@ local Observable = require 'observable' +local Subscription = require 'subscription' --- Returns a new Observable that produces the values produced by all the specified Observables in -- the order they are produced. diff --git a/src/operators/sample.lua b/src/operators/sample.lua index 39afc2a..80a1e3c 100644 --- a/src/operators/sample.lua +++ b/src/operators/sample.lua @@ -1,4 +1,5 @@ local Observable = require 'observable' +local Subscription = require 'subscription' local util = require 'util' --- Returns a new Observable that produces its most recent value every time the specified observable diff --git a/src/operators/switch.lua b/src/operators/switch.lua index 8cdea08..672a182 100644 --- a/src/operators/switch.lua +++ b/src/operators/switch.lua @@ -1,4 +1,5 @@ local Observable = require 'observable' +local Subscription = require 'subscription' --- Given an Observable that produces Observables, returns an Observable that produces the values -- produced by the most recently produced Observable. diff --git a/src/operators/with.lua b/src/operators/with.lua index 85974f6..65c59bd 100644 --- a/src/operators/with.lua +++ b/src/operators/with.lua @@ -1,4 +1,5 @@ local Observable = require 'observable' +local Subscription = require 'subscription' local util = require 'util' --- Returns an Observable that produces values from the original along with the most recently diff --git a/src/operators/zip.lua b/src/operators/zip.lua index 62ff6a9..ff37466 100644 --- a/src/operators/zip.lua +++ b/src/operators/zip.lua @@ -1,4 +1,5 @@ local Observable = require 'observable' +local Subscription = require 'subscription' local util = require 'util' --- Returns an Observable that merges the values produced by the source Observables by grouping them @@ -26,6 +27,7 @@ function Observable.zip(...) table.insert(values[i], value) values[i].n = values[i].n + 1 + -- luacheck: ignore i local ready = true for i = 1, count do if values[i].n == 0 then diff --git a/src/schedulers/immediatescheduler.lua b/src/schedulers/immediatescheduler.lua index 570a696..1dd3adc 100644 --- a/src/schedulers/immediatescheduler.lua +++ b/src/schedulers/immediatescheduler.lua @@ -15,6 +15,7 @@ end --- Schedules a function to be run on the scheduler. It is executed immediately. -- @arg {function} action - The function to execute. function ImmediateScheduler:schedule(action) + local _ = self action() end diff --git a/src/schedulers/timeoutscheduler.lua b/src/schedulers/timeoutscheduler.lua index 7a46057..f70cccc 100644 --- a/src/schedulers/timeoutscheduler.lua +++ b/src/schedulers/timeoutscheduler.lua @@ -1,4 +1,5 @@ local Subscription = require 'subscription' +local util = require 'util' --- @class TimeoutScheduler -- @description A scheduler that uses luvit's timer library to schedule events on an event loop. @@ -17,8 +18,8 @@ end -- @arg {number=0} delay - The delay, in milliseconds. -- @returns {Subscription} function TimeoutScheduler:schedule(action, delay, ...) + local _ = self local timer = require 'timer' - local subscription local handle = timer.setTimeout(delay, action, ...) return Subscription.create(function() timer.clearTimeout(handle) diff --git a/src/util.lua b/src/util.lua index 9c82300..d7d99ed 100644 --- a/src/util.lua +++ b/src/util.lua @@ -1,7 +1,7 @@ local util = {} util.pack = table.pack or function(...) return { n = select('#', ...), ... } end -util.unpack = table.unpack or unpack +util.unpack = table.unpack or _G.unpack util.eq = function(x, y) return x == y end util.noop = function() end util.identity = function(x) return x end diff --git a/tools/build.lua b/tools/build.lua index 6cac333..66cfabf 100644 --- a/tools/build.lua +++ b/tools/build.lua @@ -136,6 +136,6 @@ end local file = io.open(destination, 'w') if file then - file:write(table.concat(components, '')) + file:write(table.concat(components, ''), "\n") file:close() end