@openlearning/xapi
Advanced tools
Comparing version 0.1.2 to 0.1.3
import { XApiState } from "./lrs"; | ||
import { XApiConfig } from "./xapi-interface"; | ||
export declare const saveActivityState: (config: XApiConfig, stateId: string, state: XApiState) => Promise<boolean>; | ||
export declare const retrieveActivityState: (config: XApiConfig, stateId: string, isNullOnNotFound?: boolean) => Promise<XApiState>; | ||
export declare const retrieveActivityState: (config: XApiConfig, stateId: string, defaultValue?: import("./statement").JsonSerializableObject | undefined) => Promise<XApiState>; |
@@ -15,3 +15,3 @@ "use strict"; | ||
exports.saveActivityState = saveActivityState; | ||
const retrieveActivityState = (config, stateId, isNullOnNotFound = false) => { | ||
const retrieveActivityState = (config, stateId, defaultValue) => { | ||
if (!config) { | ||
@@ -25,4 +25,4 @@ return Promise.reject({ | ||
return lrs.retrieveActivityState(config.activity_id, stateId, config.actor).then((response) => { | ||
if (isNullOnNotFound && response.status === 404) { | ||
return Promise.resolve(null); | ||
if (defaultValue && response.status === 404) { | ||
return Promise.resolve(defaultValue); | ||
} | ||
@@ -29,0 +29,0 @@ else if (response.status !== 200) { |
{ | ||
"name": "@openlearning/xapi", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"main": "dist/index.js", | ||
@@ -19,2 +19,3 @@ "types": "dist/index.d.ts", | ||
"build": "tsc", | ||
"bundle": "webpack", | ||
"prepare": "npm run build", | ||
@@ -25,9 +26,15 @@ "version": "git add -A src", | ||
"devDependencies": { | ||
"typescript": "^4.2.4" | ||
"@babel/core": "^7.14.5", | ||
"@babel/preset-env": "^7.14.5", | ||
"ts-loader": "^9.2.3", | ||
"typescript": "^4.3.2", | ||
"webpack": "^5.38.1", | ||
"webpack-cli": "^4.7.2" | ||
}, | ||
"dependencies": {}, | ||
"files": [ | ||
"dist", | ||
"vendor" | ||
] | ||
"dist" | ||
], | ||
"dependencies": { | ||
"babel-loader": "^8.2.2" | ||
} | ||
} |
@@ -11,3 +11,3 @@ # xApi Client Library for OpenLearning | ||
``` | ||
```javascript | ||
import { | ||
@@ -21,6 +21,14 @@ initLrs, | ||
} from "@openlearning/xapi"; | ||
``` | ||
The webpage will be loaded with query string arguments that configure the LRS connection. | ||
The `initLrs` function returns the configuration retrieved from the query (search) string. | ||
```javascript | ||
// on load | ||
const lrsConfig = initLrs(); | ||
``` | ||
Once an LRS connection is configured, this config can be used with the other functions, | ||
e.g. to mark this activity as completed: | ||
```javascript | ||
// mark as completed | ||
@@ -31,4 +39,7 @@ saveCompletion(lrsConfig); | ||
saveCompletion(lrsConfig, myData); | ||
``` | ||
// publish attachments (default, optional last argument) | ||
Or to send file URLs to OpenLearning as attachments that can then be shared by the learner: | ||
```javascript | ||
// publish (replace) attachments (default, last argument is optional) | ||
saveAttachments(lrsConfig, [{ | ||
@@ -48,3 +59,9 @@ contentType: "text/plain", | ||
}], "attached"); | ||
``` | ||
Activity State can also be set and retrieved for the current user of this activity: | ||
Note, to use these, the setting: "OpenLearning LRS: Use OpenLearning to store xAPI documents and state (Experimental)" | ||
needs to be activated under Course Setup > Advanced. | ||
```javascript | ||
// store state (for the activity and current user) | ||
@@ -59,1 +76,33 @@ saveActivityState(lrsConfig, stateId, state); | ||
``` | ||
## Standalone Bundle | ||
If you're not using npm (e.g. you're not building with webpack, etc.) and want to just use a `<script>` tag, using: | ||
```html | ||
<script src="./bundle/openlearning-xapi.js"></script"> | ||
``` | ||
will define: | ||
```javascript | ||
window.xApi = { | ||
initLrs, | ||
saveStatement, | ||
saveAttachments, | ||
saveCompletion, | ||
saveActivityState, | ||
retrieveActivityState | ||
}; | ||
``` | ||
## Development | ||
Build the `./dist` folder: | ||
``` | ||
npm run build | ||
``` | ||
Build the standalone bundle: `./bundle/openlearning-xapi.js`: | ||
``` | ||
npm run bundle | ||
``` |
Sorry, the diff of this file is not supported yet
24592
104
1
6
+ Addedbabel-loader@^8.2.2
+ Added@ampproject/remapping@2.3.0(transitive)
+ Added@babel/code-frame@7.26.2(transitive)
+ Added@babel/compat-data@7.26.8(transitive)
+ Added@babel/core@7.26.9(transitive)
+ Added@babel/generator@7.26.9(transitive)
+ Added@babel/helper-compilation-targets@7.26.5(transitive)
+ Added@babel/helper-module-imports@7.25.9(transitive)
+ Added@babel/helper-module-transforms@7.26.0(transitive)
+ Added@babel/helper-string-parser@7.25.9(transitive)
+ Added@babel/helper-validator-identifier@7.25.9(transitive)
+ Added@babel/helper-validator-option@7.25.9(transitive)
+ Added@babel/helpers@7.26.9(transitive)
+ Added@babel/parser@7.26.9(transitive)
+ Added@babel/template@7.26.9(transitive)
+ Added@babel/traverse@7.26.9(transitive)
+ Added@babel/types@7.26.9(transitive)
+ Added@jridgewell/gen-mapping@0.3.8(transitive)
+ Added@jridgewell/resolve-uri@3.1.2(transitive)
+ Added@jridgewell/set-array@1.2.1(transitive)
+ Added@jridgewell/source-map@0.3.6(transitive)
+ Added@jridgewell/sourcemap-codec@1.5.0(transitive)
+ Added@jridgewell/trace-mapping@0.3.25(transitive)
+ Added@types/eslint@9.6.1(transitive)
+ Added@types/eslint-scope@3.7.7(transitive)
+ Added@types/estree@1.0.6(transitive)
+ Added@types/json-schema@7.0.15(transitive)
+ Added@types/node@22.13.8(transitive)
+ Added@webassemblyjs/ast@1.14.1(transitive)
+ Added@webassemblyjs/floating-point-hex-parser@1.13.2(transitive)
+ Added@webassemblyjs/helper-api-error@1.13.2(transitive)
+ Added@webassemblyjs/helper-buffer@1.14.1(transitive)
+ Added@webassemblyjs/helper-numbers@1.13.2(transitive)
+ Added@webassemblyjs/helper-wasm-bytecode@1.13.2(transitive)
+ Added@webassemblyjs/helper-wasm-section@1.14.1(transitive)
+ Added@webassemblyjs/ieee754@1.13.2(transitive)
+ Added@webassemblyjs/leb128@1.13.2(transitive)
+ Added@webassemblyjs/utf8@1.13.2(transitive)
+ Added@webassemblyjs/wasm-edit@1.14.1(transitive)
+ Added@webassemblyjs/wasm-gen@1.14.1(transitive)
+ Added@webassemblyjs/wasm-opt@1.14.1(transitive)
+ Added@webassemblyjs/wasm-parser@1.14.1(transitive)
+ Added@webassemblyjs/wast-printer@1.14.1(transitive)
+ Added@xtuc/ieee754@1.2.0(transitive)
+ Added@xtuc/long@4.2.2(transitive)
+ Addedacorn@8.14.0(transitive)
+ Addedajv@6.12.68.17.1(transitive)
+ Addedajv-formats@2.1.1(transitive)
+ Addedajv-keywords@3.5.25.1.0(transitive)
+ Addedbabel-loader@8.4.1(transitive)
+ Addedbig.js@5.2.2(transitive)
+ Addedbrowserslist@4.24.4(transitive)
+ Addedbuffer-from@1.1.2(transitive)
+ Addedcaniuse-lite@1.0.30001701(transitive)
+ Addedchrome-trace-event@1.0.4(transitive)
+ Addedcommander@2.20.3(transitive)
+ Addedcommondir@1.0.1(transitive)
+ Addedconvert-source-map@2.0.0(transitive)
+ Addeddebug@4.4.0(transitive)
+ Addedelectron-to-chromium@1.5.109(transitive)
+ Addedemojis-list@3.0.0(transitive)
+ Addedenhanced-resolve@5.18.1(transitive)
+ Addedes-module-lexer@1.6.0(transitive)
+ Addedescalade@3.2.0(transitive)
+ Addedeslint-scope@5.1.1(transitive)
+ Addedesrecurse@4.3.0(transitive)
+ Addedestraverse@4.3.05.3.0(transitive)
+ Addedevents@3.3.0(transitive)
+ Addedfast-deep-equal@3.1.3(transitive)
+ Addedfast-json-stable-stringify@2.1.0(transitive)
+ Addedfast-uri@3.0.6(transitive)
+ Addedfind-cache-dir@3.3.2(transitive)
+ Addedfind-up@4.1.0(transitive)
+ Addedgensync@1.0.0-beta.2(transitive)
+ Addedglob-to-regexp@0.4.1(transitive)
+ Addedglobals@11.12.0(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhas-flag@4.0.0(transitive)
+ Addedjest-worker@27.5.1(transitive)
+ Addedjs-tokens@4.0.0(transitive)
+ Addedjsesc@3.1.0(transitive)
+ Addedjson-parse-even-better-errors@2.3.1(transitive)
+ Addedjson-schema-traverse@0.4.11.0.0(transitive)
+ Addedjson5@2.2.3(transitive)
+ Addedloader-runner@4.3.0(transitive)
+ Addedloader-utils@2.0.4(transitive)
+ Addedlocate-path@5.0.0(transitive)
+ Addedlru-cache@5.1.1(transitive)
+ Addedmake-dir@3.1.0(transitive)
+ Addedmerge-stream@2.0.0(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addedms@2.1.3(transitive)
+ Addedneo-async@2.6.2(transitive)
+ Addednode-releases@2.0.19(transitive)
+ Addedp-limit@2.3.0(transitive)
+ Addedp-locate@4.1.0(transitive)
+ Addedp-try@2.2.0(transitive)
+ Addedpath-exists@4.0.0(transitive)
+ Addedpicocolors@1.1.1(transitive)
+ Addedpkg-dir@4.2.0(transitive)
+ Addedpunycode@2.3.1(transitive)
+ Addedrandombytes@2.1.0(transitive)
+ Addedrequire-from-string@2.0.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedschema-utils@2.7.14.3.0(transitive)
+ Addedsemver@6.3.1(transitive)
+ Addedserialize-javascript@6.0.2(transitive)
+ Addedsource-map@0.6.1(transitive)
+ Addedsource-map-support@0.5.21(transitive)
+ Addedsupports-color@8.1.1(transitive)
+ Addedtapable@2.2.1(transitive)
+ Addedterser@5.39.0(transitive)
+ Addedterser-webpack-plugin@5.3.12(transitive)
+ Addedundici-types@6.20.0(transitive)
+ Addedupdate-browserslist-db@1.1.3(transitive)
+ Addeduri-js@4.4.1(transitive)
+ Addedwatchpack@2.4.2(transitive)
+ Addedwebpack@5.98.0(transitive)
+ Addedwebpack-sources@3.2.3(transitive)
+ Addedyallist@3.1.1(transitive)