@openlearning/xapi
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.6 • Public • Published

    xApi Client Library for OpenLearning

    Install:

    npm install @openlearning/xapi --save 
    

    Usage:

    import {
      initLrs,
      saveStatement,
      saveAttachments,
      saveCompletion,
      saveActivityState,
      retrieveActivityState
    } 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.

    // 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:

    // mark as completed
    saveCompletion(lrsConfig);
    
    // mark as completed, saving additional (JSON serializable) data
    saveCompletion(lrsConfig, myData);

    Or to send file URLs to OpenLearning as attachments that can then be shared by the learner:

    // publish (replace) attachments (default, last argument is optional)
    saveAttachments(lrsConfig, [{
      contentType: "text/plain",
      display: "attachment.txt",
      description: "A text file written by the learner",
      fileUrl: "https://www.example.com/attachment.txt"
    }], "published");
    
    // append attachments
    saveAttachments(lrsConfig, [{
      contentType: "text/plain",
      display: "attachment.txt",
      description: "A text file written by the learner",
      fileUrl: "https://www.example.com/attachment.txt"
    }], "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.

    // store state (for the activity and current user)
    saveActivityState(lrsConfig, stateId, state);
    
    // retrieve state (for the activity and current user)
    retrieveActivityState(lrsConfig, stateId).then((state) => {
      console.log(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:

    <script src="./bundle/openlearning-xapi.js"></script">

    will define:

    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
    

    Keywords

    none

    Install

    npm i @openlearning/xapi

    DownloadsWeekly Downloads

    1

    Version

    0.1.6

    License

    MIT

    Unpacked Size

    24.6 kB

    Total Files

    23

    Last publish

    Collaborators

    • openlearning