import { expectType } from 'tsd'; import type { RoutesMap } from '../js/router'; import { type Route, Router, Routing } from './router'; import routes from './routes.json'; expectType(Router.getInstance()); expectType(Routing); expectType(Routing.getRoutes()); expectType(Routing.getRoute('homepage')); expectType(Routing.getBaseUrl()); Routing.setBaseUrl(''); expectType(Routing.getScheme()); Routing.setScheme('https'); expectType(Routing.getHost()); Routing.setHost('localhost'); expectType(Routing.getPort()); Routing.setPort('1234'); expectType(Routing.getLocale()); Routing.setLocale('en'); Routing.setRoutingData(routes); Routing.setRoutingData({ base_url: '', routes: { homepage: { tokens: [['text', '/']], defaults: [], requirements: [], hosttokens: [], methods: [], schemes: [], }, admin_index: { tokens: [['text', '/admin']], defaults: [], requirements: [], hosttokens: [], methods: [], schemes: [], }, admin_pages: { tokens: [['text', '/admin/path']], defaults: [], requirements: [], hosttokens: [], methods: [], schemes: [], }, blog_index: { tokens: [['text', '/blog']], defaults: [], requirements: [], hosttokens: [['text', 'localhost']], methods: [], schemes: [], }, blog_post: { tokens: [ ['variable', '/', '[^/]++', 'slug'], ['text', '/blog'], ], defaults: [], requirements: [], hosttokens: [['text', 'localhost']], methods: [], schemes: [], }, users_delete: { tokens: [ ['text', '/delete'], ['variable', '/', '[^/]++', 'id', true], ['text', '/users'] ], defaults: [], requirements: [], hosttokens: [], methods: [ 'DELETE' ], schemes: [] }, feed_post: { tokens: [ ['variable', '.', 'js|json', '_format', true], ['text', '/feed/post'] ], defaults: { _format: 'xml', }, requirements: { _format: 'xml|json', }, hosttokens: [], methods: ['GET'], schemes: [], }, }, prefix: '', host: '', port: null, scheme: '', locale: 'en', }); expectType(Routing.generate('homepage')); expectType(Routing.generate('blog_post', { slug: 'my-blog-post', })); expectType(Routing.generate('users_delete', { id: 123, }));