| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import {InvalidArgumentError} from '@e22m4u/js-format';
- /**
- * Validate route definition.
- *
- * @param {import('./route.js').RouteDefinition} routeDef
- */
- export function validateRouteDefinition(routeDef) {
- if (!routeDef || typeof routeDef !== 'object' || Array.isArray(routeDef)) {
- throw new InvalidArgumentError(
- 'Route definition must be an Object, but %v was given.',
- routeDef,
- );
- }
- if (!routeDef.method || typeof routeDef.method !== 'string') {
- throw new InvalidArgumentError(
- 'Option "method" must be a non-empty String, but %v was given.',
- routeDef.method,
- );
- }
- if (typeof routeDef.path !== 'string') {
- throw new InvalidArgumentError(
- 'Option "path" must be a String, but %v was given.',
- routeDef.path,
- );
- }
- if (typeof routeDef.handler !== 'function') {
- throw new InvalidArgumentError(
- 'Option "handler" must be a Function, but %v was given.',
- routeDef.handler,
- );
- }
- if (routeDef.meta !== undefined) {
- if (
- !routeDef.meta ||
- typeof routeDef.meta !== 'object' ||
- Array.isArray(routeDef.meta)
- ) {
- throw new InvalidArgumentError(
- 'Option "meta" must be an Object, but %v was given.',
- routeDef.meta,
- );
- }
- }
- }
|