From 0259af490cff51d3e156946ed5e28411ced6fc4b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Feb 2026 04:28:53 +0000 Subject: [PATCH 1/9] Initial plan From 7220462d0f9795992a46dbec15c78bf6c6385c8f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Feb 2026 04:32:08 +0000 Subject: [PATCH 2/9] Replace chai with @nevware21/tripwire in all test files and remove chai dependencies Co-authored-by: nev21 <82737406+nev21@users.noreply.github.com> --- lib/package.json | 20 +++++++++---------- lib/test/src/helpers/arrForEachAsync.test.ts | 2 +- lib/test/src/helpers/doWhileAsync.test.ts | 2 +- lib/test/src/helpers/iterForOfAsync.test.ts | 2 +- lib/test/src/promise/async.promise.test.ts | 2 +- lib/test/src/promise/await.test.ts | 2 +- lib/test/src/promise/event.test.ts | 2 +- lib/test/src/promise/idle.promise.test.ts | 2 +- lib/test/src/promise/sync.promise.test.ts | 2 +- lib/test/src/promise/timeoutPromise.test.ts | 2 +- .../promise/unhandledRejectionEvent.test.ts | 2 +- lib/test/src/promise/use.await.test.ts | 2 +- lib/test/src/promise/use.doAwait.test.ts | 2 +- lib/test/src/scheduler/scheduler.test.ts | 2 +- package.json | 1 - 15 files changed, 22 insertions(+), 25 deletions(-) diff --git a/lib/package.json b/lib/package.json index d561725..0930609 100644 --- a/lib/package.json +++ b/lib/package.json @@ -36,7 +36,7 @@ "esnext:main": "dist/es6/main/ts-async.js", "module": "dist/es5/mod/ts-async.js", "esnext": "dist/es6/mod/ts-async.js", - "types": "dist/types/ts-async.d.ts", + "types": "dist/types/ts-async.d.ts", "repository": { "type": "git", "url": "https://github.com/nevware21/ts-async.git" @@ -72,50 +72,48 @@ "dtsgen": "api-extractor run --local --verbose", "preproc": "ts-preproc -C ../preproc.json -R .." }, - "dependencies": { "@nevware21/ts-utils": ">= 0.12.6 < 2.x" }, "devDependencies": { - "@nevware21/ts-preproc": "^0.1.3", - "@microsoft/api-extractor": "^7.48.1", "@istanbuljs/nyc-config-typescript": "^1.0.2", + "@microsoft/api-extractor": "^7.48.1", + "@nevware21/tripwire": "^0.1.5", + "@nevware21/ts-preproc": "^0.1.3", "@rollup/plugin-commonjs": "^29.0.0", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-strip": "^3.0.2", "@rollup/plugin-typescript": "^12.1.1", - "@types/chai": "^4.3.1", "@types/mocha": "^10.0.1", "@types/sinon": "^21.0.0", - "chai": "4.3.10", "chromium": "^3.0.3", + "copyfiles": "^2.4.1", "cross-env": "^10.1.0", "grunt": "^1.5.3", "grunt-cli": "^1.4.3", "karma": "^6.3.20", "karma-chrome-launcher": "^3.1.1", + "karma-coverage": "^2.2.0", "karma-coverage-istanbul-reporter": "^3.0.3", "karma-mocha": "^2.0.1", "karma-mocha-webworker": "^1.3.0", "karma-rollup-preprocessor": "^7.0.8", "karma-spec-reporter": "^0.0.36", "karma-typescript": "^5.5.3", - "karma-coverage": "^2.2.0", "mocha": "^10.0.0", "nyc": "^17.1.0", "puppeteer": "^24.0.0", "rollup": "^4.26.0", - "rollup-plugin-minify-es": "^1.1.1", - "rollup-plugin-istanbul": "^5.0.0", "rollup-plugin-cleanup": "^3.2.1", + "rollup-plugin-istanbul": "^5.0.0", + "rollup-plugin-minify-es": "^1.1.1", "rollup-plugin-sourcemaps": "^0.6.3", "sinon": "^14.0.0", "ts-mocha": "^11.1.0", "typedoc": "^0.28.2", "typedoc-github-theme": "^0.3.0", "typescript": "~5.2.2", - "uglify-js": "^3.15.5", - "copyfiles": "^2.4.1" + "uglify-js": "^3.15.5" } } diff --git a/lib/test/src/helpers/arrForEachAsync.test.ts b/lib/test/src/helpers/arrForEachAsync.test.ts index e1e21f1..15e0094 100644 --- a/lib/test/src/helpers/arrForEachAsync.test.ts +++ b/lib/test/src/helpers/arrForEachAsync.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { arrForEachAsync } from "../../../src/helpers/arrForEachAsync"; import { arrSlice } from "@nevware21/ts-utils"; import { isPromiseLike } from "@nevware21/ts-utils"; diff --git a/lib/test/src/helpers/doWhileAsync.test.ts b/lib/test/src/helpers/doWhileAsync.test.ts index f1252f3..900feb2 100644 --- a/lib/test/src/helpers/doWhileAsync.test.ts +++ b/lib/test/src/helpers/doWhileAsync.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { doWhileAsync } from "../../../src/helpers/doWhileAsync"; import { isPromiseLike } from "@nevware21/ts-utils"; import { createResolvedPromise } from "../../../src/promise/promise"; diff --git a/lib/test/src/helpers/iterForOfAsync.test.ts b/lib/test/src/helpers/iterForOfAsync.test.ts index a506290..cb4bdca 100644 --- a/lib/test/src/helpers/iterForOfAsync.test.ts +++ b/lib/test/src/helpers/iterForOfAsync.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { iterForOfAsync } from "../../../src/helpers/iterForOfAsync"; import { CreateIteratorContext, arrSlice, createArrayIterator, createIterator, createRangeIterator, isPromiseLike, objKeys } from "@nevware21/ts-utils"; import { createTimeoutPromise } from "../../../src/promise/timeoutPromise"; diff --git a/lib/test/src/promise/async.promise.test.ts b/lib/test/src/promise/async.promise.test.ts index 500debb..8fe2c04 100644 --- a/lib/test/src/promise/async.promise.test.ts +++ b/lib/test/src/promise/async.promise.test.ts @@ -7,7 +7,7 @@ */ import * as sinon from "sinon"; -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { arrForEach, dumpObj, getGlobal, isNode, isWebWorker, objHasOwn, scheduleTimeout, setBypassLazyCache } from "@nevware21/ts-utils"; import { createAsyncAllPromise, createAsyncPromise, createAsyncRejectedPromise, createAsyncResolvedPromise } from "../../../src/promise/asyncPromise"; import { IPromise } from "../../../src/interfaces/IPromise"; diff --git a/lib/test/src/promise/await.test.ts b/lib/test/src/promise/await.test.ts index 3d58055..79ffb64 100644 --- a/lib/test/src/promise/await.test.ts +++ b/lib/test/src/promise/await.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert, expect } from "chai"; +import { assert, expect } from "@nevware21/tripwire"; import { doAwait, doAwaitResponse, doFinally } from "../../../src/promise/await"; import { arrForEach } from "@nevware21/ts-utils"; import { isPromiseLike } from "@nevware21/ts-utils"; diff --git a/lib/test/src/promise/event.test.ts b/lib/test/src/promise/event.test.ts index b79f723..34ccde7 100644 --- a/lib/test/src/promise/event.test.ts +++ b/lib/test/src/promise/event.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { emitEvent } from "../../../src/promise/event"; describe("emitEvent", () => { diff --git a/lib/test/src/promise/idle.promise.test.ts b/lib/test/src/promise/idle.promise.test.ts index b917b6d..f2c9fe5 100644 --- a/lib/test/src/promise/idle.promise.test.ts +++ b/lib/test/src/promise/idle.promise.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { createIdlePromise, setDefaultIdlePromiseTimeout } from "../../../src/promise/idlePromise"; import { getGlobal, setBypassLazyCache } from "@nevware21/ts-utils"; import { setPromiseDebugState } from "../../../src/promise/debug"; diff --git a/lib/test/src/promise/sync.promise.test.ts b/lib/test/src/promise/sync.promise.test.ts index bdaeeee..9f46855 100644 --- a/lib/test/src/promise/sync.promise.test.ts +++ b/lib/test/src/promise/sync.promise.test.ts @@ -7,7 +7,7 @@ */ import * as sinon from "sinon"; -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { arrForEach, dumpObj, getGlobal, isNode, isWebWorker, objHasOwn, scheduleTimeout, setBypassLazyCache } from "@nevware21/ts-utils"; import { IPromise } from "../../../src/interfaces/IPromise"; import { createSyncAllPromise, createSyncPromise, createSyncRejectedPromise, createSyncResolvedPromise } from "../../../src/promise/syncPromise"; diff --git a/lib/test/src/promise/timeoutPromise.test.ts b/lib/test/src/promise/timeoutPromise.test.ts index 848902b..3e3be40 100644 --- a/lib/test/src/promise/timeoutPromise.test.ts +++ b/lib/test/src/promise/timeoutPromise.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { createTimeoutPromise } from "../../../src/promise/timeoutPromise"; diff --git a/lib/test/src/promise/unhandledRejectionEvent.test.ts b/lib/test/src/promise/unhandledRejectionEvent.test.ts index 025c3ba..47b20d2 100644 --- a/lib/test/src/promise/unhandledRejectionEvent.test.ts +++ b/lib/test/src/promise/unhandledRejectionEvent.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { arrForEach, asString, dumpObj, getGlobal, isNode, isWebWorker, objHasOwn, scheduleTimeout, setBypassLazyCache } from "@nevware21/ts-utils"; import { createAsyncPromise, createAsyncRejectedPromise } from "../../../src/promise/asyncPromise"; import { IPromise } from "../../../src/interfaces/IPromise"; diff --git a/lib/test/src/promise/use.await.test.ts b/lib/test/src/promise/use.await.test.ts index 9ef8e47..1fa6023 100644 --- a/lib/test/src/promise/use.await.test.ts +++ b/lib/test/src/promise/use.await.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { getGlobal, objHasOwn, isWebWorker, isNode, scheduleTimeout, dumpObj, arrForEach, objForEachKey, setBypassLazyCache, CreateIteratorContext, isPromiseLike, setDefaultIdleTimeout } from "@nevware21/ts-utils"; import { PolyPromise } from "../../../src/polyfills/promise"; import { createAsyncAllPromise, createAsyncAllSettledPromise, createAsyncAnyPromise, createAsyncPromise, createAsyncRacePromise, createAsyncRejectedPromise, createAsyncResolvedPromise } from "../../../src/promise/asyncPromise"; diff --git a/lib/test/src/promise/use.doAwait.test.ts b/lib/test/src/promise/use.doAwait.test.ts index d76d4ed..fe3f968 100644 --- a/lib/test/src/promise/use.doAwait.test.ts +++ b/lib/test/src/promise/use.doAwait.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { CreateIteratorContext, arrForEach, createIterable, dumpObj, getGlobal, isNode, isPlainObject, isWebWorker, objForEachKey, objHasOwn, scheduleTimeout, setBypassLazyCache, setDefaultIdleTimeout } from "@nevware21/ts-utils"; import { createAsyncAllPromise, createAsyncAllSettledPromise, createAsyncPromise, createAsyncRacePromise, createAsyncRejectedPromise, createAsyncResolvedPromise } from "../../../src/promise/asyncPromise"; import { doAwait, doAwaitResponse } from "../../../src/promise/await"; diff --git a/lib/test/src/scheduler/scheduler.test.ts b/lib/test/src/scheduler/scheduler.test.ts index 86a71e7..eccf128 100644 --- a/lib/test/src/scheduler/scheduler.test.ts +++ b/lib/test/src/scheduler/scheduler.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert } from "chai"; +import { assert } from "@nevware21/tripwire"; import { arrForEach, asString, dumpObj, getGlobal, getLength, isNode, isPromiseLike, isString, isWebWorker, objForEachKey, objHasOwn, scheduleTimeout, setBypassLazyCache } from "@nevware21/ts-utils"; import { PromiseExecutor } from "../../../src/interfaces/types"; import { IPromise } from "../../../src/interfaces/IPromise"; diff --git a/package.json b/package.json index e1b742e..3de92a3 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,6 @@ "@size-limit/esbuild-why": "^12.0.0", "@size-limit/preset-small-lib": "^12.0.0", "@size-limit/time": "^12.0.0", - "@types/chai": "^5.0.0", "@types/eslint": "^8.56.10", "@types/estree": "^1.0.0", "@types/jquery": "^3.5.14", From 76458df4d8b5b4569eaba33485b9e07a6658dc5e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Feb 2026 04:35:10 +0000 Subject: [PATCH 3/9] Fix expect syntax to use tripwire API (expect().to.be.equal instead of expect().to.equal) Co-authored-by: nev21 <82737406+nev21@users.noreply.github.com> --- lib/src/promise/base.ts | 64 +++++++++++++++--------------- lib/src/promise/debug.ts | 10 ++--- lib/src/promise/nativePromise.ts | 12 +++--- lib/src/scheduler/taskScheduler.ts | 12 +++--- lib/test/src/promise/await.test.ts | 4 +- 5 files changed, 51 insertions(+), 51 deletions(-) diff --git a/lib/src/promise/base.ts b/lib/src/promise/base.ts index ec26e69..a87e0a9 100644 --- a/lib/src/promise/base.ts +++ b/lib/src/promise/base.ts @@ -25,7 +25,7 @@ import { REJECTED, STR_PROMISE } from "../internal/constants"; import { IPromiseResult } from "../interfaces/IPromiseResult"; //#ifdef DEBUG -import { _debugLog } from "./debug"; +//#:(!DEBUG) import { _debugLog } from "./debug"; //#endif const NODE_UNHANDLED_REJECTION = "unhandledRejection"; @@ -62,16 +62,16 @@ function dumpFnObj(value: any) { } //#ifdef DEBUG -function _getCaller(prefix: string, start: number) { - let stack = new Error().stack; - if (stack) { - let lines = stack.split("\n"); - if (lines.length > start) { - return prefix + ":" + arrSlice(lines, start, start + 5).join("\n") + "\n..."; - } - } - return null; -} +//#:(!DEBUG) function _getCaller(prefix: string, start: number) { +//#:(!DEBUG) let stack = new Error().stack; +//#:(!DEBUG) if (stack) { +//#:(!DEBUG) let lines = stack.split("\n"); +//#:(!DEBUG) if (lines.length > start) { +//#:(!DEBUG) return prefix + ":" + arrSlice(lines, start, start + 5).join("\n") + "\n..."; +//#:(!DEBUG) } +//#:(!DEBUG) } +//#:(!DEBUG) return null; +//#:(!DEBUG) } //#endif /*#__NO_SIDE_EFFECTS__*/ @@ -129,7 +129,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi let thenPromise = newPromise(function (resolve, reject) { //#ifdef DEBUG - _debugLog(_toString(), _getCaller("_then", 7)); + //#:(!DEBUG) _debugLog(_toString(), _getCaller("_then", 7)); //#endif // Queue the new promise returned to be resolved or rejected @@ -142,12 +142,12 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi // of this promise. If the corresponding `handler` does not exist, simply // pass through the settled value. //#ifdef DEBUG - _debugLog(_toString(), "Handling settled value " + dumpFnObj(_settledValue)); + //#:(!DEBUG) _debugLog(_toString(), "Handling settled value " + dumpFnObj(_settledValue)); //#endif let handler = _state === ePromiseState.Resolved ? onResolved : onRejected; let value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler); //#ifdef DEBUG - _debugLog(_toString(), "Handling Result " + dumpFnObj(value)); + //#:(!DEBUG) _debugLog(_toString(), "Handling Result " + dumpFnObj(value)); //#endif if (isPromiseLike(value)) { @@ -172,7 +172,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi }); //#ifdef DEBUG - _debugLog(_toString(), "Added to Queue " + _queue.length); + //#:(!DEBUG) _debugLog(_toString(), "Added to Queue " + _queue.length); //#endif // If this promise is already settled, then immediately process the callback we @@ -183,7 +183,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi }, additionalArgs); //#ifdef DEBUG - _debugLog(_toString(), "Created -> " + thenPromise.toString()); + //#:(!DEBUG) _debugLog(_toString(), "Created -> " + thenPromise.toString()); //#endif return thenPromise; @@ -230,7 +230,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi _queue = []; //#ifdef DEBUG - _debugLog(_toString(), "Processing queue " + pending.length); + //#:(!DEBUG) _debugLog(_toString(), "Processing queue " + pending.length); //#endif _handled = true; @@ -238,12 +238,12 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi _unHandledRejectionHandler = null; processor(pending); //#ifdef DEBUG - _debugLog(_toString(), "Processing done"); + //#:(!DEBUG) _debugLog(_toString(), "Processing done"); //#endif } else { //#ifdef DEBUG - _debugLog(_toString(), "Empty Processing queue "); + //#:(!DEBUG) _debugLog(_toString(), "Empty Processing queue "); //#endif } } @@ -254,7 +254,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi if (newState === ePromiseState.Resolved && isPromiseLike(theValue)) { _state = ePromiseState.Resolving; //#ifdef DEBUG - _debugLog(_toString(), "Resolving"); + //#:(!DEBUG) _debugLog(_toString(), "Resolving"); //#endif theValue.then( _createSettleIfFn(ePromiseState.Resolved, ePromiseState.Resolving), @@ -266,18 +266,18 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi _hasResolved = true; _settledValue = theValue; //#ifdef DEBUG - _debugLog(_toString(), _strState()); + //#:(!DEBUG) _debugLog(_toString(), _strState()); //#endif _processQueue(); if (!_handled && newState === ePromiseState.Rejected && !_unHandledRejectionHandler) { //#ifdef DEBUG - _debugLog(_toString(), "Setting up unhandled rejection"); + //#:(!DEBUG) _debugLog(_toString(), "Setting up unhandled rejection"); //#endif _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout) } } else { //#ifdef DEBUG - _debugLog(_toString(), "Already " + _strState()); + //#:(!DEBUG) _debugLog(_toString(), "Already " + _strState()); //#endif } }; @@ -289,7 +289,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi _handled = true; if (isNode()) { //#ifdef DEBUG - _debugLog(_toString(), "Emitting " + NODE_UNHANDLED_REJECTION); + //#:(!DEBUG) _debugLog(_toString(), "Emitting " + NODE_UNHANDLED_REJECTION); //#endif process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise); } else { @@ -298,7 +298,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = createCachedValue(safe(getInst<_PromiseRejectionEvent>, [STR_PROMISE + "RejectionEvent"]).v)); //#ifdef DEBUG - _debugLog(_toString(), "Emitting " + UNHANDLED_REJECTION); + //#:(!DEBUG) _debugLog(_toString(), "Emitting " + UNHANDLED_REJECTION); //#endif emitEvent(gbl, UNHANDLED_REJECTION, (theEvt: any) => { objDefine(theEvt, "promise", { g: () => _thePromise }); @@ -330,7 +330,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi let createStack: string; //#if DEBUG - createStack = _getCaller("Created", 5); + //#:(!{DEBUG}) createStack = _getCaller("Created", 5); //#endif function _toString() { return "IPromise" + (_promiseDebugEnabled ? "[" + _id + (!isUndefined(_parentId) ? (":" + _parentId) : "") + "]" : "") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "") + (createStack ? " @ " + createStack : ""); @@ -346,7 +346,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi const _rejectFn = _createSettleIfFn(ePromiseState.Rejected, ePromiseState.Pending); try { //#ifdef DEBUG - _debugLog(_toString(), "Executing"); + //#:(!DEBUG) _debugLog(_toString(), "Executing"); //#endif executor.call( _thePromise, @@ -354,18 +354,18 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi _rejectFn); } catch (e) { //#ifdef DEBUG - _debugLog(_toString(), "Exception thrown: " + dumpFnObj(e)); + //#:(!DEBUG) _debugLog(_toString(), "Exception thrown: " + dumpFnObj(e)); //#endif _rejectFn(e); } //#ifdef DEBUG - _debugLog(_toString(), "~Executing"); + //#:(!DEBUG) _debugLog(_toString(), "~Executing"); //#endif })(); //#ifdef DEBUG - _debugLog(_toString(), "Returning"); + //#:(!DEBUG) _debugLog(_toString(), "Returning"); //#endif return _thePromise; } @@ -437,7 +437,7 @@ export function _createResolvedPromise(newPromise: PromiseCreatorFn): (value: return newPromise((resolve) => { //#ifdef DEBUG - _debugLog(String(this), "Resolving Promise"); + //#:(!DEBUG) _debugLog(String(this), "Resolving Promise"); //#endif resolve(value); }, additionalArgs); @@ -459,7 +459,7 @@ export function _createRejectedPromise(newPromise: PromiseCreatorFn): (reason let additionalArgs = arrSlice(arguments, 1); return newPromise((_resolve, reject) => { //#ifdef DEBUG - _debugLog(String(this), "Rejecting Promise"); + //#:(!DEBUG) _debugLog(String(this), "Rejecting Promise"); //#endif reject(reason); }, additionalArgs); diff --git a/lib/src/promise/debug.ts b/lib/src/promise/debug.ts index f11af64..87d28d6 100644 --- a/lib/src/promise/debug.ts +++ b/lib/src/promise/debug.ts @@ -20,7 +20,7 @@ let _debugHandled: any; export let _promiseDebugEnabled = false; //#ifdef DEBUG -let _theLogger: (id: string, message: string) => void = null; +//#:(!DEBUG) let _theLogger: (id: string, message: string) => void = null; //#endif /** @@ -31,9 +31,9 @@ let _theLogger: (id: string, message: string) => void = null; */ export const _debugLog = (/*#__PURE__*/_pureAssign((id: string, message: string) => { //#ifdef DEBUG - if (_theLogger) { - _theLogger(id, message); - } + //#:(!DEBUG) if (_theLogger) { + //#:(!DEBUG) _theLogger(id, message); + //#:(!DEBUG) } //#endif })); @@ -100,6 +100,6 @@ export function _addDebugState(thePromise: any, stateFn: () => string, resultFn: export function setPromiseDebugState(enabled: boolean, logger?: (id: string, message: string) => void) { _promiseDebugEnabled = enabled; //#ifdef DEBUG - _theLogger = logger; + //#:(!DEBUG) _theLogger = logger; //#endif } \ No newline at end of file diff --git a/lib/src/promise/nativePromise.ts b/lib/src/promise/nativePromise.ts index 0f894a3..6946187 100644 --- a/lib/src/promise/nativePromise.ts +++ b/lib/src/promise/nativePromise.ts @@ -65,12 +65,12 @@ let _anyNativeCreator: ICachedValue<(values: */ export function _clearPromiseCache(useNative: boolean) { //#ifdef _DEBUG - _useNative = !!useNative; - _promiseCls = null as any; - _allCreator = null as any; - _allNativeSettledCreator = null as any; - _raceNativeCreator = null as any; - _anyNativeCreator = null as any; +//#:(!_DEBUG) _useNative = !!useNative; +//#:(!_DEBUG) _promiseCls = null as any; +//#:(!_DEBUG) _allCreator = null as any; +//#:(!_DEBUG) _allNativeSettledCreator = null as any; +//#:(!_DEBUG) _raceNativeCreator = null as any; +//#:(!_DEBUG) _anyNativeCreator = null as any; //#endif } diff --git a/lib/src/scheduler/taskScheduler.ts b/lib/src/scheduler/taskScheduler.ts index c352a85..aeffde8 100644 --- a/lib/src/scheduler/taskScheduler.ts +++ b/lib/src/scheduler/taskScheduler.ts @@ -15,7 +15,7 @@ import { ITaskScheduler } from "../interfaces/ITaskScheduler"; import { createPromise } from "../promise/promise"; //#ifdef DEBUG -import { _debugLog } from "../promise/debug"; +//#:(!DEBUG) import { _debugLog } from "../promise/debug"; //#endif const REJECT = "reject"; @@ -210,7 +210,7 @@ export function createTaskScheduler(newPromise?: (executor: PromiseExecutor(executor: PromiseExecutor(executor: PromiseExecutor { //#ifdef DEBUG - let taskId = taskDetail.id; - let prevTaskId = prevTask.id; - _debugLog(_schedulerName, "[" + taskId + "] is waiting for [" + prevTaskId + "] to complete before starting -- [" + _waiting.length + "] waiting"); + //#:(!DEBUG) let taskId = taskDetail.id; + //#:(!DEBUG) let prevTaskId = prevTask.id; + //#:(!DEBUG) _debugLog(_schedulerName, "[" + taskId + "] is waiting for [" + prevTaskId + "] to complete before starting -- [" + _waiting.length + "] waiting"); //#endif // Wait for the previous tasks to complete before starting this one. diff --git a/lib/test/src/promise/await.test.ts b/lib/test/src/promise/await.test.ts index 79ffb64..9f279e2 100644 --- a/lib/test/src/promise/await.test.ts +++ b/lib/test/src/promise/await.test.ts @@ -333,7 +333,7 @@ describe("Validate doAwaitResponse", () => { value: "resolved", rejected: false }); - expect(result).to.equal("callback return value"); + expect(result).to.be.equal("callback return value"); }); it ("should handle callbacks that return promises", async () => { @@ -348,7 +348,7 @@ describe("Validate doAwaitResponse", () => { value: "resolved", rejected: false }); - expect(result).to.equal("callback return value"); + expect(result).to.be.equal("callback return value"); }); it("should handle callbacks that throw errors", async () => { From 26f0a52683f952a8210c4b4e54bee8e74fba5937 Mon Sep 17 00:00:00 2001 From: nevware21-bot <252503968+nevware21-bot@users.noreply.github.com> Date: Tue, 3 Feb 2026 20:37:16 -0800 Subject: [PATCH 4/9] chore: syncing versions and shrinkwrap --- common/config/rush/npm-shrinkwrap.json | 160 +++++++------------------ 1 file changed, 46 insertions(+), 114 deletions(-) diff --git a/common/config/rush/npm-shrinkwrap.json b/common/config/rush/npm-shrinkwrap.json index c201fae..7055463 100644 --- a/common/config/rush/npm-shrinkwrap.json +++ b/common/config/rush/npm-shrinkwrap.json @@ -10,6 +10,7 @@ "dependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.2", "@microsoft/api-extractor": "^7.48.1", + "@nevware21/tripwire": "^0.1.5", "@nevware21/ts-preproc": "^0.1.3", "@nevware21/ts-utils": ">= 0.12.6 < 2.x", "@rollup/plugin-commonjs": "^29.0.0", @@ -18,10 +19,8 @@ "@rollup/plugin-strip": "^3.0.2", "@rollup/plugin-typescript": "^12.1.1", "@rush-temp/ts-async": "file:./projects/ts-async.tgz", - "@types/chai": "^4.3.1", "@types/mocha": "^10.0.1", "@types/sinon": "^21.0.0", - "chai": "4.3.10", "chromium": "^3.0.3", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", @@ -332,9 +331,9 @@ } }, "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", + "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", "dependencies": { "@isaacs/balanced-match": "^4.0.1" }, @@ -529,6 +528,40 @@ "resolve": "~1.22.2" } }, + "node_modules/@nevware21/chromacon": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@nevware21/chromacon/-/chromacon-0.1.4.tgz", + "integrity": "sha512-PGz0LSs/pKs2ntZ5VYef+ARcARatPeADm44OIkuPNMODhFc4cikPCjeLgFa18mpe3JmSfz/Ff9JrgY+z7On4Pw==", + "dependencies": { + "@nevware21/ts-utils": ">= 0.12.6 < 2.x" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nevware21" + } + }, + "node_modules/@nevware21/tripwire": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@nevware21/tripwire/-/tripwire-0.1.5.tgz", + "integrity": "sha512-9uQRoTDPGuUvuVA7W7y7YZJ5BrVQV4g2IRN5arHJakzlY0+jc4cU+7zsX+RoKB3mohHVPxi4Sf5HaWg1LsIECQ==", + "dependencies": { + "@nevware21/chromacon": ">= 0.1.3 < 2.x", + "@nevware21/ts-async": ">= 0.5.4 < 2.x", + "@nevware21/ts-utils": ">= 0.12.3 < 2.x", + "tslib": "^2.3.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@nevware21/ts-async": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.5.5.tgz", + "integrity": "sha512-vwqaL05iJPjLeh5igPi8MeeAu10i+Aq7xko1fbo9F5Si6MnVN5505qaV7AhSdk5MCBJVT/UYMk3kgInNjDb4Ig==", + "dependencies": { + "@nevware21/ts-utils": ">= 0.12.2 < 2.x" + } + }, "node_modules/@nevware21/ts-preproc": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@nevware21/ts-preproc/-/ts-preproc-0.1.4.tgz", @@ -1107,10 +1140,11 @@ "node_modules/@rush-temp/ts-async": { "version": "0.0.0", "resolved": "file:projects/ts-async.tgz", - "integrity": "sha512-OywQnJkHk1ZCZ8UfKayg2Obr0pT9RxiJeM9bUXBUgjE9dns2UcUxDQAZpHiXFaImP/7YqDvA41bmCICbgaTuFA==", + "integrity": "sha512-LG8ZLXgHQ6MI8ebMWbLfbjUosnglmEf2L7rNF9uxHxc+xYiyBwgSVL1UmNhs+NzqZjDTDQfdexGxVKQY/pRcDA==", "dependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.2", "@microsoft/api-extractor": "^7.48.1", + "@nevware21/tripwire": "^0.1.5", "@nevware21/ts-preproc": "^0.1.3", "@nevware21/ts-utils": ">= 0.12.6 < 2.x", "@rollup/plugin-commonjs": "^29.0.0", @@ -1118,10 +1152,8 @@ "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-strip": "^3.0.2", "@rollup/plugin-typescript": "^12.1.1", - "@types/chai": "^4.3.1", "@types/mocha": "^10.0.1", "@types/sinon": "^21.0.0", - "chai": "4.3.10", "chromium": "^3.0.3", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", @@ -1299,14 +1331,6 @@ "type-detect": "4.0.8" } }, - "node_modules/@sinonjs/commons/node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, "node_modules/@sinonjs/fake-timers": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", @@ -1323,14 +1347,6 @@ "type-detect": "4.0.8" } }, - "node_modules/@sinonjs/fake-timers/node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, "node_modules/@sinonjs/samsam": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", @@ -1407,11 +1423,6 @@ "@types/responselike": "^1.0.0" } }, - "node_modules/@types/chai": { - "version": "4.3.20", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", - "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==" - }, "node_modules/@types/cors": { "version": "2.8.19", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", @@ -1728,14 +1739,6 @@ "util": "^0.12.5" } }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "engines": { - "node": "*" - } - }, "node_modules/ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", @@ -2332,23 +2335,6 @@ } ] }, - "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2375,17 +2361,6 @@ "node": ">=8" } }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -2908,17 +2883,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -3834,14 +3798,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "engines": { - "node": "*" - } - }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -3924,7 +3880,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4172,7 +4128,7 @@ "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5644,14 +5600,6 @@ "node": ">=8.0" } }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, "node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -5965,7 +5913,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6068,14 +6016,6 @@ "@sinonjs/commons": "^3.0.1" } }, - "node_modules/nise/node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, "node_modules/node-preload": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", @@ -6762,14 +6702,6 @@ "node": ">=8" } }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, "node_modules/pbkdf2": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz", @@ -8423,9 +8355,9 @@ } }, "node_modules/type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "engines": { "node": ">=4" } From 98cc5a6a451a24051389471eb210eef54d35ec7c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Feb 2026 05:08:54 +0000 Subject: [PATCH 5/9] Revert unintended changes to source files (base.ts, debug.ts, nativePromise.ts, taskScheduler.ts) Co-authored-by: nev21 <82737406+nev21@users.noreply.github.com> --- lib/src/promise/base.ts | 64 +++++++++++++++--------------- lib/src/promise/debug.ts | 10 ++--- lib/src/promise/nativePromise.ts | 12 +++--- lib/src/scheduler/taskScheduler.ts | 12 +++--- 4 files changed, 49 insertions(+), 49 deletions(-) diff --git a/lib/src/promise/base.ts b/lib/src/promise/base.ts index a87e0a9..ec26e69 100644 --- a/lib/src/promise/base.ts +++ b/lib/src/promise/base.ts @@ -25,7 +25,7 @@ import { REJECTED, STR_PROMISE } from "../internal/constants"; import { IPromiseResult } from "../interfaces/IPromiseResult"; //#ifdef DEBUG -//#:(!DEBUG) import { _debugLog } from "./debug"; +import { _debugLog } from "./debug"; //#endif const NODE_UNHANDLED_REJECTION = "unhandledRejection"; @@ -62,16 +62,16 @@ function dumpFnObj(value: any) { } //#ifdef DEBUG -//#:(!DEBUG) function _getCaller(prefix: string, start: number) { -//#:(!DEBUG) let stack = new Error().stack; -//#:(!DEBUG) if (stack) { -//#:(!DEBUG) let lines = stack.split("\n"); -//#:(!DEBUG) if (lines.length > start) { -//#:(!DEBUG) return prefix + ":" + arrSlice(lines, start, start + 5).join("\n") + "\n..."; -//#:(!DEBUG) } -//#:(!DEBUG) } -//#:(!DEBUG) return null; -//#:(!DEBUG) } +function _getCaller(prefix: string, start: number) { + let stack = new Error().stack; + if (stack) { + let lines = stack.split("\n"); + if (lines.length > start) { + return prefix + ":" + arrSlice(lines, start, start + 5).join("\n") + "\n..."; + } + } + return null; +} //#endif /*#__NO_SIDE_EFFECTS__*/ @@ -129,7 +129,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi let thenPromise = newPromise(function (resolve, reject) { //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), _getCaller("_then", 7)); + _debugLog(_toString(), _getCaller("_then", 7)); //#endif // Queue the new promise returned to be resolved or rejected @@ -142,12 +142,12 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi // of this promise. If the corresponding `handler` does not exist, simply // pass through the settled value. //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Handling settled value " + dumpFnObj(_settledValue)); + _debugLog(_toString(), "Handling settled value " + dumpFnObj(_settledValue)); //#endif let handler = _state === ePromiseState.Resolved ? onResolved : onRejected; let value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler); //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Handling Result " + dumpFnObj(value)); + _debugLog(_toString(), "Handling Result " + dumpFnObj(value)); //#endif if (isPromiseLike(value)) { @@ -172,7 +172,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi }); //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Added to Queue " + _queue.length); + _debugLog(_toString(), "Added to Queue " + _queue.length); //#endif // If this promise is already settled, then immediately process the callback we @@ -183,7 +183,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi }, additionalArgs); //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Created -> " + thenPromise.toString()); + _debugLog(_toString(), "Created -> " + thenPromise.toString()); //#endif return thenPromise; @@ -230,7 +230,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi _queue = []; //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Processing queue " + pending.length); + _debugLog(_toString(), "Processing queue " + pending.length); //#endif _handled = true; @@ -238,12 +238,12 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi _unHandledRejectionHandler = null; processor(pending); //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Processing done"); + _debugLog(_toString(), "Processing done"); //#endif } else { //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Empty Processing queue "); + _debugLog(_toString(), "Empty Processing queue "); //#endif } } @@ -254,7 +254,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi if (newState === ePromiseState.Resolved && isPromiseLike(theValue)) { _state = ePromiseState.Resolving; //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Resolving"); + _debugLog(_toString(), "Resolving"); //#endif theValue.then( _createSettleIfFn(ePromiseState.Resolved, ePromiseState.Resolving), @@ -266,18 +266,18 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi _hasResolved = true; _settledValue = theValue; //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), _strState()); + _debugLog(_toString(), _strState()); //#endif _processQueue(); if (!_handled && newState === ePromiseState.Rejected && !_unHandledRejectionHandler) { //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Setting up unhandled rejection"); + _debugLog(_toString(), "Setting up unhandled rejection"); //#endif _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout) } } else { //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Already " + _strState()); + _debugLog(_toString(), "Already " + _strState()); //#endif } }; @@ -289,7 +289,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi _handled = true; if (isNode()) { //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Emitting " + NODE_UNHANDLED_REJECTION); + _debugLog(_toString(), "Emitting " + NODE_UNHANDLED_REJECTION); //#endif process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise); } else { @@ -298,7 +298,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = createCachedValue(safe(getInst<_PromiseRejectionEvent>, [STR_PROMISE + "RejectionEvent"]).v)); //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Emitting " + UNHANDLED_REJECTION); + _debugLog(_toString(), "Emitting " + UNHANDLED_REJECTION); //#endif emitEvent(gbl, UNHANDLED_REJECTION, (theEvt: any) => { objDefine(theEvt, "promise", { g: () => _thePromise }); @@ -330,7 +330,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi let createStack: string; //#if DEBUG - //#:(!{DEBUG}) createStack = _getCaller("Created", 5); + createStack = _getCaller("Created", 5); //#endif function _toString() { return "IPromise" + (_promiseDebugEnabled ? "[" + _id + (!isUndefined(_parentId) ? (":" + _parentId) : "") + "]" : "") + " " + _strState() + (_hasResolved ? (" - " + dumpFnObj(_settledValue)) : "") + (createStack ? " @ " + createStack : ""); @@ -346,7 +346,7 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi const _rejectFn = _createSettleIfFn(ePromiseState.Rejected, ePromiseState.Pending); try { //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Executing"); + _debugLog(_toString(), "Executing"); //#endif executor.call( _thePromise, @@ -354,18 +354,18 @@ export function _createPromise(newPromise: PromiseCreatorFn, processor: Promi _rejectFn); } catch (e) { //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Exception thrown: " + dumpFnObj(e)); + _debugLog(_toString(), "Exception thrown: " + dumpFnObj(e)); //#endif _rejectFn(e); } //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "~Executing"); + _debugLog(_toString(), "~Executing"); //#endif })(); //#ifdef DEBUG - //#:(!DEBUG) _debugLog(_toString(), "Returning"); + _debugLog(_toString(), "Returning"); //#endif return _thePromise; } @@ -437,7 +437,7 @@ export function _createResolvedPromise(newPromise: PromiseCreatorFn): (value: return newPromise((resolve) => { //#ifdef DEBUG - //#:(!DEBUG) _debugLog(String(this), "Resolving Promise"); + _debugLog(String(this), "Resolving Promise"); //#endif resolve(value); }, additionalArgs); @@ -459,7 +459,7 @@ export function _createRejectedPromise(newPromise: PromiseCreatorFn): (reason let additionalArgs = arrSlice(arguments, 1); return newPromise((_resolve, reject) => { //#ifdef DEBUG - //#:(!DEBUG) _debugLog(String(this), "Rejecting Promise"); + _debugLog(String(this), "Rejecting Promise"); //#endif reject(reason); }, additionalArgs); diff --git a/lib/src/promise/debug.ts b/lib/src/promise/debug.ts index 87d28d6..f11af64 100644 --- a/lib/src/promise/debug.ts +++ b/lib/src/promise/debug.ts @@ -20,7 +20,7 @@ let _debugHandled: any; export let _promiseDebugEnabled = false; //#ifdef DEBUG -//#:(!DEBUG) let _theLogger: (id: string, message: string) => void = null; +let _theLogger: (id: string, message: string) => void = null; //#endif /** @@ -31,9 +31,9 @@ export let _promiseDebugEnabled = false; */ export const _debugLog = (/*#__PURE__*/_pureAssign((id: string, message: string) => { //#ifdef DEBUG - //#:(!DEBUG) if (_theLogger) { - //#:(!DEBUG) _theLogger(id, message); - //#:(!DEBUG) } + if (_theLogger) { + _theLogger(id, message); + } //#endif })); @@ -100,6 +100,6 @@ export function _addDebugState(thePromise: any, stateFn: () => string, resultFn: export function setPromiseDebugState(enabled: boolean, logger?: (id: string, message: string) => void) { _promiseDebugEnabled = enabled; //#ifdef DEBUG - //#:(!DEBUG) _theLogger = logger; + _theLogger = logger; //#endif } \ No newline at end of file diff --git a/lib/src/promise/nativePromise.ts b/lib/src/promise/nativePromise.ts index 6946187..0f894a3 100644 --- a/lib/src/promise/nativePromise.ts +++ b/lib/src/promise/nativePromise.ts @@ -65,12 +65,12 @@ let _anyNativeCreator: ICachedValue<(values: */ export function _clearPromiseCache(useNative: boolean) { //#ifdef _DEBUG -//#:(!_DEBUG) _useNative = !!useNative; -//#:(!_DEBUG) _promiseCls = null as any; -//#:(!_DEBUG) _allCreator = null as any; -//#:(!_DEBUG) _allNativeSettledCreator = null as any; -//#:(!_DEBUG) _raceNativeCreator = null as any; -//#:(!_DEBUG) _anyNativeCreator = null as any; + _useNative = !!useNative; + _promiseCls = null as any; + _allCreator = null as any; + _allNativeSettledCreator = null as any; + _raceNativeCreator = null as any; + _anyNativeCreator = null as any; //#endif } diff --git a/lib/src/scheduler/taskScheduler.ts b/lib/src/scheduler/taskScheduler.ts index aeffde8..c352a85 100644 --- a/lib/src/scheduler/taskScheduler.ts +++ b/lib/src/scheduler/taskScheduler.ts @@ -15,7 +15,7 @@ import { ITaskScheduler } from "../interfaces/ITaskScheduler"; import { createPromise } from "../promise/promise"; //#ifdef DEBUG -//#:(!DEBUG) import { _debugLog } from "../promise/debug"; +import { _debugLog } from "../promise/debug"; //#endif const REJECT = "reject"; @@ -210,7 +210,7 @@ export function createTaskScheduler(newPromise?: (executor: PromiseExecutor(executor: PromiseExecutor(executor: PromiseExecutor { //#ifdef DEBUG - //#:(!DEBUG) let taskId = taskDetail.id; - //#:(!DEBUG) let prevTaskId = prevTask.id; - //#:(!DEBUG) _debugLog(_schedulerName, "[" + taskId + "] is waiting for [" + prevTaskId + "] to complete before starting -- [" + _waiting.length + "] waiting"); + let taskId = taskDetail.id; + let prevTaskId = prevTask.id; + _debugLog(_schedulerName, "[" + taskId + "] is waiting for [" + prevTaskId + "] to complete before starting -- [" + _waiting.length + "] waiting"); //#endif // Wait for the previous tasks to complete before starting this one. From 9e122b94709b033fcf1309dfc1611931e7172472 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Feb 2026 05:12:40 +0000 Subject: [PATCH 6/9] Use recommended version range for @nevware21/tripwire (>= 0.1.5 < 2.x) Co-authored-by: nev21 <82737406+nev21@users.noreply.github.com> --- lib/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/package.json b/lib/package.json index 0930609..d898c54 100644 --- a/lib/package.json +++ b/lib/package.json @@ -78,7 +78,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.2", "@microsoft/api-extractor": "^7.48.1", - "@nevware21/tripwire": "^0.1.5", + "@nevware21/tripwire": ">= 0.1.5 < 2.x", "@nevware21/ts-preproc": "^0.1.3", "@rollup/plugin-commonjs": "^29.0.0", "@rollup/plugin-json": "^6.0.0", From 3d17553e7e7769f0a8ea114c7dc9ccf15013c323 Mon Sep 17 00:00:00 2001 From: nevware21-bot <252503968+nevware21-bot@users.noreply.github.com> Date: Tue, 3 Feb 2026 21:14:57 -0800 Subject: [PATCH 7/9] chore: syncing versions and shrinkwrap --- common/config/rush/npm-shrinkwrap.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/config/rush/npm-shrinkwrap.json b/common/config/rush/npm-shrinkwrap.json index 7055463..c41318a 100644 --- a/common/config/rush/npm-shrinkwrap.json +++ b/common/config/rush/npm-shrinkwrap.json @@ -10,7 +10,7 @@ "dependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.2", "@microsoft/api-extractor": "^7.48.1", - "@nevware21/tripwire": "^0.1.5", + "@nevware21/tripwire": ">= 0.1.5 < 2.x", "@nevware21/ts-preproc": "^0.1.3", "@nevware21/ts-utils": ">= 0.12.6 < 2.x", "@rollup/plugin-commonjs": "^29.0.0", @@ -1140,11 +1140,11 @@ "node_modules/@rush-temp/ts-async": { "version": "0.0.0", "resolved": "file:projects/ts-async.tgz", - "integrity": "sha512-LG8ZLXgHQ6MI8ebMWbLfbjUosnglmEf2L7rNF9uxHxc+xYiyBwgSVL1UmNhs+NzqZjDTDQfdexGxVKQY/pRcDA==", + "integrity": "sha512-S+8Ol5pOYj7vr+wRguC/a4oeKAUg0yspzS+Sep719M5gwDgnb1plcyRHmX8PYEZyt/5EJNRENZdXT1ANkBHkrg==", "dependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.2", "@microsoft/api-extractor": "^7.48.1", - "@nevware21/tripwire": "^0.1.5", + "@nevware21/tripwire": ">= 0.1.5 < 2.x", "@nevware21/ts-preproc": "^0.1.3", "@nevware21/ts-utils": ">= 0.12.6 < 2.x", "@rollup/plugin-commonjs": "^29.0.0", From 95788f0b6dbded9486a9f4d5df2a91c374239155 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Feb 2026 05:32:16 +0000 Subject: [PATCH 8/9] Add @nevware21/tripwire to cyclicDependencyProjects in rush.json Co-authored-by: nev21 <82737406+nev21@users.noreply.github.com> --- rush.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rush.json b/rush.json index 32f033c..5f53500 100644 --- a/rush.json +++ b/rush.json @@ -7,7 +7,10 @@ { "packageName": "@nevware21/ts-async", "projectFolder": "lib", - "shouldPublish": true + "shouldPublish": true, + "cyclicDependencyProjects": [ + "@nevware21/tripwire" + ] } ] } From 6c2b9232e6899af6230bbc2a6383b99a1ae2cf20 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Feb 2026 05:39:13 +0000 Subject: [PATCH 9/9] Remove cyclicDependencyProjects from rush.json - not valid for external packages Co-authored-by: nev21 <82737406+nev21@users.noreply.github.com> --- rush.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/rush.json b/rush.json index 5f53500..32f033c 100644 --- a/rush.json +++ b/rush.json @@ -7,10 +7,7 @@ { "packageName": "@nevware21/ts-async", "projectFolder": "lib", - "shouldPublish": true, - "cyclicDependencyProjects": [ - "@nevware21/tripwire" - ] + "shouldPublish": true } ] }