diff --git a/src/Evaluator.ts b/src/Evaluator.ts index cc28cf2..826f5e0 100644 --- a/src/Evaluator.ts +++ b/src/Evaluator.ts @@ -4,6 +4,15 @@ import type { File } from './AppSettings'; const delay = (ms: number) => new Promise((_, reject) => setTimeout(() => reject(new Error('Operation took too long')), ms)); const tryCatchWrapper = (application: Editor, code: string): Promise => { + /** + * This function wraps a string of code in a try/catch block and returns a promise + * that resolves to true if the code is valid and false if the code is invalid after + * being evaluated. + * + * @param application - The main application instance + * @param code - The string of code to wrap and evaluate + * @returns A promise that resolves to true if the code is valid and false if the code is invalid + */ return new Promise((resolve, _) => { try { Function(`with (this) {try{${code}} catch (e) {console.log(e)}};`).call(application.api); @@ -16,6 +25,16 @@ const tryCatchWrapper = (application: Editor, code: string): Promise => } export const tryEvaluate = async ( + /** + * This function attempts to evaluate a string of code in the context of user API. + * If the code is invalid, it will attempt to evaluate the previous valid code. + * + * @param application - The main application instance + * @param code - The set of files to evaluate + * @param timeout - The timeout in milliseconds + * @returns A promise that resolves to void + * + */ application: Editor, code: File, timeout = 5000 @@ -38,6 +57,14 @@ export const tryEvaluate = async ( } export const evaluate = async (application: Editor, code: File, timeout = 1000): Promise => { + /** + * This function evaluates a string of code in the context of user API. + * + * @param application - The main application instance + * @param code - The set of files to evaluate + * @param timeout - The timeout in milliseconds + * @returns A promise that resolves to void + */ try { await Promise.race([tryCatchWrapper(application, code.committed as string), delay(timeout)]); if (code.evaluations) @@ -45,12 +72,4 @@ export const evaluate = async (application: Editor, code: File, timeout = 1000): } catch (error) { console.log(error); } -} - -export const evaluateCommand = async (application: Editor, command: string, timeout = 5000): Promise => { - try { - await Promise.race([tryCatchWrapper(application, command), delay(timeout)]); - } catch (error) { - console.log(error); - } } \ No newline at end of file diff --git a/src/Scales.ts b/src/Scales.ts index 453dc16..9488ab2 100644 --- a/src/Scales.ts +++ b/src/Scales.ts @@ -54,6 +54,13 @@ const SCALES: Record = { }; export function scale(n: number, scaleName: string = 'major', octave: number = 4): number { + /** + * Returns the MIDI note number for the given scale degree in the given scale. + * @param {number} n - The scale degree, where 0 is the tonic. + * @param {string} scaleName - The name of the scale. + * @param {number} octave - The octave number. + * @returns {number} The MIDI note number. + */ const scale = SCALES[scaleName]; if (!scale) { diff --git a/src/Time.ts b/src/Time.ts deleted file mode 100644 index e69de29..0000000