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
text/typescript
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: []
};