Skip to content

usescorm

React hook that wraps the SCORM run-time API and keeps state in suspend data

Maintained Last commit Checked · 24 Aug 2026

The facts

Licence
MIT — OSI approved
Deployment
Embedded in your own application
Platforms
Library

Standards support

Every line says where the claim came from. We do not test conformance ourselves and we issue no badge of our own.

Standards support for usescorm, with the source of each claim and the date it was last confirmed.
Standard Supported Provenance Checked Note
SCORM 1.2 Yes editor-checked · 24 Aug 2026— source, opens in a new tab`CMIElement1_2` and `IScorm1_2` are typed out element by element, and the instance branches on a '1.2' version case.
SCORM 2004 Yes editor-checked · 24 Aug 2026— source, opens in a new tab`API_1484_11` is looked up and `CMIElement2004` is typed separately. An 'auto' mode intersects both type sets when the version is unknown.
xAPI Not stated
cmi5 Not stated
AICC Not stated
LTI Not stated
Claimed
— the vendor states it. We have not confirmed it.
Checked
— an editor confirmed it on the date shown.
Verified
— an official registry lists it, and we link to the entry.

Editor's notes

A React hook over the SCORM run-time API, distributed on npm as @blocdigital/usescorm. useScorm({ version: '1.2' }) finds the API object, initialises the session, and returns an instance exposing get, set, commit and terminate alongside a small event emitter. It handles completion status and exit mode automatically by default, and auto-commits on change unless you turn that off.

The part worth noticing is the typing. Rather than accepting arbitrary strings, the CMI data model elements for 1.2 and 2004 are enumerated as union types, and the generic resolves to the intersection of both when the version is set to auto. In a TypeScript course build that turns a whole class of silent failure — a mistyped element name returning an empty string at run time — into a compile error.

It suits React-built courses and course players. It is no help to anyone not using React, and it does no packaging: you still need a packager to emit the manifest and zip.

On maintenance, be realistic about scale. This is a single agency's library at version 0.2.3, last released February 2025, with single-figure stars and no visible outside contributors. The code is short and readable enough to audit in an afternoon, which is the honest basis on which to depend on it.

Listed on scorm-tools.com

Maintainers and vendors are welcome to show the listing badge in a README or on a product page. It is free, it does not require a claim, and there is nothing to buy.

Get the embed code