@tanstack/vue-router
Version:
Modern and scalable routing for Vue applications
31 lines • 908 B
JSX
import * as Vue from 'vue';
import { TSR_DEFERRED_PROMISE, defer } from '@tanstack/router-core';
export function useAwaited({ promise: _promise, }) {
const promise = defer(_promise);
if (promise[TSR_DEFERRED_PROMISE].status === 'pending') {
throw promise;
}
if (promise[TSR_DEFERRED_PROMISE].status === 'error') {
throw promise[TSR_DEFERRED_PROMISE].error;
}
return [promise[TSR_DEFERRED_PROMISE].data, promise];
}
export const Await = Vue.defineComponent({
name: 'Await',
props: {
promise: {
type: Promise,
required: true,
},
children: {
type: Function,
required: true,
},
},
async setup(props) {
const deferred = defer(props.promise);
const data = await deferred;
return () => props.children(data);
},
});
//# sourceMappingURL=awaited.jsx.map