Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add registerCompletionHandler to main.d.cts #3307

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 4 additions & 0 deletions 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;
8 changes: 8 additions & 0 deletions entrypoints/main.d.cts
Expand Up @@ -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};
2 changes: 1 addition & 1 deletion 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';
2 changes: 1 addition & 1 deletion lib/worker/base.js
Expand Up @@ -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';
Expand Down
15 changes: 15 additions & 0 deletions 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);
};
13 changes: 0 additions & 13 deletions lib/worker/completion-handlers.js

This file was deleted.