This commit is contained in:
TiclemFR
2023-12-29 17:47:40 +01:00
parent 936d5f15d9
commit 076ec32c3b
565 changed files with 339154 additions and 110 deletions
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) Jonathan Reinink <jonathan@reinink.ca>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+73
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+73
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2
View File
@@ -0,0 +1,2 @@
import{createServer as c}from"http";import*as s from"process";var g=t=>new Promise((o,n)=>{let r="";t.on("data",e=>r+=e),t.on("end",()=>o(r)),t.on("error",e=>n(e))}),d=(t,o)=>{let n=o||13714,r={"/health":async()=>({status:"OK",timestamp:Date.now()}),"/shutdown":()=>s.exit(),"/render":async e=>t(JSON.parse(await g(e))),"/404":async()=>({status:"NOT_FOUND",timestamp:Date.now()})};c(async(e,a)=>{let i=r[e.url]||r["/404"];try{a.writeHead(200,{"Content-Type":"application/json",Server:"Inertia.js SSR"}),a.write(JSON.stringify(await i(e)))}catch(p){console.error(p)}a.end()}).listen(n,()=>console.log("Inertia SSR server started.")),console.log(`Starting SSR server on port ${n}...`)};export{d as default};
//# sourceMappingURL=server.esm.js.map
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../src/server.ts"],
"sourcesContent": ["import { createServer, IncomingMessage } from 'http'\nimport * as process from 'process'\nimport { InertiaAppResponse, Page } from './types'\n\ntype AppCallback = (page: Page) => InertiaAppResponse\ntype RouteHandler = (request: IncomingMessage) => Promise<unknown>\n\nconst readableToString: (readable: IncomingMessage) => Promise<string> = (readable) =>\n new Promise((resolve, reject) => {\n let data = ''\n readable.on('data', (chunk) => (data += chunk))\n readable.on('end', () => resolve(data))\n readable.on('error', (err) => reject(err))\n })\n\nexport default (render: AppCallback, port?: number): void => {\n const _port = port || 13714\n\n const routes: Record<string, RouteHandler> = {\n '/health': async () => ({ status: 'OK', timestamp: Date.now() }),\n '/shutdown': () => process.exit(),\n '/render': async (request) => render(JSON.parse(await readableToString(request))),\n '/404': async () => ({ status: 'NOT_FOUND', timestamp: Date.now() }),\n }\n\n createServer(async (request, response) => {\n const dispatchRoute = routes[<string>request.url] || routes['/404']\n\n try {\n response.writeHead(200, { 'Content-Type': 'application/json', Server: 'Inertia.js SSR' })\n response.write(JSON.stringify(await dispatchRoute(request)))\n } catch (e) {\n console.error(e)\n }\n\n response.end()\n }).listen(_port, () => console.log('Inertia SSR server started.'))\n\n console.log(`Starting SSR server on port ${_port}...`)\n}\n"],
"mappings": "AAAA,OAAS,gBAAAA,MAAqC,OAC9C,UAAYC,MAAa,UAMzB,IAAMC,EAAoEC,GACxE,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC/B,IAAIC,EAAO,GACXH,EAAS,GAAG,OAASI,GAAWD,GAAQC,CAAM,EAC9CJ,EAAS,GAAG,MAAO,IAAMC,EAAQE,CAAI,CAAC,EACtCH,EAAS,GAAG,QAAUK,GAAQH,EAAOG,CAAG,CAAC,CAC3C,CAAC,EAEIC,EAAQ,CAACC,EAAqBC,IAAwB,CAC3D,IAAMC,EAAQD,GAAQ,MAEhBE,EAAuC,CAC3C,UAAW,UAAa,CAAE,OAAQ,KAAM,UAAW,KAAK,IAAI,CAAE,GAC9D,YAAa,IAAc,OAAK,EAChC,UAAW,MAAOC,GAAYJ,EAAO,KAAK,MAAM,MAAMR,EAAiBY,CAAO,CAAC,CAAC,EAChF,OAAQ,UAAa,CAAE,OAAQ,YAAa,UAAW,KAAK,IAAI,CAAE,EACpE,EAEAd,EAAa,MAAOc,EAASC,IAAa,CACxC,IAAMC,EAAgBH,EAAeC,EAAQ,GAAG,GAAKD,EAAO,MAAM,EAElE,GAAI,CACFE,EAAS,UAAU,IAAK,CAAE,eAAgB,mBAAoB,OAAQ,gBAAiB,CAAC,EACxFA,EAAS,MAAM,KAAK,UAAU,MAAMC,EAAcF,CAAO,CAAC,CAAC,CAC7D,OAASG,EAAP,CACA,QAAQ,MAAMA,CAAC,CACjB,CAEAF,EAAS,IAAI,CACf,CAAC,EAAE,OAAOH,EAAO,IAAM,QAAQ,IAAI,6BAA6B,CAAC,EAEjE,QAAQ,IAAI,+BAA+BA,MAAU,CACvD",
"names": ["createServer", "process", "readableToString", "readable", "resolve", "reject", "data", "chunk", "err", "server_default", "render", "port", "_port", "routes", "request", "response", "dispatchRoute", "e"]
}
+2
View File
@@ -0,0 +1,2 @@
"use strict";var m=Object.create;var a=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var y=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},i=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of S(t))!w.call(e,r)&&r!==n&&a(e,r,{get:()=>t[r],enumerable:!(o=d(t,r))||o.enumerable});return e};var R=(e,t,n)=>(n=e!=null?m(u(e)):{},i(t||!e||!e.__esModule?a(n,"default",{value:e,enumerable:!0}):n,e)),I=e=>i(a({},"__esModule",{value:!0}),e);var v={};y(v,{default:()=>h});module.exports=I(v);var p=require("http"),c=R(require("process"),1),f=e=>new Promise((t,n)=>{let o="";e.on("data",r=>o+=r),e.on("end",()=>t(o)),e.on("error",r=>n(r))}),h=(e,t)=>{let n=t||13714,o={"/health":async()=>({status:"OK",timestamp:Date.now()}),"/shutdown":()=>c.exit(),"/render":async r=>e(JSON.parse(await f(r))),"/404":async()=>({status:"NOT_FOUND",timestamp:Date.now()})};(0,p.createServer)(async(r,s)=>{let g=o[r.url]||o["/404"];try{s.writeHead(200,{"Content-Type":"application/json",Server:"Inertia.js SSR"}),s.write(JSON.stringify(await g(r)))}catch(l){console.error(l)}s.end()}).listen(n,()=>console.log("Inertia SSR server started.")),console.log(`Starting SSR server on port ${n}...`)};0&&(module.exports={});
//# sourceMappingURL=server.js.map
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../src/server.ts"],
"sourcesContent": ["import { createServer, IncomingMessage } from 'http'\nimport * as process from 'process'\nimport { InertiaAppResponse, Page } from './types'\n\ntype AppCallback = (page: Page) => InertiaAppResponse\ntype RouteHandler = (request: IncomingMessage) => Promise<unknown>\n\nconst readableToString: (readable: IncomingMessage) => Promise<string> = (readable) =>\n new Promise((resolve, reject) => {\n let data = ''\n readable.on('data', (chunk) => (data += chunk))\n readable.on('end', () => resolve(data))\n readable.on('error', (err) => reject(err))\n })\n\nexport default (render: AppCallback, port?: number): void => {\n const _port = port || 13714\n\n const routes: Record<string, RouteHandler> = {\n '/health': async () => ({ status: 'OK', timestamp: Date.now() }),\n '/shutdown': () => process.exit(),\n '/render': async (request) => render(JSON.parse(await readableToString(request))),\n '/404': async () => ({ status: 'NOT_FOUND', timestamp: Date.now() }),\n }\n\n createServer(async (request, response) => {\n const dispatchRoute = routes[<string>request.url] || routes['/404']\n\n try {\n response.writeHead(200, { 'Content-Type': 'application/json', Server: 'Inertia.js SSR' })\n response.write(JSON.stringify(await dispatchRoute(request)))\n } catch (e) {\n console.error(e)\n }\n\n response.end()\n }).listen(_port, () => console.log('Inertia SSR server started.'))\n\n console.log(`Starting SSR server on port ${_port}...`)\n}\n"],
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA8C,gBAC9CC,EAAyB,wBAMnBC,EAAoEC,GACxE,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC/B,IAAIC,EAAO,GACXH,EAAS,GAAG,OAASI,GAAWD,GAAQC,CAAM,EAC9CJ,EAAS,GAAG,MAAO,IAAMC,EAAQE,CAAI,CAAC,EACtCH,EAAS,GAAG,QAAUK,GAAQH,EAAOG,CAAG,CAAC,CAC3C,CAAC,EAEIV,EAAQ,CAACW,EAAqBC,IAAwB,CAC3D,IAAMC,EAAQD,GAAQ,MAEhBE,EAAuC,CAC3C,UAAW,UAAa,CAAE,OAAQ,KAAM,UAAW,KAAK,IAAI,CAAE,GAC9D,YAAa,IAAc,OAAK,EAChC,UAAW,MAAOC,GAAYJ,EAAO,KAAK,MAAM,MAAMP,EAAiBW,CAAO,CAAC,CAAC,EAChF,OAAQ,UAAa,CAAE,OAAQ,YAAa,UAAW,KAAK,IAAI,CAAE,EACpE,KAEA,gBAAa,MAAOA,EAASC,IAAa,CACxC,IAAMC,EAAgBH,EAAeC,EAAQ,GAAG,GAAKD,EAAO,MAAM,EAElE,GAAI,CACFE,EAAS,UAAU,IAAK,CAAE,eAAgB,mBAAoB,OAAQ,gBAAiB,CAAC,EACxFA,EAAS,MAAM,KAAK,UAAU,MAAMC,EAAcF,CAAO,CAAC,CAAC,CAC7D,OAASG,EAAP,CACA,QAAQ,MAAMA,CAAC,CACjB,CAEAF,EAAS,IAAI,CACf,CAAC,EAAE,OAAOH,EAAO,IAAM,QAAQ,IAAI,6BAA6B,CAAC,EAEjE,QAAQ,IAAI,+BAA+BA,MAAU,CACvD",
"names": ["server_exports", "__export", "server_default", "__toCommonJS", "import_http", "process", "readableToString", "readable", "resolve", "reject", "data", "chunk", "err", "render", "port", "_port", "routes", "request", "response", "dispatchRoute", "e"]
}
+67
View File
@@ -0,0 +1,67 @@
{
"name": "@inertiajs/core",
"version": "1.0.14",
"license": "MIT",
"description": "A framework for creating server-driven single page apps.",
"contributors": [
"Jonathan Reinink <jonathan@reinink.ca>",
"Claudio Dekker <claudio@ubient.net>",
"Sebastian De Deyne <sebastiandedeyne@gmail.com>"
],
"homepage": "https://inertiajs.com/",
"repository": {
"type": "git",
"url": "https://github.com/inertiajs/inertia.git",
"directory": "packages/inertia"
},
"bugs": {
"url": "https://github.com/inertiajs/inertia/issues"
},
"files": [
"dist",
"types"
],
"type": "module",
"main": "dist/index.js",
"types": "types/index.d.ts",
"exports": {
".": {
"types": "./types/index.d.ts",
"import": "./dist/index.esm.js",
"require": "./dist/index.js"
},
"./server": {
"types": "./types/server.d.ts",
"import": "./dist/server.esm.js",
"require": "./dist/server.js"
}
},
"typesVersions": {
"*": {
"server": [
"types/server.d.ts"
]
}
},
"scripts": {
"dev": "./build.js --watch",
"build": "npm run clean && ./build.js && tsc --emitDeclarationOnly",
"clean": "rm -rf types && rm -rf dist",
"prepublishOnly": "npm run build"
},
"dependencies": {
"axios": "^1.2.0",
"deepmerge": "^4.0.0",
"nprogress": "^0.2.0",
"qs": "^6.9.0"
},
"devDependencies": {
"@types/deepmerge": "^2.2.0",
"@types/node": "^14.0",
"@types/nprogress": "^0.2.0",
"@types/qs": "^6.9.0",
"esbuild": "^0.16.13",
"esbuild-node-externals": "^1.6.0",
"typescript": "^4.9.4"
}
}
+5
View File
@@ -0,0 +1,5 @@
# Inertia.js
Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.
Visit [inertiajs.com](https://inertiajs.com/) to learn more.
+1
View File
@@ -0,0 +1 @@
export default function debounce<F extends (...params: any[]) => ReturnType<F>>(fn: F, delay: number): F;
+10
View File
@@ -0,0 +1,10 @@
import { GlobalEventTrigger } from './types';
export declare const fireBeforeEvent: GlobalEventTrigger<'before'>;
export declare const fireErrorEvent: GlobalEventTrigger<'error'>;
export declare const fireExceptionEvent: GlobalEventTrigger<'exception'>;
export declare const fireFinishEvent: GlobalEventTrigger<'finish'>;
export declare const fireInvalidEvent: GlobalEventTrigger<'invalid'>;
export declare const fireNavigateEvent: GlobalEventTrigger<'navigate'>;
export declare const fireProgressEvent: GlobalEventTrigger<'progress'>;
export declare const fireStartEvent: GlobalEventTrigger<'start'>;
export declare const fireSuccessEvent: GlobalEventTrigger<'success'>;
+2
View File
@@ -0,0 +1,2 @@
import { FormDataConvertible, RequestPayload } from './types';
export declare function hasFiles(data: RequestPayload | FormDataConvertible): boolean;
+2
View File
@@ -0,0 +1,2 @@
import { FormDataConvertible } from './types';
export declare function objectToFormData(source: Record<string, FormDataConvertible>, form?: FormData, parentKey?: string | null): FormData;
+7
View File
@@ -0,0 +1,7 @@
export default function createHeadManager(isServer: boolean, titleCallback: (title: string) => string, onUpdate: (elements: string[]) => void): {
forceUpdate: () => void;
createProvider: () => {
update: (elements: string[]) => void;
disconnect: () => void;
};
};
+8
View File
@@ -0,0 +1,8 @@
import { Router } from './router';
export { default as createHeadManager } from './head';
export { default as setupProgress } from './progress';
export { default as shouldIntercept } from './shouldIntercept';
export * from './types';
export { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url';
export { type Router };
export declare const router: Router;
+8
View File
@@ -0,0 +1,8 @@
declare const _default: {
modal: null;
listener: null;
show(html: Record<string, unknown> | string): void;
hide(): void;
hideOnEscape(event: KeyboardEvent): void;
};
export default _default;
+6
View File
@@ -0,0 +1,6 @@
export default function setupProgress({ delay, color, includeCSS, showSpinner, }?: {
delay?: number | undefined;
color?: string | undefined;
includeCSS?: boolean | undefined;
showSpinner?: boolean | undefined;
}): void;
+59
View File
@@ -0,0 +1,59 @@
import { AxiosResponse } from 'axios';
import { ActiveVisit, GlobalEvent, GlobalEventNames, GlobalEventResult, LocationVisit, Page, PageHandler, PageResolver, PreserveStateOption, RequestPayload, VisitId, VisitOptions } from './types';
export declare class Router {
protected page: Page;
protected resolveComponent: PageResolver;
protected swapComponent: PageHandler;
protected navigationType?: string;
protected activeVisit?: ActiveVisit;
protected visitId: VisitId;
init({ initialPage, resolveComponent, swapComponent, }: {
initialPage: Page;
resolveComponent: PageResolver;
swapComponent: PageHandler;
}): void;
protected setNavigationType(): void;
protected clearRememberedStateOnReload(): void;
protected handleInitialPageVisit(page: Page): void;
protected setupEventListeners(): void;
protected scrollRegions(): NodeListOf<Element>;
protected handleScrollEvent(event: Event): void;
protected saveScrollPositions(): void;
protected resetScrollPositions(): void;
protected restoreScrollPositions(): void;
protected isBackForwardVisit(): boolean;
protected handleBackForwardVisit(page: Page): void;
protected locationVisit(url: URL, preserveScroll: LocationVisit['preserveScroll']): boolean | void;
protected isLocationVisit(): boolean;
protected handleLocationVisit(page: Page): void;
protected isLocationVisitResponse(response: AxiosResponse): boolean;
protected isInertiaResponse(response: AxiosResponse): boolean;
protected createVisitId(): VisitId;
protected cancelVisit(activeVisit: ActiveVisit, { cancelled, interrupted }: {
cancelled?: boolean;
interrupted?: boolean;
}): void;
protected finishVisit(visit: ActiveVisit): void;
protected resolvePreserveOption(value: PreserveStateOption, page: Page): boolean | string;
cancel(): void;
visit(href: string | URL, { method, data, replace, preserveScroll, preserveState, only, headers, errorBag, forceFormData, onCancelToken, onBefore, onStart, onProgress, onFinish, onCancel, onSuccess, onError, queryStringArrayFormat, }?: VisitOptions): void;
protected setPage(page: Page, { visitId, replace, preserveScroll, preserveState, }?: {
visitId?: VisitId;
replace?: boolean;
preserveScroll?: PreserveStateOption;
preserveState?: PreserveStateOption;
}): Promise<void>;
protected pushState(page: Page): void;
protected replaceState(page: Page): void;
protected handlePopstateEvent(event: PopStateEvent): void;
get(url: URL | string, data?: RequestPayload, options?: Exclude<VisitOptions, 'method' | 'data'>): void;
reload(options?: Exclude<VisitOptions, 'preserveScroll' | 'preserveState'>): void;
replace(url: URL | string, options?: Exclude<VisitOptions, 'replace'>): void;
post(url: URL | string, data?: RequestPayload, options?: Exclude<VisitOptions, 'method' | 'data'>): void;
put(url: URL | string, data?: RequestPayload, options?: Exclude<VisitOptions, 'method' | 'data'>): void;
patch(url: URL | string, data?: RequestPayload, options?: Exclude<VisitOptions, 'method' | 'data'>): void;
delete(url: URL | string, options?: Exclude<VisitOptions, 'method'>): void;
remember(data: unknown, key?: string): void;
restore(key?: string): unknown;
on<TEventName extends GlobalEventNames>(type: TEventName, callback: (event: GlobalEvent<TEventName>) => GlobalEventResult<TEventName>): VoidFunction;
}
+4
View File
@@ -0,0 +1,4 @@
import { InertiaAppResponse, Page } from './types';
type AppCallback = (page: Page) => InertiaAppResponse;
declare const _default: (render: AppCallback, port?: number) => void;
export default _default;
+1
View File
@@ -0,0 +1 @@
export default function shouldIntercept(event: KeyboardEvent): boolean;
+173
View File
@@ -0,0 +1,173 @@
import { AxiosProgressEvent, AxiosResponse } from 'axios';
declare module 'axios' {
interface AxiosProgressEvent {
percentage: number | undefined;
}
}
export type Errors = Record<string, string>;
export type ErrorBag = Record<string, Errors>;
export type FormDataConvertible = Array<FormDataConvertible> | {
[key: string]: FormDataConvertible;
} | Blob | FormDataEntryValue | Date | boolean | number | null | undefined;
export type Method = 'get' | 'post' | 'put' | 'patch' | 'delete';
export type RequestPayload = Record<string, FormDataConvertible> | FormData;
export interface PageProps {
[key: string]: unknown;
}
export interface Page<SharedProps extends PageProps = PageProps> {
component: string;
props: PageProps & SharedProps & {
errors: Errors & ErrorBag;
};
url: string;
version: string | null;
/** @internal */
scrollRegions: Array<{
top: number;
left: number;
}>;
/** @internal */
rememberedState: Record<string, unknown>;
}
export type PageResolver = (name: string) => Component;
export type PageHandler = ({ component, page, preserveState, }: {
component: Component;
page: Page;
preserveState: PreserveStateOption;
}) => Promise<unknown>;
export type PreserveStateOption = boolean | string | ((page: Page) => boolean);
export type Progress = AxiosProgressEvent;
export type LocationVisit = {
preserveScroll: boolean;
};
export type Visit = {
method: Method;
data: RequestPayload;
replace: boolean;
preserveScroll: PreserveStateOption;
preserveState: PreserveStateOption;
only: Array<string>;
headers: Record<string, string>;
errorBag: string | null;
forceFormData: boolean;
queryStringArrayFormat: 'indices' | 'brackets';
};
export type GlobalEventsMap = {
before: {
parameters: [PendingVisit];
details: {
visit: PendingVisit;
};
result: boolean | void;
};
start: {
parameters: [PendingVisit];
details: {
visit: PendingVisit;
};
result: void;
};
progress: {
parameters: [Progress | undefined];
details: {
progress: Progress | undefined;
};
result: void;
};
finish: {
parameters: [ActiveVisit];
details: {
visit: ActiveVisit;
};
result: void;
};
cancel: {
parameters: [];
details: {};
result: void;
};
navigate: {
parameters: [Page];
details: {
page: Page;
};
result: void;
};
success: {
parameters: [Page];
details: {
page: Page;
};
result: void;
};
error: {
parameters: [Errors];
details: {
errors: Errors;
};
result: void;
};
invalid: {
parameters: [AxiosResponse];
details: {
response: AxiosResponse;
};
result: boolean | void;
};
exception: {
parameters: [Error];
details: {
exception: Error;
};
result: boolean | void;
};
};
export type GlobalEventNames = keyof GlobalEventsMap;
export type GlobalEvent<TEventName extends GlobalEventNames> = CustomEvent<GlobalEventDetails<TEventName>>;
export type GlobalEventParameters<TEventName extends GlobalEventNames> = GlobalEventsMap[TEventName]['parameters'];
export type GlobalEventResult<TEventName extends GlobalEventNames> = GlobalEventsMap[TEventName]['result'];
export type GlobalEventDetails<TEventName extends GlobalEventNames> = GlobalEventsMap[TEventName]['details'];
export type GlobalEventTrigger<TEventName extends GlobalEventNames> = (...params: GlobalEventParameters<TEventName>) => GlobalEventResult<TEventName>;
export type GlobalEventCallback<TEventName extends GlobalEventNames> = (...params: GlobalEventParameters<TEventName>) => GlobalEventResult<TEventName>;
export type VisitOptions = Partial<Visit & {
onCancelToken: {
({ cancel }: {
cancel: VoidFunction;
}): void;
};
onBefore: GlobalEventCallback<'before'>;
onStart: GlobalEventCallback<'start'>;
onProgress: GlobalEventCallback<'progress'>;
onFinish: GlobalEventCallback<'finish'>;
onCancel: GlobalEventCallback<'cancel'>;
onSuccess: GlobalEventCallback<'success'>;
onError: GlobalEventCallback<'error'>;
}>;
export type PendingVisit = Visit & {
url: URL;
completed: boolean;
cancelled: boolean;
interrupted: boolean;
};
export type ActiveVisit = PendingVisit & Required<VisitOptions> & {
cancelToken: AbortController;
};
export type VisitId = unknown;
export type Component = unknown;
export type InertiaAppResponse = Promise<{
head: string[];
body: string;
} | void>;
declare global {
interface DocumentEventMap {
'inertia:before': GlobalEvent<'before'>;
'inertia:start': GlobalEvent<'start'>;
'inertia:progress': GlobalEvent<'progress'>;
'inertia:success': GlobalEvent<'success'>;
'inertia:error': GlobalEvent<'error'>;
'inertia:invalid': GlobalEvent<'invalid'>;
'inertia:exception': GlobalEvent<'exception'>;
'inertia:finish': GlobalEvent<'finish'>;
'inertia:navigate': GlobalEvent<'navigate'>;
}
}
+4
View File
@@ -0,0 +1,4 @@
import { FormDataConvertible, Method } from './types';
export declare function hrefToUrl(href: string | URL): URL;
export declare function mergeDataIntoQueryString(method: Method, href: URL | string, data: Record<string, FormDataConvertible>, qsArrayFormat?: 'indices' | 'brackets'): [string, Record<string, FormDataConvertible>];
export declare function urlWithoutHash(url: URL | Location): URL;