mirror of https://github.com/iconify/api.git
35 lines
492 B
TypeScript
35 lines
492 B
TypeScript
// Status
|
|
let loading = true;
|
|
|
|
// Queue
|
|
type Callback = () => void;
|
|
const queue: Callback[] = [];
|
|
|
|
/**
|
|
* Loaded: run queue
|
|
*/
|
|
export function loaded() {
|
|
loading = false;
|
|
|
|
// Run queue
|
|
let callback: Callback | undefined;
|
|
while ((callback = queue.shift())) {
|
|
try {
|
|
callback();
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Run when app is ready
|
|
*/
|
|
export function runWhenLoaded(callback: Callback) {
|
|
if (!loading) {
|
|
callback();
|
|
} else {
|
|
queue.push(callback);
|
|
}
|
|
}
|