UNPKG

scorm-again

Version:

A modern SCORM JavaScript run-time library for AICC, SCORM 1.2, and SCORM 2004

102 lines (100 loc) 2.62 kB
import { InternalSettings, LogLevel, ResultObject } from "../types/api_types"; import { global_constants } from "./api_constants"; import { LogLevelEnum } from "./enums"; /** * Default settings for the SCORM API */ export const DefaultSettings: InternalSettings = { autocommit: false, autocommitSeconds: 10, asyncCommit: false, sendFullCommit: true, lmsCommitUrl: false, dataCommitFormat: "json", commitRequestDataType: "application/json;charset=UTF-8", autoProgress: false, logLevel: LogLevelEnum.ERROR, selfReportSessionTime: false, alwaysSendTotalTime: false, renderCommonCommitFields: false, strict_errors: true, xhrHeaders: {}, xhrWithCredentials: false, fetchMode: "cors", responseHandler: async function(response: Response): Promise<ResultObject> { if (typeof response !== "undefined") { const responseText = await response.text(); let httpResult: any = null; if (responseText) { httpResult = JSON.parse(responseText) as any; } if ( httpResult === null || !{}.hasOwnProperty.call(httpResult, "result") ) { if (response.status === 200) { return { result: global_constants.SCORM_TRUE, errorCode: 0 }; } else { return { result: global_constants.SCORM_FALSE, errorCode: 101 }; } } else { return { result: httpResult.result, errorCode: httpResult.errorCode ? httpResult.errorCode : httpResult.result === global_constants.SCORM_TRUE ? 0 : 101 }; } } return { result: global_constants.SCORM_FALSE, errorCode: 101 }; }, requestHandler: function(commitObject) { return commitObject; }, onLogMessage: function(messageLevel: LogLevel, logMessage) { switch (messageLevel) { case "4": case 4: case "ERROR": case LogLevelEnum.ERROR: console.error(logMessage); break; case "3": case 3: case "WARN": case LogLevelEnum.WARN: console.warn(logMessage); break; case "2": case 2: case "INFO": case LogLevelEnum.INFO: console.info(logMessage); break; case "1": case 1: case "DEBUG": case LogLevelEnum.DEBUG: if (console.debug) { console.debug(logMessage); } else { console.log(logMessage); } break; } }, scoItemIds: [], scoItemIdValidator: false, globalObjectiveIds: [] };