swup 4.4.1 → 4.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -81,21 +81,21 @@ export interface HookReturnValues {
81
81
  export type HookArguments<T extends HookName> = HookDefinitions[T];
82
82
  export type HookName = keyof HookDefinitions;
83
83
  /** A generic hook handler. */
84
- export type Handler<T extends HookName> = (
84
+ export type HookHandler<T extends HookName> = (
85
85
  /** Context about the current visit. */
86
86
  visit: Visit,
87
87
  /** Local arguments passed into the handler. */
88
88
  args: HookArguments<T>) => Promise<unknown> | unknown;
89
89
  /** A default hook handler with an expected return type. */
90
- export type DefaultHandler<T extends HookName> = (
90
+ export type HookDefaultHandler<T extends HookName> = (
91
91
  /** Context about the current visit. */
92
92
  visit: Visit,
93
93
  /** Local arguments passed into the handler. */
94
94
  args: HookArguments<T>,
95
95
  /** Default handler to be executed. Available if replacing an internal hook handler. */
96
- defaultHandler?: DefaultHandler<T>) => T extends keyof HookReturnValues ? HookReturnValues[T] : Promise<unknown> | unknown;
96
+ defaultHandler?: HookDefaultHandler<T>) => T extends keyof HookReturnValues ? HookReturnValues[T] : Promise<unknown> | unknown;
97
97
  export type Handlers = {
98
- [K in HookName]: Handler<K>[];
98
+ [K in HookName]: HookHandler<K>[];
99
99
  };
100
100
  /** Unregister a previously registered hook handler. */
101
101
  export type HookUnregister = () => void;
@@ -110,13 +110,13 @@ export type HookOptions = {
110
110
  /** Replace the internal default handler with this hook handler */
111
111
  replace?: boolean;
112
112
  };
113
- export type HookRegistration<T extends HookName, H extends Handler<T> | DefaultHandler<T> = Handler<T>> = {
113
+ export type HookRegistration<T extends HookName, H extends HookHandler<T> | HookDefaultHandler<T> = HookHandler<T>> = {
114
114
  id: number;
115
115
  hook: T;
116
116
  handler: H;
117
- defaultHandler?: DefaultHandler<T>;
117
+ defaultHandler?: HookDefaultHandler<T>;
118
118
  } & HookOptions;
119
- type HookLedger<T extends HookName> = Map<Handler<T>, HookRegistration<T>>;
119
+ type HookLedger<T extends HookName> = Map<HookHandler<T>, HookRegistration<T>>;
120
120
  interface HookRegistry extends Map<HookName, HookLedger<HookName>> {
121
121
  get<K extends HookName>(key: K): HookLedger<K> | undefined;
122
122
  set<K extends HookName>(key: K, value: HookLedger<K>): this;
@@ -166,11 +166,11 @@ export declare class Hooks {
166
166
  * - `replace`: Replace the default handler with this handler
167
167
  * @returns A function to unregister the handler
168
168
  */
169
- on<T extends HookName, O extends HookOptions>(hook: T, handler: DefaultHandler<T>, options: O & {
169
+ on<T extends HookName, O extends HookOptions>(hook: T, handler: HookDefaultHandler<T>, options: O & {
170
170
  replace: true;
171
171
  }): HookUnregister;
172
- on<T extends HookName, O extends HookOptions>(hook: T, handler: Handler<T>, options: O): HookUnregister;
173
- on<T extends HookName>(hook: T, handler: Handler<T>): HookUnregister;
172
+ on<T extends HookName, O extends HookOptions>(hook: T, handler: HookHandler<T>, options: O): HookUnregister;
173
+ on<T extends HookName>(hook: T, handler: HookHandler<T>): HookUnregister;
174
174
  /**
175
175
  * Register a new hook handler to run before the default handler.
176
176
  * Shortcut for `hooks.on(hook, handler, { before: true })`.
@@ -180,8 +180,8 @@ export declare class Hooks {
180
180
  * @returns A function to unregister the handler
181
181
  * @see on
182
182
  */
183
- before<T extends HookName>(hook: T, handler: Handler<T>, options: HookOptions): HookUnregister;
184
- before<T extends HookName>(hook: T, handler: Handler<T>): HookUnregister;
183
+ before<T extends HookName>(hook: T, handler: HookHandler<T>, options: HookOptions): HookUnregister;
184
+ before<T extends HookName>(hook: T, handler: HookHandler<T>): HookUnregister;
185
185
  /**
186
186
  * Register a new hook handler to replace the default handler.
187
187
  * Shortcut for `hooks.on(hook, handler, { replace: true })`.
@@ -191,8 +191,8 @@ export declare class Hooks {
191
191
  * @returns A function to unregister the handler
192
192
  * @see on
193
193
  */
194
- replace<T extends HookName>(hook: T, handler: DefaultHandler<T>, options: HookOptions): HookUnregister;
195
- replace<T extends HookName>(hook: T, handler: DefaultHandler<T>): HookUnregister;
194
+ replace<T extends HookName>(hook: T, handler: HookDefaultHandler<T>, options: HookOptions): HookUnregister;
195
+ replace<T extends HookName>(hook: T, handler: HookDefaultHandler<T>): HookUnregister;
196
196
  /**
197
197
  * Register a new hook handler to run once.
198
198
  * Shortcut for `hooks.on(hook, handler, { once: true })`.
@@ -201,15 +201,15 @@ export declare class Hooks {
201
201
  * @param options Any other event options (see `hooks.on()` for details)
202
202
  * @see on
203
203
  */
204
- once<T extends HookName>(hook: T, handler: Handler<T>, options: HookOptions): HookUnregister;
205
- once<T extends HookName>(hook: T, handler: Handler<T>): HookUnregister;
204
+ once<T extends HookName>(hook: T, handler: HookHandler<T>, options: HookOptions): HookUnregister;
205
+ once<T extends HookName>(hook: T, handler: HookHandler<T>): HookUnregister;
206
206
  /**
207
207
  * Unregister a hook handler.
208
208
  * @param hook Name of the hook the handler is registered for
209
209
  * @param handler The handler function that was registered.
210
210
  * If omitted, all handlers for the hook will be removed.
211
211
  */
212
- off<T extends HookName>(hook: T, handler: Handler<T> | DefaultHandler<T>): void;
212
+ off<T extends HookName>(hook: T, handler: HookHandler<T> | HookDefaultHandler<T>): void;
213
213
  off<T extends HookName>(hook: T): void;
214
214
  /**
215
215
  * Trigger a hook asynchronously, executing its default handler and all registered handlers.
@@ -219,7 +219,7 @@ export declare class Hooks {
219
219
  * @param defaultHandler A default implementation of this hook to execute
220
220
  * @returns The resolved return value of the executed default handler
221
221
  */
222
- call<T extends HookName>(hook: T, args: HookArguments<T>, defaultHandler?: DefaultHandler<T>): Promise<Awaited<ReturnType<DefaultHandler<T>>>>;
222
+ call<T extends HookName>(hook: T, args: HookArguments<T>, defaultHandler?: HookDefaultHandler<T>): Promise<Awaited<ReturnType<HookDefaultHandler<T>>>>;
223
223
  /**
224
224
  * Trigger a hook synchronously, executing its default handler and all registered handlers.
225
225
  * Will execute all handlers in order, but will **not** `await` any `Promise`s they return.
@@ -228,20 +228,20 @@ export declare class Hooks {
228
228
  * @param defaultHandler A default implementation of this hook to execute
229
229
  * @returns The (possibly unresolved) return value of the executed default handler
230
230
  */
231
- callSync<T extends HookName>(hook: T, args: HookArguments<T>, defaultHandler?: DefaultHandler<T>): ReturnType<DefaultHandler<T>>;
231
+ callSync<T extends HookName>(hook: T, args: HookArguments<T>, defaultHandler?: HookDefaultHandler<T>): ReturnType<HookDefaultHandler<T>>;
232
232
  /**
233
233
  * Execute the handlers for a hook, in order, as `Promise`s that will be `await`ed.
234
234
  * @param registrations The registrations (handler + options) to execute
235
235
  * @param args Arguments to pass to the handler
236
236
  */
237
- protected run<T extends HookName>(registrations: HookRegistration<T, DefaultHandler<T>>[], args: HookArguments<T>): Promise<Awaited<ReturnType<DefaultHandler<T>>>[]>;
237
+ protected run<T extends HookName>(registrations: HookRegistration<T, HookDefaultHandler<T>>[], args: HookArguments<T>): Promise<Awaited<ReturnType<HookDefaultHandler<T>>>[]>;
238
238
  protected run<T extends HookName>(registrations: HookRegistration<T>[], args: HookArguments<T>): Promise<unknown[]>;
239
239
  /**
240
240
  * Execute the handlers for a hook, in order, without `await`ing any returned `Promise`s.
241
241
  * @param registrations The registrations (handler + options) to execute
242
242
  * @param args Arguments to pass to the handler
243
243
  */
244
- protected runSync<T extends HookName>(registrations: HookRegistration<T, DefaultHandler<T>>[], args: HookArguments<T>): ReturnType<DefaultHandler<T>>[];
244
+ protected runSync<T extends HookName>(registrations: HookRegistration<T, HookDefaultHandler<T>>[], args: HookArguments<T>): ReturnType<HookDefaultHandler<T>>[];
245
245
  protected runSync<T extends HookName>(registrations: HookRegistration<T>[], args: HookArguments<T>): unknown[];
246
246
  /**
247
247
  * Get all registered handlers for a hook, sorted by priority and registration order.
@@ -250,11 +250,11 @@ export declare class Hooks {
250
250
  * @returns An object with the handlers sorted into `before` and `after` arrays,
251
251
  * as well as a flag indicating if the original handler was replaced
252
252
  */
253
- protected getHandlers<T extends HookName>(hook: T, defaultHandler?: DefaultHandler<T>): {
253
+ protected getHandlers<T extends HookName>(hook: T, defaultHandler?: HookDefaultHandler<T>): {
254
254
  found: boolean;
255
- before: HookRegistration<T, Handler<T>>[];
256
- handler: HookRegistration<T, DefaultHandler<T>>[];
257
- after: HookRegistration<T, Handler<T>>[];
255
+ before: HookRegistration<T, HookHandler<T>>[];
256
+ handler: HookRegistration<T, HookDefaultHandler<T>>[];
257
+ after: HookRegistration<T, HookHandler<T>>[];
258
258
  replaced: boolean;
259
259
  };
260
260
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Hooks.d.ts","sourceRoot":"","sources":["../../../src/modules/Hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Hooks.d.ts","sourceRoot":"","sources":["../../../src/modules/Hooks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "swup",
3
3
  "amdName": "Swup",
4
- "version": "4.4.1",
4
+ "version": "4.4.2",
5
5
  "description": "Versatile and extensible page transition library for server-rendered websites",
6
6
  "type": "module",
7
7
  "source": "./src/Swup.ts",
@@ -81,6 +81,7 @@
81
81
  "prettier": "^2.8.2",
82
82
  "serve": "^14.2.1",
83
83
  "typed-query-selector": "^2.11.0",
84
+ "typescript": "^5.2.2",
84
85
  "vitest": "^0.34.3"
85
86
  },
86
87
  "collective": {
package/src/index.ts CHANGED
@@ -14,12 +14,14 @@ import type {
14
14
  VisitHistory
15
15
  } from './modules/Visit.js';
16
16
  import type {
17
- HookArguments,
18
- HookDefinitions,
19
17
  HookName,
18
+ HookDefinitions,
19
+ HookArguments,
20
+ HookReturnValues,
21
+ HookHandler,
22
+ HookDefaultHandler,
20
23
  HookOptions,
21
- HookUnregister,
22
- Handler
24
+ HookUnregister
23
25
  } from './modules/Hooks.js';
24
26
  import type { Plugin } from './modules/plugins.js';
25
27
 
@@ -32,19 +34,22 @@ export type {
32
34
  Plugin,
33
35
  CacheData,
34
36
  PageData,
37
+ Path,
35
38
  Visit,
36
39
  VisitFrom,
37
40
  VisitTo,
38
41
  VisitAnimation,
39
42
  VisitScroll,
40
43
  VisitHistory,
41
- HookArguments,
42
- HookDefinitions,
43
44
  HookName,
45
+ HookDefinitions,
46
+ HookArguments,
47
+ HookReturnValues,
48
+ HookHandler,
49
+ HookHandler as Handler, // backwards compatibility
50
+ HookDefaultHandler,
44
51
  HookOptions,
45
52
  HookUnregister,
46
- Handler,
47
- Path,
48
53
  DelegateEvent,
49
54
  DelegateEventHandler,
50
55
  DelegateEventUnsubscribe
@@ -50,7 +50,7 @@ export type HookArguments<T extends HookName> = HookDefinitions[T];
50
50
  export type HookName = keyof HookDefinitions;
51
51
 
52
52
  /** A generic hook handler. */
53
- export type Handler<T extends HookName> = (
53
+ export type HookHandler<T extends HookName> = (
54
54
  /** Context about the current visit. */
55
55
  visit: Visit,
56
56
  /** Local arguments passed into the handler. */
@@ -58,17 +58,17 @@ export type Handler<T extends HookName> = (
58
58
  ) => Promise<unknown> | unknown;
59
59
 
60
60
  /** A default hook handler with an expected return type. */
61
- export type DefaultHandler<T extends HookName> = (
61
+ export type HookDefaultHandler<T extends HookName> = (
62
62
  /** Context about the current visit. */
63
63
  visit: Visit,
64
64
  /** Local arguments passed into the handler. */
65
65
  args: HookArguments<T>,
66
66
  /** Default handler to be executed. Available if replacing an internal hook handler. */
67
- defaultHandler?: DefaultHandler<T>
67
+ defaultHandler?: HookDefaultHandler<T>
68
68
  ) => T extends keyof HookReturnValues ? HookReturnValues[T] : Promise<unknown> | unknown;
69
69
 
70
70
  export type Handlers = {
71
- [K in HookName]: Handler<K>[];
71
+ [K in HookName]: HookHandler<K>[];
72
72
  };
73
73
 
74
74
  /** Unregister a previously registered hook handler. */
@@ -88,15 +88,15 @@ export type HookOptions = {
88
88
 
89
89
  export type HookRegistration<
90
90
  T extends HookName,
91
- H extends Handler<T> | DefaultHandler<T> = Handler<T>
91
+ H extends HookHandler<T> | HookDefaultHandler<T> = HookHandler<T>
92
92
  > = {
93
93
  id: number;
94
94
  hook: T;
95
95
  handler: H;
96
- defaultHandler?: DefaultHandler<T>;
96
+ defaultHandler?: HookDefaultHandler<T>;
97
97
  } & HookOptions;
98
98
 
99
- type HookLedger<T extends HookName> = Map<Handler<T>, HookRegistration<T>>;
99
+ type HookLedger<T extends HookName> = Map<HookHandler<T>, HookRegistration<T>>;
100
100
 
101
101
  interface HookRegistry extends Map<HookName, HookLedger<HookName>> {
102
102
  get<K extends HookName>(key: K): HookLedger<K> | undefined;
@@ -209,15 +209,15 @@ export class Hooks {
209
209
  */
210
210
 
211
211
  // Overload: replacing default handler
212
- on<T extends HookName, O extends HookOptions>(hook: T, handler: DefaultHandler<T>, options: O & { replace: true }): HookUnregister; // prettier-ignore
212
+ on<T extends HookName, O extends HookOptions>(hook: T, handler: HookDefaultHandler<T>, options: O & { replace: true }): HookUnregister; // prettier-ignore
213
213
  // Overload: passed in handler options
214
- on<T extends HookName, O extends HookOptions>(hook: T, handler: Handler<T>, options: O): HookUnregister; // prettier-ignore
214
+ on<T extends HookName, O extends HookOptions>(hook: T, handler: HookHandler<T>, options: O): HookUnregister; // prettier-ignore
215
215
  // Overload: no handler options
216
- on<T extends HookName>(hook: T, handler: Handler<T>): HookUnregister; // prettier-ignore
216
+ on<T extends HookName>(hook: T, handler: HookHandler<T>): HookUnregister; // prettier-ignore
217
217
  // Implementation
218
218
  on<T extends HookName, O extends HookOptions>(
219
219
  hook: T,
220
- handler: O['replace'] extends true ? DefaultHandler<T> : Handler<T>,
220
+ handler: O['replace'] extends true ? HookDefaultHandler<T> : HookHandler<T>,
221
221
  options: Partial<O> = {}
222
222
  ): HookUnregister {
223
223
  const ledger = this.get(hook);
@@ -243,13 +243,13 @@ export class Hooks {
243
243
  * @see on
244
244
  */
245
245
  // Overload: passed in handler options
246
- before<T extends HookName>(hook: T, handler: Handler<T>, options: HookOptions): HookUnregister;
246
+ before<T extends HookName>(hook: T, handler: HookHandler<T>, options: HookOptions): HookUnregister; // prettier-ignore
247
247
  // Overload: no handler options
248
- before<T extends HookName>(hook: T, handler: Handler<T>): HookUnregister;
248
+ before<T extends HookName>(hook: T, handler: HookHandler<T>): HookUnregister;
249
249
  // Implementation
250
250
  before<T extends HookName>(
251
251
  hook: T,
252
- handler: Handler<T>,
252
+ handler: HookHandler<T>,
253
253
  options: HookOptions = {}
254
254
  ): HookUnregister {
255
255
  return this.on(hook, handler, { ...options, before: true });
@@ -265,13 +265,13 @@ export class Hooks {
265
265
  * @see on
266
266
  */
267
267
  // Overload: passed in handler options
268
- replace<T extends HookName>(hook: T, handler: DefaultHandler<T>, options: HookOptions): HookUnregister; // prettier-ignore
268
+ replace<T extends HookName>(hook: T, handler: HookDefaultHandler<T>, options: HookOptions): HookUnregister; // prettier-ignore
269
269
  // Overload: no handler options
270
- replace<T extends HookName>(hook: T, handler: DefaultHandler<T>): HookUnregister; // prettier-ignore
270
+ replace<T extends HookName>(hook: T, handler: HookDefaultHandler<T>): HookUnregister; // prettier-ignore
271
271
  // Implementation
272
272
  replace<T extends HookName>(
273
273
  hook: T,
274
- handler: DefaultHandler<T>,
274
+ handler: HookDefaultHandler<T>,
275
275
  options: HookOptions = {}
276
276
  ): HookUnregister {
277
277
  return this.on(hook, handler, { ...options, replace: true });
@@ -286,13 +286,13 @@ export class Hooks {
286
286
  * @see on
287
287
  */
288
288
  // Overload: passed in handler options
289
- once<T extends HookName>(hook: T, handler: Handler<T>, options: HookOptions): HookUnregister;
289
+ once<T extends HookName>(hook: T, handler: HookHandler<T>, options: HookOptions): HookUnregister; // prettier-ignore
290
290
  // Overload: no handler options
291
- once<T extends HookName>(hook: T, handler: Handler<T>): HookUnregister;
291
+ once<T extends HookName>(hook: T, handler: HookHandler<T>): HookUnregister;
292
292
  // Implementation
293
293
  once<T extends HookName>(
294
294
  hook: T,
295
- handler: Handler<T>,
295
+ handler: HookHandler<T>,
296
296
  options: HookOptions = {}
297
297
  ): HookUnregister {
298
298
  return this.on(hook, handler, { ...options, once: true });
@@ -305,11 +305,11 @@ export class Hooks {
305
305
  * If omitted, all handlers for the hook will be removed.
306
306
  */
307
307
  // Overload: unregister a specific handler
308
- off<T extends HookName>(hook: T, handler: Handler<T> | DefaultHandler<T>): void;
308
+ off<T extends HookName>(hook: T, handler: HookHandler<T> | HookDefaultHandler<T>): void;
309
309
  // Overload: unregister all handlers
310
310
  off<T extends HookName>(hook: T): void;
311
311
  // Implementation
312
- off<T extends HookName>(hook: T, handler?: Handler<T> | DefaultHandler<T>): void {
312
+ off<T extends HookName>(hook: T, handler?: HookHandler<T> | HookDefaultHandler<T>): void {
313
313
  const ledger = this.get(hook);
314
314
  if (ledger && handler) {
315
315
  const deleted = ledger.delete(handler);
@@ -332,8 +332,8 @@ export class Hooks {
332
332
  async call<T extends HookName>(
333
333
  hook: T,
334
334
  args: HookArguments<T>,
335
- defaultHandler?: DefaultHandler<T>
336
- ): Promise<Awaited<ReturnType<DefaultHandler<T>>>> {
335
+ defaultHandler?: HookDefaultHandler<T>
336
+ ): Promise<Awaited<ReturnType<HookDefaultHandler<T>>>> {
337
337
  const { before, handler, after } = this.getHandlers(hook, defaultHandler);
338
338
  await this.run(before, args);
339
339
  const [result] = await this.run(handler, args);
@@ -353,8 +353,8 @@ export class Hooks {
353
353
  callSync<T extends HookName>(
354
354
  hook: T,
355
355
  args: HookArguments<T>,
356
- defaultHandler?: DefaultHandler<T>
357
- ): ReturnType<DefaultHandler<T>> {
356
+ defaultHandler?: HookDefaultHandler<T>
357
+ ): ReturnType<HookDefaultHandler<T>> {
358
358
  const { before, handler, after } = this.getHandlers(hook, defaultHandler);
359
359
  this.runSync(before, args);
360
360
  const [result] = this.runSync(handler, args);
@@ -369,15 +369,15 @@ export class Hooks {
369
369
  * @param args Arguments to pass to the handler
370
370
  */
371
371
 
372
- // Overload: running DefaultHandler: expect DefaultHandler return type
373
- protected async run<T extends HookName>(registrations: HookRegistration<T, DefaultHandler<T>>[], args: HookArguments<T>): Promise<Awaited<ReturnType<DefaultHandler<T>>>[]>; // prettier-ignore
372
+ // Overload: running HookDefaultHandler: expect HookDefaultHandler return type
373
+ protected async run<T extends HookName>(registrations: HookRegistration<T, HookDefaultHandler<T>>[], args: HookArguments<T>): Promise<Awaited<ReturnType<HookDefaultHandler<T>>>[]>; // prettier-ignore
374
374
  // Overload: running user handler: expect no specific type
375
375
  protected async run<T extends HookName>(registrations: HookRegistration<T>[], args: HookArguments<T>): Promise<unknown[]>; // prettier-ignore
376
376
  // Implementation
377
377
  protected async run<T extends HookName, R extends HookRegistration<T>[]>(
378
378
  registrations: R,
379
379
  args: HookArguments<T>
380
- ): Promise<Awaited<ReturnType<DefaultHandler<T>>> | unknown[]> {
380
+ ): Promise<Awaited<ReturnType<HookDefaultHandler<T>>> | unknown[]> {
381
381
  const results = [];
382
382
  for (const { hook, handler, defaultHandler, once } of registrations) {
383
383
  const result = await runAsPromise(handler, [this.swup.visit, args, defaultHandler]);
@@ -395,18 +395,18 @@ export class Hooks {
395
395
  * @param args Arguments to pass to the handler
396
396
  */
397
397
 
398
- // Overload: running DefaultHandler: expect DefaultHandler return type
399
- protected runSync<T extends HookName>(registrations: HookRegistration<T, DefaultHandler<T>>[], args: HookArguments<T> ): ReturnType<DefaultHandler<T>>[]; // prettier-ignore
398
+ // Overload: running HookDefaultHandler: expect HookDefaultHandler return type
399
+ protected runSync<T extends HookName>(registrations: HookRegistration<T, HookDefaultHandler<T>>[], args: HookArguments<T> ): ReturnType<HookDefaultHandler<T>>[]; // prettier-ignore
400
400
  // Overload: running user handler: expect no specific type
401
401
  protected runSync<T extends HookName>(registrations: HookRegistration<T>[], args: HookArguments<T>): unknown[]; // prettier-ignore
402
402
  // Implementation
403
403
  protected runSync<T extends HookName, R extends HookRegistration<T>[]>(
404
404
  registrations: R,
405
405
  args: HookArguments<T>
406
- ): (ReturnType<DefaultHandler<T>> | unknown)[] {
406
+ ): (ReturnType<HookDefaultHandler<T>> | unknown)[] {
407
407
  const results = [];
408
408
  for (const { hook, handler, defaultHandler, once } of registrations) {
409
- const result = (handler as DefaultHandler<T>)(this.swup.visit, args, defaultHandler);
409
+ const result = (handler as HookDefaultHandler<T>)(this.swup.visit, args, defaultHandler); // prettier-ignore
410
410
  results.push(result);
411
411
  if (isPromise(result)) {
412
412
  console.warn(
@@ -428,7 +428,7 @@ export class Hooks {
428
428
  * @returns An object with the handlers sorted into `before` and `after` arrays,
429
429
  * as well as a flag indicating if the original handler was replaced
430
430
  */
431
- protected getHandlers<T extends HookName>(hook: T, defaultHandler?: DefaultHandler<T>) {
431
+ protected getHandlers<T extends HookName>(hook: T, defaultHandler?: HookDefaultHandler<T>) {
432
432
  const ledger = this.get(hook);
433
433
  if (!ledger) {
434
434
  return { found: false, before: [], handler: [], after: [], replaced: false };
@@ -437,7 +437,7 @@ export class Hooks {
437
437
  const registrations = Array.from(ledger.values());
438
438
 
439
439
  // Let TypeScript know that replaced handlers are default handlers by filtering to true
440
- const def = (T: HookRegistration<T>): T is HookRegistration<T, DefaultHandler<T>> => true;
440
+ const def = (T: HookRegistration<T>): T is HookRegistration<T, HookDefaultHandler<T>> => true; // prettier-ignore
441
441
  const sort = this.sortRegistrations;
442
442
 
443
443
  // Filter into before, after, and replace handlers
@@ -448,13 +448,13 @@ export class Hooks {
448
448
 
449
449
  // Define main handler registration
450
450
  // Created as HookRegistration[] array to allow passing it into hooks.run() directly
451
- let handler: HookRegistration<T, DefaultHandler<T>>[] = [];
451
+ let handler: HookRegistration<T, HookDefaultHandler<T>>[] = [];
452
452
  if (defaultHandler) {
453
453
  handler = [{ id: 0, hook, handler: defaultHandler }];
454
454
  if (replaced) {
455
455
  const index = replace.length - 1;
456
456
  const replacingHandler = replace[index].handler;
457
- const createDefaultHandler = (index: number): DefaultHandler<T> | undefined => {
457
+ const createDefaultHandler = (index: number): HookDefaultHandler<T> | undefined => {
458
458
  const next = replace[index - 1];
459
459
  if (next) {
460
460
  return (visit, args) =>