Files
voyage/apps/public-web/node_modules/next/dist/lib/scheduler.js
PascalSchattenburg d147843c76 feat(blog): add file-based blog with dynamic slugs, MDX content and layout shell
- Introduced blog routing using Next.js App Router
- Implemented dynamic [slug] pages for blog posts
- Added MDX-based content loading via lib/posts
- Integrated shared TopBar layout with navigation
- Established clear content, lib and component separation
2026-01-22 14:14:15 +01:00

64 lines
1.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
atLeastOneTask: null,
scheduleImmediate: null,
scheduleOnNextTick: null,
waitAtLeastOneReactRenderTask: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
atLeastOneTask: function() {
return atLeastOneTask;
},
scheduleImmediate: function() {
return scheduleImmediate;
},
scheduleOnNextTick: function() {
return scheduleOnNextTick;
},
waitAtLeastOneReactRenderTask: function() {
return waitAtLeastOneReactRenderTask;
}
});
const scheduleOnNextTick = (cb)=>{
// We use Promise.resolve().then() here so that the operation is scheduled at
// the end of the promise job queue, we then add it to the next process tick
// to ensure it's evaluated afterwards.
//
// This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255
//
Promise.resolve().then(()=>{
if (process.env.NEXT_RUNTIME === 'edge') {
setTimeout(cb, 0);
} else {
process.nextTick(cb);
}
});
};
const scheduleImmediate = (cb)=>{
if (process.env.NEXT_RUNTIME === 'edge') {
setTimeout(cb, 0);
} else {
setImmediate(cb);
}
};
function atLeastOneTask() {
return new Promise((resolve)=>scheduleImmediate(resolve));
}
function waitAtLeastOneReactRenderTask() {
if (process.env.NEXT_RUNTIME === 'edge') {
return new Promise((r)=>setTimeout(r, 0));
} else {
return new Promise((r)=>setImmediate(r));
}
}
//# sourceMappingURL=scheduler.js.map