@orfon/didomi-types
v1.0.0
Published
TypeScript definitions for Didomi Web SDK (window.Didomi)
Downloads
149
Readme
@orfon/didomi-types
TypeScript type definitions for the Didomi Web SDK. This package augments the global Window interface so window.Didomi, window.didomiOnReady, window.didomiConfig, and window.__tcfapi are properly typed.
Installation
npm install @orfon/didomi-types --save-devUsage
After installing, the global Window interface is augmented automatically — no manual import needed for window properties.
Typed didomiOnReady callback
The callback parameter is typed as IDidomiObject, so all SDK methods and their return types are available:
window.didomiOnReady = window.didomiOnReady || [];
window.didomiOnReady.push((Didomi) => {
// Didomi is typed as IDidomiObject
// .getCurrentUserStatus() returns CurrentUserStatus
const status = Didomi.getCurrentUserStatus();
status.user_id; // string
status.regulation; // string
status.purposes; // Map<PurposeStatus>
status.vendors; // Map<VendorStatus>
});Type-checked events
EventType is a string union — typos and invalid event names are caught at compile time:
window.didomiOnReady?.push((Didomi) => {
Didomi.on('consent.changed', () => {}); // ok
Didomi.on('notice.shown', () => {}); // ok
Didomi.on('conset.changed', () => {}); // TS error: not assignable to EventType
});Importing types directly
You can import types for use in your own function signatures:
import type { CurrentUserStatus, Vendor, Purpose, EventType } from '@orfon/didomi-types';
function handleConsentChange(status: CurrentUserStatus): void {
const enabledVendors = Object.values(status.vendors)
.filter((v) => v.enabled);
// ...
}Typed didomiConfig
Configuration is typed as DidomiConfig, giving you autocomplete and validation:
window.didomiConfig = {
app: {
apiKey: 'your-api-key',
name: 'Your App',
},
languages: {
enabled: ['en', 'de'],
default: 'en',
},
};Exported Types
The main types provided by this package:
| Type | Description |
| --- | --- |
| IDidomiObject | The main SDK object (window.Didomi) |
| CurrentUserStatus | Return type of getCurrentUserStatus() |
| Vendor / VendorStatus | Vendor definitions and consent status |
| Purpose / PurposeStatus | Purpose definitions and consent status |
| EventType | String union of all SDK event names |
| DidomiConfig | Configuration object for window.didomiConfig |
| CurrentUserStatusTransaction | Transaction for batch consent updates |
| TcfApi | IAB TCF v2 API (window.__tcfapi) |
