Skip to content

Commit

Permalink
add registerCompletionHandler to main.d.cts
Browse files Browse the repository at this point in the history
  • Loading branch information
sosnovsky committed Feb 23, 2024
1 parent 2e0c2b1 commit f3612bc
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 15 deletions.
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.

0 comments on commit f3612bc

Please sign in to comment.