@jspm/generator
Version:
Package Import Map Generation Tool
36 lines (34 loc) • 857 B
JavaScript
export function createLogger() {
let resolveQueue;
let queuePromise = new Promise((resolve)=>resolveQueue = resolve);
let queue = [];
const logStream = async function*() {
while(true){
while(queue.length)yield queue.shift();
await queuePromise;
}
};
function log(type, message) {
if (queue.length) {
queue.push({
type,
message
});
} else {
queue = [
{
type,
message
}
];
const _resolveQueue = resolveQueue;
queuePromise = new Promise((resolve)=>resolveQueue = resolve);
_resolveQueue();
}
}
return {
log,
logStream
};
}
//# sourceMappingURL=log.js.map