@docusign/iam-sdk
Version:
Developer-friendly & type-safe Typescript SDK specifically catered to leverage *@docusign/iam-sdk* API.
34 lines (29 loc) • 977 B
text/typescript
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import { type Unrecognized, unrecognized } from "./unrecognized.js";
let globalCount = 0;
let refCount = 0;
export function defaultToZeroValue<T>(value: T): Unrecognized<T> {
globalCount++;
return unrecognized(value);
}
export function startCountingDefaultToZeroValue() {
refCount++;
const start = globalCount;
return {
/**
* Ends counting and returns the delta.
* @param delta - If provided, only this amount is added to the parent counter
* (used for nested unions where we only want to record the winning option's count).
* If not provided, records all counts since start().
*/
end: (delta?: number) => {
const count = globalCount - start;
// Reset globalCount back to start, then add only the specified delta
globalCount = start + (delta ?? count);
if (--refCount === 0) globalCount = 0;
return count;
},
};
}