From f3612bca5f4ef0a87ed5fb23599b075f8b47bdce Mon Sep 17 00:00:00 2001 From: Roma Sosnovsky Date: Fri, 23 Feb 2024 13:55:02 +0200 Subject: [PATCH] add registerCompletionHandler to main.d.cts --- entrypoints/main.cjs | 4 ++++ entrypoints/main.d.cts | 8 ++++++++ entrypoints/main.mjs | 2 +- lib/worker/base.js | 2 +- lib/worker/completion-handlers.cjs | 15 +++++++++++++++ lib/worker/completion-handlers.js | 13 ------------- 6 files changed, 29 insertions(+), 15 deletions(-) create mode 100644 lib/worker/completion-handlers.cjs delete mode 100644 lib/worker/completion-handlers.js diff --git a/entrypoints/main.cjs b/entrypoints/main.cjs index c0a5562b4..321152a0c 100644 --- a/entrypoints/main.cjs +++ b/entrypoints/main.cjs @@ -1,2 +1,6 @@ 'use strict'; module.exports = require('../lib/worker/main.cjs'); + +const {registerCompletionHandler} = require('../lib/worker/completion-handlers.cjs'); + +module.exports.registerCompletionHandler = registerCompletionHandler; diff --git a/entrypoints/main.d.cts b/entrypoints/main.d.cts index d4fcdc160..6b4fb27ca 100644 --- a/entrypoints/main.d.cts +++ b/entrypoints/main.d.cts @@ -10,3 +10,11 @@ declare const test: TestFn; /** Call to declare a test, or chain to declare hooks or test modifiers */ export default test; + +/** + * Register a function to be called when AVA has completed a test run without uncaught exceptions or unhandled rejections. + * + * Completion handlers are invoked in order of registration. Results are not awaited. + */ +declare const registerCompletionHandler: (handler: () => void) => void; +export {registerCompletionHandler}; diff --git a/entrypoints/main.mjs b/entrypoints/main.mjs index fec379316..dd1505898 100644 --- a/entrypoints/main.mjs +++ b/entrypoints/main.mjs @@ -1,2 +1,2 @@ export {default} from '../lib/worker/main.cjs'; -export {registerCompletionHandler} from '../lib/worker/completion-handlers.js'; +export {registerCompletionHandler} from '../lib/worker/completion-handlers.cjs'; diff --git a/lib/worker/base.js b/lib/worker/base.js index cc8d444c1..5046d79d3 100644 --- a/lib/worker/base.js +++ b/lib/worker/base.js @@ -15,7 +15,7 @@ import Runner from '../runner.js'; import serializeError from '../serialize-error.js'; import channel from './channel.cjs'; -import {runCompletionHandlers} from './completion-handlers.js'; +import {runCompletionHandlers} from './completion-handlers.cjs'; import lineNumberSelection from './line-numbers.js'; import {set as setOptions} from './options.cjs'; import {flags, refs, sharedWorkerTeardowns} from './state.cjs'; diff --git a/lib/worker/completion-handlers.cjs b/lib/worker/completion-handlers.cjs new file mode 100644 index 000000000..2e83e6c55 --- /dev/null +++ b/lib/worker/completion-handlers.cjs @@ -0,0 +1,15 @@ +'use strict'; + +const process = require('node:process'); + +const state = require('./state.cjs'); + +exports.runCompletionHandlers = () => { + for (const handler of state.completionHandlers) { + process.nextTick(() => handler()); + } +}; + +exports.registerCompletionHandler = handler => { + state.completionHandlers.push(handler); +}; diff --git a/lib/worker/completion-handlers.js b/lib/worker/completion-handlers.js deleted file mode 100644 index ddf4b479e..000000000 --- a/lib/worker/completion-handlers.js +++ /dev/null @@ -1,13 +0,0 @@ -import process from 'node:process'; - -import state from './state.cjs'; - -export function runCompletionHandlers() { - for (const handler of state.completionHandlers) { - process.nextTick(() => handler()); - } -} - -export function registerCompletionHandler(handler) { - state.completionHandlers.push(handler); -}