Zero-dependency, auto-generated TypeScript definitions for ARToolKit5 constants.
This package provides a strict "Single Source of Truth" for the ARToolKit ecosystem. Instead of manually maintaining magic numbers in JavaScript, we extract values directly from the C++ source code using a WebAssembly extractor.
npm install @ar-js-org/artoolkit5-constantsThis library exports constants individually to support tree-shaking. You have two ways to use them depending on your preference.
Import only what you need. This allows bundlers (Webpack, Rollup, Vite) to remove unused code, keeping your application lightweight.
import {
AR_PIXEL_FORMAT_RGBA,
AR_MATRIX_CODE_DETECTION
} from '@ar-js-org/artoolkit5-constants';
// Example: Configuring ARController
const config = {
pixelFormat: AR_PIXEL_FORMAT_RGBA,
detectionMode: AR_MATRIX_CODE_DETECTION
};
if (config.pixelFormat === AR_PIXEL_FORMAT_RGBA) {
console.log("Using RGBA format");
}If you prefer accessing constants via a global object (similar to how Enums work or legacy ARToolKit structure), use the import * as syntax:
import * as AR from '@ar-js-org//artoolkit5-constants';
// Now you can access everything under 'AR'
console.log(AR.AR_LOG_LEVEL_ERROR); // Output: 3
console.log(AR.AR_TEMPLATE_MATCHING_MONO); // Output: 1
function setLogLevel(level: number) {
if (level === AR.AR_LOG_LEVEL_DEBUG) {
// enable debug tools
}
}This project uses a unique build pipeline to ensure accuracy:
- C++ Source: It links against the
WebARKitLibsubmodule. - Embind Extraction: A minimal C++ program exposes macros and enums via WebAssembly.
- Generation: A Node.js script loads the WASM, reads the values, and generates a static
.tsfile.
- Emscripten SDK
- CMake
- Ninja
- Node.js (v18+)
# 1. Install dependencies
npm install
# 2. Initialize submodule (ARToolKit5 source)
git submodule update --init --recursive
# 3. Generate the TypeScript file (Requires Emscripten environment active)
npm run generate
# 4. Build the final package (Transpile to JS + .d.ts)
npm run buildThe generated source file is located at src/generated/artoolkit_constants.ts.
This project is licensed under the GPLv3 License - see the LICENSE file for details.