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