pic-js-mops
Version:
An Internet Computer Protocol canister testing library for TypeScript and JavaScript.
23 lines (19 loc) • 491 B
text/typescript
import { IDL } from '@icp-sdk/core/candid';
import { isNil } from './is-nil.js';
export function optional<T>(value: T | undefined | null): [] | [T] {
return isNil(value) ? [] : [value];
}
export function decodeCandid<T>(
types: IDL.Type[],
data: Uint8Array,
): T | null {
const returnValues = IDL.decode(types, data);
switch (returnValues.length) {
case 0:
return null;
case 1:
return returnValues[0] as T;
default:
return returnValues as T;
}
}