nuxt-csurf
Version:
Nuxt Cross-Site Request Forgery (CSRF) Prevention
23 lines (22 loc) • 763 B
TypeScript
import type { FetchOptions, FetchRequest, $Fetch } from 'ofetch';
interface ResponseMap {
blob: Blob;
text: string;
arrayBuffer: ArrayBuffer;
stream: ReadableStream<Uint8Array>;
}
type ResponseType = keyof ResponseMap | 'json';
type MappedType<R extends ResponseType, JsonType = any> = R extends keyof ResponseMap ? ResponseMap[R] : JsonType;
type $CsrfFetch = <T = any, R extends ResponseType = 'json'>(request: FetchRequest, options?: FetchOptions<R>, fetch?: $Fetch) => Promise<MappedType<R, T>>;
declare const _default: any;
export default _default;
declare module '#app' {
interface NuxtApp {
$csrfFetch: $CsrfFetch;
}
}
declare module 'vue' {
interface ComponentCustomProperties {
$csrfFetch: $CsrfFetch;
}
}