@lookit/lookit-initjspsych
Version:
This package overloads jsPsych's init function.
37 lines (33 loc) • 1.42 kB
TypeScript
import { JsPsychExpData } from '@lookit/data/dist/types';
import { JsPsych, DataCollection, JsPsychPlugin } from 'jspsych';
import { PluginInfo, UniversalPluginParameters } from 'jspsych/src/modules/plugins';
import { TimelineDescription, TrialDescription } from 'jspsych/src/timeline';
type UserFuncOnDataUpdate = (data: JsPsychExpData) => void;
type UserFuncOnFinish = (data: DataCollection) => void;
type JsPsychOptions = {
default_iti?: number;
on_data_update?: UserFuncOnDataUpdate;
on_finish?: UserFuncOnFinish;
};
type ChsJsPsychPlugin = JsPsychPlugin<PluginInfo> & UniversalPluginParameters & {
chsData?: () => object;
};
interface ChsTrialDescription extends Omit<TrialDescription, "type"> {
type: ChsJsPsychPlugin;
}
interface ChsTimelineDescription extends Omit<TimelineDescription, "timeline"> {
timeline: ChsTimelineArray;
}
type ChsTimelineArray = Array<ChsTimelineDescription | ChsTrialDescription | ChsTimelineArray>;
interface ChsJsPsych extends Omit<JsPsych, "run"> {
run(timeline: ChsTimelineDescription | ChsTimelineArray): Promise<void>;
}
/**
* Function that returns a function to replace jsPsych's initJsPsych.
*
* @param responseUuid - Response UUID.
* @returns InitJsPsych function.
*/
declare const lookitInitJsPsych: (responseUuid: string) => (opts?: JsPsychOptions) => ChsJsPsych;
export { lookitInitJsPsych as default };
//# sourceMappingURL=index.d.ts.map