Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

stack-base-iterator

Package Overview
Dependencies
Maintainers
1
Versions
89
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

stack-base-iterator - npm Package Compare versions

Comparing version
1.2.9
to
1.2.10
+1
-1
dist/cjs/index.d.cts

@@ -17,5 +17,5 @@ import type { Callback, DefaultFunction, EachFunction, ForEachOptions, StackOptions } from './types.js';

next(...[value]: [] | [unknown]): Promise<IteratorResult<T, unknown>>;
forEach(fn: EachFunction<T>, options: ForEachOptions | Callback, callback?: Callback): undefined | Promise<unknown>;
forEach(fn: EachFunction<T>, options?: ForEachOptions | Callback, callback?: Callback): undefined | Promise<unknown>;
end(err?: Error): void;
destroy(err?: Error): void;
}

@@ -17,5 +17,5 @@ import type { Callback, DefaultFunction, EachFunction, ForEachOptions, StackOptions } from './types.js';

next(...[value]: [] | [unknown]): Promise<IteratorResult<T, unknown>>;
forEach(fn: EachFunction<T>, options: ForEachOptions | Callback, callback?: Callback): undefined | Promise<unknown>;
forEach(fn: EachFunction<T>, options?: ForEachOptions | Callback, callback?: Callback): undefined | Promise<unknown>;
end(err?: Error): void;
destroy(err?: Error): void;
}

