📄 general¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 12 |
| ⚡ Async/Await Patterns | 2 |
| 📐 Interfaces | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/shared/utils/general.ts
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>¶
Parameters:
msnumberthrowOnTimeoutbooleanreasonstring
Returns: Promise<void>
Calls:
setTimeout
Code
identity(arg: T): T¶
Parameters:
argT
Returns: T
createSingletonPromise(fn: () => Promise<T>): SingletonPromiseReturn<T>¶
Create singleton promise function
Examples:
const promise = createSingletonPromise(async () => { ... })await promise() await promise() // all of them will be bind to a single promise instance await promise() // and be resolved together
Raw JSDoc
Calls:
fn
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
}
invoke(fn: () => T): T¶
Parameters:
fn() => T
Returns: T
Calls:
fn
containsProp(obj: object, props: string[]): boolean¶
Parameters:
objobjectpropsstring[]
Returns: boolean
Calls:
props.some
Code
increaseWithUnit(target: number, delta: number): number¶
Increase string a value with unit
Examples:
Raw JSDoc
pxValue(px: string): number¶
Get a px value for SSR use, do not rely on this method outside of SSR as REM unit is assumed at 16px, which might not be the case on the client
Raw JSDoc
Calls:
px.endsWithNumber.parseFloat
Code
objectPick(obj: O, keys: T[], omitUndefined: boolean): Pick<O, T>¶
Create a new subset object by giving keys
Calls:
keys.reduce
Code
objectOmit(obj: O, keys: T[], omitUndefined: boolean): Omit<O, T>¶
Create a new subset object by omit giving keys
Calls:
Object.fromEntriesObject.entries(obj).filterkeys.includes
Code
objectEntries(obj: T): [keyof T, T[keyof T]][]¶
Parameters:
objT
Returns: [keyof T, T[keyof T]][]
Calls:
Object.entries
Code
toArray(value: T | readonly T[]): readonly T[]¶
Parameters:
valueT | readonly T[]
Returns: readonly T[]
Internal helpers¶
Declared inside another function in this file.
wrapper(): Promise<T>¶
Returns: Promise<T>
Calls:
fn
Interfaces¶
SingletonPromiseReturn<T>¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
reset |
() => Promise<void> |
✗ | not shown |
Generated by Syntax Scribe