|
@@ -249,6 +249,10 @@ end
|
|
-- @arg {function} factory - A function that returns an Observable.
|
|
-- @arg {function} factory - A function that returns an Observable.
|
|
-- @returns {Observable}
|
|
-- @returns {Observable}
|
|
function Observable.defer(fn)
|
|
function Observable.defer(fn)
|
|
|
|
+ if not fn or type(fn) ~= 'function' then
|
|
|
|
+ error('Expected a function')
|
|
|
|
+ end
|
|
|
|
+
|
|
return setmetatable({
|
|
return setmetatable({
|
|
subscribe = function(_, ...)
|
|
subscribe = function(_, ...)
|
|
local observable = fn()
|
|
local observable = fn()
|
|
@@ -396,6 +400,10 @@ end
|
|
-- values.
|
|
-- values.
|
|
-- @arg {number} size - The size of the buffer.
|
|
-- @arg {number} size - The size of the buffer.
|
|
function Observable:buffer(size)
|
|
function Observable:buffer(size)
|
|
|
|
+ if not size or type(size) ~= 'number' then
|
|
|
|
+ error('Expected a number')
|
|
|
|
+ end
|
|
|
|
+
|
|
return Observable.create(function(observer)
|
|
return Observable.create(function(observer)
|
|
local buffer = {}
|
|
local buffer = {}
|
|
|
|
|
|
@@ -802,6 +810,10 @@ end
|
|
-- @arg {number} index - The index of the item, with an index of 1 representing the first.
|
|
-- @arg {number} index - The index of the item, with an index of 1 representing the first.
|
|
-- @returns {Observable}
|
|
-- @returns {Observable}
|
|
function Observable:elementAt(index)
|
|
function Observable:elementAt(index)
|
|
|
|
+ if not index or type(index) ~= 'number' then
|
|
|
|
+ error('Expected a number')
|
|
|
|
+ end
|
|
|
|
+
|
|
return Observable.create(function(observer)
|
|
return Observable.create(function(observer)
|
|
local subscription
|
|
local subscription
|
|
local i = 1
|
|
local i = 1
|
|
@@ -1354,6 +1366,10 @@ end
|
|
-- @arg {number} count - The number of items to omit from the end.
|
|
-- @arg {number} count - The number of items to omit from the end.
|
|
-- @returns {Observable}
|
|
-- @returns {Observable}
|
|
function Observable:skipLast(count)
|
|
function Observable:skipLast(count)
|
|
|
|
+ if not count or type(count) ~= 'number' then
|
|
|
|
+ error('Expected a number')
|
|
|
|
+ end
|
|
|
|
+
|
|
local buffer = {}
|
|
local buffer = {}
|
|
return Observable.create(function(observer)
|
|
return Observable.create(function(observer)
|
|
local function emit()
|
|
local function emit()
|
|
@@ -1550,6 +1566,10 @@ end
|
|
-- @arg {number} count - The number of elements to produce.
|
|
-- @arg {number} count - The number of elements to produce.
|
|
-- @returns {Observable}
|
|
-- @returns {Observable}
|
|
function Observable:takeLast(count)
|
|
function Observable:takeLast(count)
|
|
|
|
+ if not count or type(count) ~= 'number' then
|
|
|
|
+ error('Expected a number')
|
|
|
|
+ end
|
|
|
|
+
|
|
return Observable.create(function(observer)
|
|
return Observable.create(function(observer)
|
|
local buffer = {}
|
|
local buffer = {}
|
|
|
|
|
|
@@ -1708,6 +1728,10 @@ end
|
|
-- of the most recent values as multiple arguments to onNext.
|
|
-- of the most recent values as multiple arguments to onNext.
|
|
-- @returns {Observable}
|
|
-- @returns {Observable}
|
|
function Observable:window(size)
|
|
function Observable:window(size)
|
|
|
|
+ if not size or type(size) ~= 'number' then
|
|
|
|
+ error('Expected a number')
|
|
|
|
+ end
|
|
|
|
+
|
|
return Observable.create(function(observer)
|
|
return Observable.create(function(observer)
|
|
local window = {}
|
|
local window = {}
|
|
|
|
|