@jspsych/new-extension
Version:
CLI tool to create new jsPsych extensions
60 lines (47 loc) • 1.9 kB
text/typescript
import { JsPsych, JsPsychExtension, JsPsychExtensionInfo, ParameterType } from "jspsych";
import { version } from "../package.json";
interface InitializeParameters {}
interface OnStartParameters {}
interface OnLoadParameters {}
interface OnFinishParameters {}
/**
* **{packageName}**
*
* {description}
*
* @author {author}
* @see {@link {documentationUrl}}}
*/
class ExtensionNameExtension implements JsPsychExtension {
static info: JsPsychExtensionInfo = {
name: "{packageName}",
version: version,
data: {
/** Provide a clear description of the data1 that could be used as documentation. We will eventually use these comments to automatically build documentation and produce metadata. */
data1: {
type: ParameterType.INT,
},
/** Provide a clear description of the data2 that could be used as documentation. We will eventually use these comments to automatically build documentation and produce metadata. */
data2: {
type: ParameterType.STRING,
},
},
// When you run build on your extension, citations will be generated here based on the information in the CITATION.cff file.
citations: '__CITATIONS__',
};
constructor(private jsPsych: JsPsych) {}
initialize = ({}: InitializeParameters): Promise<void> => {
return new Promise((resolve, reject) => {
resolve();
});
};
on_start = ({}: OnStartParameters): void => {};
on_load = ({}: OnLoadParameters): void => {};
on_finish = ({}: OnFinishParameters): { [key: string]: any } => {
return {
data1: 99, // Make sure this type and name matches the information for data1 in the data object contained within the info const.
data2: "hello world!", // Make sure this type and name matches the information for data2 in the data object contained within the info const.
};
};
}
export default ExtensionNameExtension;