diff --git a/plugin.d.ts b/plugin.d.ts
index 080cfe2..4e9fb7f 100644
--- a/plugin.d.ts
+++ b/plugin.d.ts
@@ -1,14 +1,14 @@
///
-import { FastifyPluginCallback } from 'fastify';
+import { FastifyPluginCallback } from "fastify";
-declare module 'fastify' {
+declare module "fastify" {
interface FastifyInstance {
/**
* Unsigns the specified cookie using the secret provided.
* @param value Cookie value
*/
- unsignCookie(value: string): UnsignResult;
+ unsignCookie(value: string): fastifyCookie.UnsignResult;
/**
* Manual cookie parsing method
* @docs https://github.com/fastify/fastify-cookie#manual-cookie-parsing
@@ -35,13 +35,13 @@ declare module 'fastify' {
* Unsigns the specified cookie using the secret provided.
* @param value Cookie value
*/
- unsignCookie(value: string): UnsignResult;
+ unsignCookie(value: string): fastifyCookie.UnsignResult;
}
export type setCookieWrapper = (
name: string,
value: string,
- options?: CookieSerializeOptions
+ options?: fastifyCookie.CookieSerializeOptions
) => FastifyReply;
interface FastifyReply {
@@ -55,79 +55,99 @@ declare module 'fastify' {
setCookie(
name: string,
value: string,
- options?: CookieSerializeOptions
+ options?: fastifyCookie.CookieSerializeOptions
): this;
/**
* @alias setCookie
*/
- cookie(name: string, value: string, options?: CookieSerializeOptions): this;
+ cookie(
+ name: string,
+ value: string,
+ options?: fastifyCookie.CookieSerializeOptions
+ ): this;
/**
* clear response cookie
* @param name Cookie name
* @param options Serialize options
*/
- clearCookie(name: string, options?: CookieSerializeOptions): this;
+ clearCookie(
+ name: string,
+ options?: fastifyCookie.CookieSerializeOptions
+ ): this;
/**
* Unsigns the specified cookie using the secret provided.
* @param value Cookie value
*/
- unsignCookie(value: string): UnsignResult;
+ unsignCookie(value: string): fastifyCookie.UnsignResult;
}
}
-export interface CookieSerializeOptions {
- domain?: string;
- encode?(val: string): string;
- expires?: Date;
- httpOnly?: boolean;
- maxAge?: number;
- path?: string;
- priority?: 'low' | 'medium' | 'high';
- sameSite?: boolean | 'lax' | 'strict' | 'none';
- secure?: boolean | 'auto';
- signed?: boolean;
-}
+type FastifyCookiePlugin = FastifyPluginCallback<
+ NonNullable
+>;
-type UnsignResult = {
- valid: boolean;
- renew: boolean;
- value: string | null;
-};
+declare namespace fastifyCookie {
+ export class Signer {
+ constructor (secrets: string | Array, algorithm?: string)
+ sign: (value: string) => string;
+ unsign: (input: string) => UnsignResult;
+ }
-interface Signer {
- sign: (input: string) => string;
- unsign: (input: string) => UnsignResult;
-}
+ export interface CookieSerializeOptions {
+ domain?: string;
+ encode?(val: string): string;
+ expires?: Date;
+ httpOnly?: boolean;
+ maxAge?: number;
+ path?: string;
+ priority?: "low" | "medium" | "high";
+ sameSite?: boolean | "lax" | "strict" | "none";
+ secure?: boolean;
+ signed?: boolean;
+ }
-declare class Signer {
- constructor (secrets: string | Array, algorithm?: string)
- sign: (value: string) => string;
- unsign: (input: string) => UnsignResult;
-}
+ export interface FastifyCookieOptions {
+ secret?: string | string[] | Signer;
+ parseOptions?: fastifyCookie.CookieSerializeOptions;
+ }
-declare const sign: (value: string, secret: string, algorithm?: string) => string;
-declare const unsign: (input: string, secret: string, algorithm?: string) => UnsignResult;
+ export type Sign = (value: string, secret: string) => string;
+ export type Unsign = (input: string, secret: string) => UnsignResult;
+ export type SignerFactory = (secret: string) => Signer;
-export interface FastifyCookieOptions {
- secret?: string | string[] | Signer;
- algorithm?: string;
- parseOptions?: CookieSerializeOptions;
-}
+ export interface UnsignResult {
+ valid: boolean;
+ renew: boolean;
+ value: string | null;
+ }
+
+ export const signerFactory: SignerFactory;
+ export const sign: Sign;
+ export const unsign: Unsign;
-export type Sign = (value: string, secret: string) => string;
-export type Unsign = (input: string, secret: string) => string | false;
-export type SignerFactory = (secret: string) => Signer;
+ export interface FastifyCookie extends FastifyCookiePlugin {
+ signerFactory: SignerFactory;
+ Signer: Signer;
+ sign: Sign;
+ unsign: Unsign;
+ }
+
+ export const fastifyCookie: FastifyCookie;
+
+ export interface FastifyCookieOptions {
+ secret?: string | string[] | Signer;
+ algorithm?: string;
+ parseOptions?: CookieSerializeOptions;
+ }
-export interface FastifyCookie extends FastifyPluginCallback>{
- signerFactory: SignerFactory;
- sign: Sign;
- unsign: Unsign;
+ export { fastifyCookie as default };
}
-declare const fastifyCookie: FastifyCookie;
+declare function fastifyCookie(
+ ...params: Parameters
+): ReturnType;
-export default fastifyCookie;
-export { fastifyCookie, Signer, sign, unsign };
+export = fastifyCookie;
\ No newline at end of file