📄 general.ts¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 12 |
| 📊 Variables & Constants | 4 |
| ⚡ Async/Await Patterns | 2 |
| 📐 Interfaces | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/shared/utils/general.ts
Variables & Constants¶
| Name | Type | Kind | Value | Exported |
|---|---|---|---|---|
_promise |
Promise<T> | undefined |
let/var | *not shown* |
✗ |
_prev |
Promise<T> |
let/var | _promise |
✗ |
value |
string |
const | target.match(/^-?\d+\.?\d*/)?.[0] || '' |
✗ |
result |
number |
const | (Number.parseFloat(value) + delta) |
✗ |
Async/Await Patterns¶
| Type | Function | Await Expressions | Promise Chains |
|---|---|---|---|
| promise-chain | promiseTimeout |
none | new Promise(...) |
| await-expression | createSingletonPromise |
_prev | none |
Functions¶
promiseTimeout(ms: number, throwOnTimeout: boolean, reason: string): Promise<void>¶
Code
- Parameters:
ms: numberthrowOnTimeout: booleanreason: string- Return Type:
Promise<void> - Calls:
setTimeoutreject
identity(arg: T): T¶
- Parameters:
arg: T- Return Type:
T
createSingletonPromise(fn: () => Promise<T>): SingletonPromiseReturn<T>¶
Code
export function createSingletonPromise<T>(fn: () => Promise<T>): SingletonPromiseReturn<T> {
let _promise: Promise<T> | undefined
function wrapper() {
if (!_promise)
_promise = fn()
return _promise
}
wrapper.reset = async () => {
const _prev = _promise
_promise = undefined
if (_prev)
await _prev
}
return wrapper
}
-
JSDoc:
-
Parameters:
fn: () => Promise<T>- Return Type:
SingletonPromiseReturn<T> - Calls:
fn
wrapper(): Promise<T>¶
- Return Type:
Promise<T> - Calls:
fn
invoke(fn: () => T): T¶
- Parameters:
fn: () => T- Return Type:
T - Calls:
fn
containsProp(obj: object, props: string[]): boolean¶
Code
- Parameters:
obj: objectprops: string[]- Return Type:
boolean - Calls:
props.some
increaseWithUnit(target: number, delta: number): number¶
-
JSDoc:
-
Parameters:
target: numberdelta: number- Return Type:
number
pxValue(px: string): number¶
Code
-
JSDoc:
-
Parameters:
px: string- Return Type:
number - Calls:
px.endsWithNumber.parseFloat
objectPick(obj: O, keys: T[], omitUndefined: boolean): Pick<O, T>¶
Code
-
JSDoc:
-
Parameters:
obj: Okeys: T[]omitUndefined: boolean- Return Type:
Pick<O, T> - Calls:
keys.reduce
objectOmit(obj: O, keys: T[], omitUndefined: boolean): Omit<O, T>¶
Code
-
JSDoc:
-
Parameters:
obj: Okeys: T[]omitUndefined: boolean- Return Type:
Omit<O, T> - Calls:
Object.fromEntriesObject.entries(obj).filterkeys.includes
objectEntries(obj: T): [keyof T, T[keyof T]][]¶
Code
- Parameters:
obj: T- Return Type:
[keyof T, T[keyof T]][] - Calls:
Object.entries
toArray(value: T | readonly T[]): readonly T[]¶
- Parameters:
value: T | readonly T[]- Return Type:
readonly T[]
Interfaces¶
SingletonPromiseReturn<T>¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
reset |
() => Promise<void> |
✗ |