From c82ad68d320375b9e3dcf04e7b82f5db9e815ca6 Mon Sep 17 00:00:00 2001 From: Rintim Date: Wed, 17 Apr 2024 13:15:11 +0800 Subject: [PATCH] fix: gnc eslint error. --- noname/gnc/index.js | 80 ++++++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/noname/gnc/index.js b/noname/gnc/index.js index 99460f6ca..7cbdcebd9 100644 --- a/noname/gnc/index.js +++ b/noname/gnc/index.js @@ -8,45 +8,49 @@ export class GNC { * @returns */ of(fn) { - return this.is.generatorFunc(fn) - ? /** - * @param {Parameters} args - * @returns {Promise>} - */ - function genCoroutine(...args) { - let gen = fn.apply(this, args); - gen.status = "next"; - gen.state = undefined; - const callback = (resolve, reject) => { - let result, - nexts = resolve, - throws = reject; - try { - result = gen[gen.status](gen.state); - } catch (error) { - reject(error); - return; - } - if (!result.done) { - nexts = (item) => { - gen.state = item; - gen.status = "next"; - callback(resolve, reject); - }; - throws = (err) => { - gen.state = err; - gen.status = "throw"; - callback(resolve, reject); - }; - } - result = result.value; - Promise.resolve(result).then(nexts, throws); + /** + * @param {Parameters} args + * @returns {Promise>} + */ + function genCoroutine(...args) { + /** + * @type {Generator & { status: "next" | "throw" , state?: any}} + */ + // @ts-expect-error Must Ok + let gen = fn.apply(this, args); + gen.status = "next"; + gen.state = undefined; + const callback = (resolve, reject) => { + let result, + nexts = resolve, + throws = reject; + try { + result = gen[gen.status](gen.state); + } catch (error) { + reject(error); + return; + } + if (!result.done) { + nexts = (item) => { + gen.state = item; + gen.status = "next"; + callback(resolve, reject); }; - return new Promise(callback); - } - : (() => { - throw new TypeError("gnc.of needs a GeneratorFunction."); - })(); + throws = (err) => { + gen.state = err; + gen.status = "throw"; + callback(resolve, reject); + }; + } + result = result.value; + Promise.resolve(result).then(nexts, throws); + }; + return new Promise(callback); + } + + if (!this.is.generatorFunc(fn)) throw new TypeError("gnc.of needs a GeneratorFunction."); + + return genCoroutine; } is = new Is(); }