@stdlib/esm
Version:
ES module distribution for Stdlib, a standard library for JavaScript and Node.js.
3 lines • 2.37 kB
JavaScript
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0
import i from"./../../utils/define-nonenumerable-read-only-property.js";import r from"./../../symbol/iterator.js";import o from"./../../math/base/special/floor.js";import e from"./../../assert/is-plain-object.js";import t from"./../../assert/has-own-property.js";import n from"./../../assert/is-number.js";import a from"./../../assert/is-integer.js";import p from"./../../assert/is-positive-integer.js";import s from"./../../assert/is-nonnegative-integer.js";import m from"./../../math/base/assert/is-nan.js";var u=e,d=t,f=n.isPrimitive,l=a.isPrimitive,v=p.isPrimitive,b=s.isPrimitive,g=m;function j(i,r){return u(r)?d(r,"duration")&&(i.duration=r.duration,!v(r.duration))?new TypeError("invalid option. `duration` option must be a positive integer. Option: `"+r.duration+"`."):d(r,"period")&&(i.period=r.period,!v(r.period))?new TypeError("invalid option. `period` option must be a positive integer. Option: `"+r.period+"`."):d(r,"min")&&(i.min=r.min,!f(r.min)||g(r.min))?new TypeError("invalid option. `min` option must be a number. Option: `"+r.min+"`."):d(r,"max")&&(i.max=r.max,!f(r.max)||g(r.max))?new TypeError("invalid option. `max` option must be a number. Option: `"+r.max+"`."):d(r,"offset")&&(i.offset=r.offset,!l(r.offset))?new TypeError("invalid option. `offset` option must be an integer. Option: `"+r.offset+"`."):d(r,"iter")&&(i.iter=r.iter,!b(r.iter))?new TypeError("invalid option. `iter` option must be a nonnegative integer. Option: `"+r.iter+"`."):null:new TypeError("invalid argument. Options argument must be an object. Value: `"+r+"`.")}var w=i,x=r,y=o,h=j;function c(i){var r,o,e,t,n,a;if(r={duration:-1,period:10,min:0,max:1,offset:0,iter:1e308},arguments.length&&(t=h(r,i)))throw t;if(-1===r.duration&&(r.duration=y(r.period/2)),r.duration>=r.period)throw new RangeError("invalid option. `duration` option must be less than the period. Option: `"+r.duration+"`.");return(n=(r.period-r.offset)%r.period)<0&&(n+=r.period),n-=1,a=0,w(o={},"next",p),w(o,"return",s),x&&w(o,x,m),o;function p(){return a+=1,e||a>r.iter?{done:!0}:{value:(n=(n+1)%r.period)<r.duration?r.max:r.min,done:!1}}function s(i){return e=!0,arguments.length?{value:i,done:!0}:{done:!0}}function m(){return c(r)}}var E=c;export default E;
//# sourceMappingURL=pulse.js.map