@@ -1,1 +0,1 @@

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/stack-base-iterator/src/index.ts"],"sourcesContent":["import once from 'call-once-fn';\nimport FIFO from 'fifo';\n\nimport createProcesor from './createProcessor.js';\nimport drainStack from './drainStack.js';\nimport fifoRemove from './fifoRemove.js';\nimport processOrQueue from './processOrQueue.js';\n\nimport type { Callback, DefaultFunction, EachFunction, ForEachOptions, ProcessorOptions, StackOptions } from './types.js';\n\nexport type * from './types.js';\nexport default class StackBaseIterator<T> implements AsyncIterator<T> {\n protected options: StackOptions;\n protected stack: unknown[];\n protected queued: DefaultFunction[];\n protected processors: DefaultFunction[];\n protected entries: unknown[];\n protected links: unknown[];\n protected processing: DefaultFunction[];\n protected destroyed: boolean;\n protected done: boolean;\n\n constructor(options: StackOptions = {}) {\n this.options = { ...options };\n this.options.error =\n options.error ||\n function defaultError(err) {\n return !!err; // fail on errors\n };\n\n this.queued = FIFO() as unknown as DefaultFunction[];\n this.processors = FIFO() as unknown as DefaultFunction[];\n this.stack = FIFO() as unknown as unknown[];\n this.entries = FIFO() as unknown as unknown[];\n this.links = FIFO() as unknown as unknown[];\n this.processing = FIFO() as unknown as DefaultFunction[];\n }\n\n isDone() {\n return this.done;\n }\n\n push(item) {\n if (this.done) return console.log('Attempting to push on a done iterator');\n this.stack.push(item);\n drainStack(this);\n }\n\n next(...[value]: [] | [unknown]): Promise<IteratorResult<T, unknown>> {\n const callback = value as Callback;\n if (typeof callback === 'function') return processOrQueue(this, once(callback));\n\n return new Promise((resolve, reject) => {\n this.next((err, result) => (err ? reject(err) : resolve(result)));\n });\n }\n\n forEach(fn: EachFunction<T>, options: ForEachOptions | Callback, callback?: Callback): undefined | Promise<unknown> {\n if (typeof fn !== 'function') throw new Error('Missing each function');\n if (typeof options === 'function') {\n callback = options as Callback;\n options = {};\n }\n\n if (typeof callback === 'function') {\n if (this.done) {\n callback(null, true);\n return;\n }\n options = options || {};\n const processorOptions: ProcessorOptions<T> = {\n each: fn,\n callbacks: options.callbacks || false,\n concurrency: options.concurrency || 1,\n limit: options.limit || Infinity,\n error:\n options.error ||\n function defaultError() {\n return true; // default is exit on error\n },\n total: 0,\n counter: 0,\n stop: () => {\n return this.done || this.queued.length >= this.stack.length;\n },\n };\n\n let processor = createProcesor<T>(this.next.bind(this), processorOptions, (err) => {\n if (!this.destroyed) fifoRemove(this.processors, processor);\n processor = null;\n options = null;\n const done = !this.stack.length;\n if ((err || done) && !this.done) this.end(err);\n return callback(err, this.done || done);\n });\n this.processors.push(processor);\n processor();\n return;\n }\n\n return new Promise((resolve, reject) => this.forEach(fn, options, (err, done) => (err ? reject(err) : resolve(done))));\n }\n\n end(err?: Error) {\n if (this.done) return;\n this.done = true;\n while (this.processors.length) this.processors.pop()(err || true);\n while (this.processing.length) err ? this.processing.pop()(err) : this.processing.pop()(null, null);\n while (this.queued.length) err ? this.queued.pop()(err) : this.queued.pop()(null, null);\n while (this.stack.length) this.stack.pop();\n }\n\n destroy(err?: Error) {\n if (this.destroyed) throw new Error('Already destroyed');\n this.destroyed = true;\n this.end(err);\n }\n}\n\nif (typeof Symbol !== 'undefined' && Symbol.asyncIterator) {\n StackBaseIterator.prototype[Symbol.asyncIterator] = function asyncIterator() {\n const self = this;\n return {\n next: function next() {\n return self.next().then(function nextCallback(value) {\n return Promise.resolve({ value: value, done: value === null });\n });\n },\n destroy: function destroy() {\n self.destroy();\n return Promise.resolve();\n },\n };\n };\n}\n"],"names":["StackBaseIterator","options","error","defaultError","err","queued","FIFO","processors","stack","entries","links","processing","isDone","done","push","item","console","log","drainStack","next","value","callback","processOrQueue","once","Promise","resolve","reject","result","forEach","fn","Error","processorOptions","each","callbacks","concurrency","limit","Infinity","total","counter","stop","length","processor","createProcesor","bind","destroyed","fifoRemove","end","pop","destroy","Symbol","asyncIterator","prototype","self","then","nextCallback"],"mappings":"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"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/stack-base-iterator/src/index.ts"],"sourcesContent":["import once from 'call-once-fn';\nimport FIFO from 'fifo';\n\nimport createProcesor from './createProcessor.js';\nimport drainStack from './drainStack.js';\nimport fifoRemove from './fifoRemove.js';\nimport processOrQueue from './processOrQueue.js';\n\nimport type { Callback, DefaultFunction, EachFunction, ForEachOptions, ProcessorOptions, StackOptions } from './types.js';\n\nexport type * from './types.js';\nexport default class StackBaseIterator<T> implements AsyncIterator<T> {\n protected options: StackOptions;\n protected stack: unknown[];\n protected queued: DefaultFunction[];\n protected processors: DefaultFunction[];\n protected entries: unknown[];\n protected links: unknown[];\n protected processing: DefaultFunction[];\n protected destroyed: boolean;\n protected done: boolean;\n\n constructor(options: StackOptions = {}) {\n this.options = { ...options };\n this.options.error =\n options.error ||\n function defaultError(err) {\n return !!err; // fail on errors\n };\n\n this.queued = FIFO() as unknown as DefaultFunction[];\n this.processors = FIFO() as unknown as DefaultFunction[];\n this.stack = FIFO() as unknown as unknown[];\n this.entries = FIFO() as unknown as unknown[];\n this.links = FIFO() as unknown as unknown[];\n this.processing = FIFO() as unknown as DefaultFunction[];\n }\n\n isDone() {\n return this.done;\n }\n\n push(item) {\n if (this.done) return console.log('Attempting to push on a done iterator');\n this.stack.push(item);\n drainStack(this);\n }\n\n next(...[value]: [] | [unknown]): Promise<IteratorResult<T, unknown>> {\n const callback = value as Callback;\n if (typeof callback === 'function') return processOrQueue(this, once(callback));\n\n return new Promise((resolve, reject) => {\n this.next((err, result) => (err ? reject(err) : resolve(result)));\n });\n }\n\n forEach(fn: EachFunction<T>, options?: ForEachOptions | Callback, callback?: Callback): undefined | Promise<unknown> {\n if (typeof fn !== 'function') throw new Error('Missing each function');\n if (typeof options === 'function') {\n callback = options as Callback;\n options = {};\n }\n\n if (typeof callback === 'function') {\n if (this.done) {\n callback(null, true);\n return;\n }\n options = options || {};\n const processorOptions: ProcessorOptions<T> = {\n each: fn,\n callbacks: options.callbacks || false,\n concurrency: options.concurrency || 1,\n limit: options.limit || Infinity,\n error:\n options.error ||\n function defaultError() {\n return true; // default is exit on error\n },\n total: 0,\n counter: 0,\n stop: () => {\n return this.done || this.queued.length >= this.stack.length;\n },\n };\n\n let processor = createProcesor<T>(this.next.bind(this), processorOptions, (err) => {\n if (!this.destroyed) fifoRemove(this.processors, processor);\n processor = null;\n options = null;\n const done = !this.stack.length;\n if ((err || done) && !this.done) this.end(err);\n return callback(err, this.done || done);\n });\n this.processors.push(processor);\n processor();\n return;\n }\n\n return new Promise((resolve, reject) => this.forEach(fn, options, (err, done) => (err ? reject(err) : resolve(done))));\n }\n\n end(err?: Error) {\n if (this.done) return;\n this.done = true;\n while (this.processors.length) this.processors.pop()(err || true);\n while (this.processing.length) err ? this.processing.pop()(err) : this.processing.pop()(null, null);\n while (this.queued.length) err ? this.queued.pop()(err) : this.queued.pop()(null, null);\n while (this.stack.length) this.stack.pop();\n }\n\n destroy(err?: Error) {\n if (this.destroyed) throw new Error('Already destroyed');\n this.destroyed = true;\n this.end(err);\n }\n}\n\nif (typeof Symbol !== 'undefined' && Symbol.asyncIterator) {\n StackBaseIterator.prototype[Symbol.asyncIterator] = function asyncIterator() {\n const self = this;\n return {\n next: function next() {\n return self.next().then(function nextCallback(value) {\n return Promise.resolve({ value: value, done: value === null });\n });\n },\n destroy: function destroy() {\n self.destroy();\n return Promise.resolve();\n },\n };\n };\n}\n"],"names":["StackBaseIterator","options","error","defaultError","err","queued","FIFO","processors","stack","entries","links","processing","isDone","done","push","item","console","log","drainStack","next","value","callback","processOrQueue","once","Promise","resolve","reject","result","forEach","fn","Error","processorOptions","each","callbacks","concurrency","limit","Infinity","total","counter","stop","length","processor","createProcesor","bind","destroyed","fifoRemove","end","pop","destroy","Symbol","asyncIterator","prototype","self","then","nextCallback"],"mappings":"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"}

@@ -17,5 +17,5 @@ import type { Callback, DefaultFunction, EachFunction, ForEachOptions, StackOptions } from './types.js';

next(...[value]: [] | [unknown]): Promise<IteratorResult<T, unknown>>;
forEach(fn: EachFunction<T>, options: ForEachOptions | Callback, callback?: Callback): undefined | Promise<unknown>;
forEach(fn: EachFunction<T>, options?: ForEachOptions | Callback, callback?: Callback): undefined | Promise<unknown>;
end(err?: Error): void;
destroy(err?: Error): void;
}

@@ -1,1 +0,1 @@

{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/stack-base-iterator/src/index.ts"],"sourcesContent":["import once from 'call-once-fn';\nimport FIFO from 'fifo';\n\nimport createProcesor from './createProcessor.js';\nimport drainStack from './drainStack.js';\nimport fifoRemove from './fifoRemove.js';\nimport processOrQueue from './processOrQueue.js';\n\nimport type { Callback, DefaultFunction, EachFunction, ForEachOptions, ProcessorOptions, StackOptions } from './types.js';\n\nexport type * from './types.js';\nexport default class StackBaseIterator<T> implements AsyncIterator<T> {\n protected options: StackOptions;\n protected stack: unknown[];\n protected queued: DefaultFunction[];\n protected processors: DefaultFunction[];\n protected entries: unknown[];\n protected links: unknown[];\n protected processing: DefaultFunction[];\n protected destroyed: boolean;\n protected done: boolean;\n\n constructor(options: StackOptions = {}) {\n this.options = { ...options };\n this.options.error =\n options.error ||\n function defaultError(err) {\n return !!err; // fail on errors\n };\n\n this.queued = FIFO() as unknown as DefaultFunction[];\n this.processors = FIFO() as unknown as DefaultFunction[];\n this.stack = FIFO() as unknown as unknown[];\n this.entries = FIFO() as unknown as unknown[];\n this.links = FIFO() as unknown as unknown[];\n this.processing = FIFO() as unknown as DefaultFunction[];\n }\n\n isDone() {\n return this.done;\n }\n\n push(item) {\n if (this.done) return console.log('Attempting to push on a done iterator');\n this.stack.push(item);\n drainStack(this);\n }\n\n next(...[value]: [] | [unknown]): Promise<IteratorResult<T, unknown>> {\n const callback = value as Callback;\n if (typeof callback === 'function') return processOrQueue(this, once(callback));\n\n return new Promise((resolve, reject) => {\n this.next((err, result) => (err ? reject(err) : resolve(result)));\n });\n }\n\n forEach(fn: EachFunction<T>, options: ForEachOptions | Callback, callback?: Callback): undefined | Promise<unknown> {\n if (typeof fn !== 'function') throw new Error('Missing each function');\n if (typeof options === 'function') {\n callback = options as Callback;\n options = {};\n }\n\n if (typeof callback === 'function') {\n if (this.done) {\n callback(null, true);\n return;\n }\n options = options || {};\n const processorOptions: ProcessorOptions<T> = {\n each: fn,\n callbacks: options.callbacks || false,\n concurrency: options.concurrency || 1,\n limit: options.limit || Infinity,\n error:\n options.error ||\n function defaultError() {\n return true; // default is exit on error\n },\n total: 0,\n counter: 0,\n stop: () => {\n return this.done || this.queued.length >= this.stack.length;\n },\n };\n\n let processor = createProcesor<T>(this.next.bind(this), processorOptions, (err) => {\n if (!this.destroyed) fifoRemove(this.processors, processor);\n processor = null;\n options = null;\n const done = !this.stack.length;\n if ((err || done) && !this.done) this.end(err);\n return callback(err, this.done || done);\n });\n this.processors.push(processor);\n processor();\n return;\n }\n\n return new Promise((resolve, reject) => this.forEach(fn, options, (err, done) => (err ? reject(err) : resolve(done))));\n }\n\n end(err?: Error) {\n if (this.done) return;\n this.done = true;\n while (this.processors.length) this.processors.pop()(err || true);\n while (this.processing.length) err ? this.processing.pop()(err) : this.processing.pop()(null, null);\n while (this.queued.length) err ? this.queued.pop()(err) : this.queued.pop()(null, null);\n while (this.stack.length) this.stack.pop();\n }\n\n destroy(err?: Error) {\n if (this.destroyed) throw new Error('Already destroyed');\n this.destroyed = true;\n this.end(err);\n }\n}\n\nif (typeof Symbol !== 'undefined' && Symbol.asyncIterator) {\n StackBaseIterator.prototype[Symbol.asyncIterator] = function asyncIterator() {\n const self = this;\n return {\n next: function next() {\n return self.next().then(function nextCallback(value) {\n return Promise.resolve({ value: value, done: value === null });\n });\n },\n destroy: function destroy() {\n self.destroy();\n return Promise.resolve();\n },\n };\n };\n}\n"],"names":["once","FIFO","createProcesor","drainStack","fifoRemove","processOrQueue","StackBaseIterator","isDone","done","push","item","console","log","stack","next","value","callback","Promise","resolve","reject","err","result","forEach","fn","options","Error","processorOptions","each","callbacks","concurrency","limit","Infinity","error","defaultError","total","counter","stop","queued","length","processor","bind","destroyed","processors","end","pop","processing","destroy","constructor","entries","links","Symbol","asyncIterator","prototype","self","then","nextCallback"],"mappings":"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"}
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/stack-base-iterator/src/index.ts"],"sourcesContent":["import once from 'call-once-fn';\nimport FIFO from 'fifo';\n\nimport createProcesor from './createProcessor.js';\nimport drainStack from './drainStack.js';\nimport fifoRemove from './fifoRemove.js';\nimport processOrQueue from './processOrQueue.js';\n\nimport type { Callback, DefaultFunction, EachFunction, ForEachOptions, ProcessorOptions, StackOptions } from './types.js';\n\nexport type * from './types.js';\nexport default class StackBaseIterator<T> implements AsyncIterator<T> {\n protected options: StackOptions;\n protected stack: unknown[];\n protected queued: DefaultFunction[];\n protected processors: DefaultFunction[];\n protected entries: unknown[];\n protected links: unknown[];\n protected processing: DefaultFunction[];\n protected destroyed: boolean;\n protected done: boolean;\n\n constructor(options: StackOptions = {}) {\n this.options = { ...options };\n this.options.error =\n options.error ||\n function defaultError(err) {\n return !!err; // fail on errors\n };\n\n this.queued = FIFO() as unknown as DefaultFunction[];\n this.processors = FIFO() as unknown as DefaultFunction[];\n this.stack = FIFO() as unknown as unknown[];\n this.entries = FIFO() as unknown as unknown[];\n this.links = FIFO() as unknown as unknown[];\n this.processing = FIFO() as unknown as DefaultFunction[];\n }\n\n isDone() {\n return this.done;\n }\n\n push(item) {\n if (this.done) return console.log('Attempting to push on a done iterator');\n this.stack.push(item);\n drainStack(this);\n }\n\n next(...[value]: [] | [unknown]): Promise<IteratorResult<T, unknown>> {\n const callback = value as Callback;\n if (typeof callback === 'function') return processOrQueue(this, once(callback));\n\n return new Promise((resolve, reject) => {\n this.next((err, result) => (err ? reject(err) : resolve(result)));\n });\n }\n\n forEach(fn: EachFunction<T>, options?: ForEachOptions | Callback, callback?: Callback): undefined | Promise<unknown> {\n if (typeof fn !== 'function') throw new Error('Missing each function');\n if (typeof options === 'function') {\n callback = options as Callback;\n options = {};\n }\n\n if (typeof callback === 'function') {\n if (this.done) {\n callback(null, true);\n return;\n }\n options = options || {};\n const processorOptions: ProcessorOptions<T> = {\n each: fn,\n callbacks: options.callbacks || false,\n concurrency: options.concurrency || 1,\n limit: options.limit || Infinity,\n error:\n options.error ||\n function defaultError() {\n return true; // default is exit on error\n },\n total: 0,\n counter: 0,\n stop: () => {\n return this.done || this.queued.length >= this.stack.length;\n },\n };\n\n let processor = createProcesor<T>(this.next.bind(this), processorOptions, (err) => {\n if (!this.destroyed) fifoRemove(this.processors, processor);\n processor = null;\n options = null;\n const done = !this.stack.length;\n if ((err || done) && !this.done) this.end(err);\n return callback(err, this.done || done);\n });\n this.processors.push(processor);\n processor();\n return;\n }\n\n return new Promise((resolve, reject) => this.forEach(fn, options, (err, done) => (err ? reject(err) : resolve(done))));\n }\n\n end(err?: Error) {\n if (this.done) return;\n this.done = true;\n while (this.processors.length) this.processors.pop()(err || true);\n while (this.processing.length) err ? this.processing.pop()(err) : this.processing.pop()(null, null);\n while (this.queued.length) err ? this.queued.pop()(err) : this.queued.pop()(null, null);\n while (this.stack.length) this.stack.pop();\n }\n\n destroy(err?: Error) {\n if (this.destroyed) throw new Error('Already destroyed');\n this.destroyed = true;\n this.end(err);\n }\n}\n\nif (typeof Symbol !== 'undefined' && Symbol.asyncIterator) {\n StackBaseIterator.prototype[Symbol.asyncIterator] = function asyncIterator() {\n const self = this;\n return {\n next: function next() {\n return self.next().then(function nextCallback(value) {\n return Promise.resolve({ value: value, done: value === null });\n });\n },\n destroy: function destroy() {\n self.destroy();\n return Promise.resolve();\n },\n };\n };\n}\n"],"names":["once","FIFO","createProcesor","drainStack","fifoRemove","processOrQueue","StackBaseIterator","isDone","done","push","item","console","log","stack","next","value","callback","Promise","resolve","reject","err","result","forEach","fn","options","Error","processorOptions","each","callbacks","concurrency","limit","Infinity","error","defaultError","total","counter","stop","queued","length","processor","bind","destroyed","processors","end","pop","processing","destroy","constructor","entries","links","Symbol","asyncIterator","prototype","self","then","nextCallback"],"mappings":"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"}
{
"name": "stack-base-iterator",
"version": "1.2.9",
"version": "1.2.10",
"description": "Base iterator for values retrieved using a stack of async functions returning values",

@@ -5,0 +5,0 @@ "keywords": [