Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | import { Route } from './Route' import { Router } from './Router' /** * Pluggable api router if you're using Symfony and the FosJsRouting Bundle * * @class FosJsRoutingRouter * * @see https://github.com/isychev/fos-routing/ * @see https://github.com/FriendsOfSymfony/FOSJsRoutingBundle */ export class FosJsRoutingRouter extends Router { constructor (fosRouter, options = {}) { super() this.fosRouter = fosRouter this.routeExtractionOptions = Object.assign({ prefix: '', resourceNamePattern: '[a-b]+', routePatterns: { resourceRoute: '{prefix}_{resourceName}_{action}' }, actionPatterns: { list: 'list', get: 'get', create: 'create', replace: 'replace', update: 'update', delete: 'delete' } }, options) } async updateRoutes () { // TODO: extract routes from fosRouter based on naming scheme or something this.fosRouter.map(this.fosRouter.getRoutes(), name => { if (this.matchRouteName(name)) { const route = Route.fromPojo() this.addRoute(route) } }) } matchRouteName (name) { } prepareResourceMatchRegex () { const pattern = this.routeExtractionOptions.routePatterns.resourceRoute .replace( '{prefix}', this.routeExtractionOptions.prefix ) .replace( '{resourceName}', `(?<resourceName>${this.routeExtractionOptions.resourceNamePattern})` ) .replace( '{action}', `(?<action>${Object.values(this.routeExtractionOptions.actionPatterns).join('|')})` ) return new RegExp(pattern) } } |