mirror of
https://github.com/idanoo/GoScrobble
synced 2025-07-02 06:02:19 +00:00
0.2.0 - Mid migration
This commit is contained in:
parent
139e6a915e
commit
7e38fdbd7d
42393 changed files with 5358157 additions and 62 deletions
93
web/node_modules/workbox-routing/registerRoute.js
generated
vendored
Normal file
93
web/node_modules/workbox-routing/registerRoute.js
generated
vendored
Normal file
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
Copyright 2019 Google LLC
|
||||
|
||||
Use of this source code is governed by an MIT-style
|
||||
license that can be found in the LICENSE file or at
|
||||
https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
import { logger } from 'workbox-core/_private/logger.js';
|
||||
import { WorkboxError } from 'workbox-core/_private/WorkboxError.js';
|
||||
import { Route } from './Route.js';
|
||||
import { RegExpRoute } from './RegExpRoute.js';
|
||||
import { getOrCreateDefaultRouter } from './utils/getOrCreateDefaultRouter.js';
|
||||
import './_version.js';
|
||||
/**
|
||||
* Easily register a RegExp, string, or function with a caching
|
||||
* strategy to a singleton Router instance.
|
||||
*
|
||||
* This method will generate a Route for you if needed and
|
||||
* call [registerRoute()]{@link module:workbox-routing.Router#registerRoute}.
|
||||
*
|
||||
* @param {RegExp|string|module:workbox-routing.Route~matchCallback|module:workbox-routing.Route} capture
|
||||
* If the capture param is a `Route`, all other arguments will be ignored.
|
||||
* @param {module:workbox-routing~handlerCallback} [handler] A callback
|
||||
* function that returns a Promise resulting in a Response. This parameter
|
||||
* is required if `capture` is not a `Route` object.
|
||||
* @param {string} [method='GET'] The HTTP method to match the Route
|
||||
* against.
|
||||
* @return {module:workbox-routing.Route} The generated `Route`(Useful for
|
||||
* unregistering).
|
||||
*
|
||||
* @memberof module:workbox-routing
|
||||
*/
|
||||
function registerRoute(capture, handler, method) {
|
||||
let route;
|
||||
if (typeof capture === 'string') {
|
||||
const captureUrl = new URL(capture, location.href);
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
if (!(capture.startsWith('/') || capture.startsWith('http'))) {
|
||||
throw new WorkboxError('invalid-string', {
|
||||
moduleName: 'workbox-routing',
|
||||
funcName: 'registerRoute',
|
||||
paramName: 'capture',
|
||||
});
|
||||
}
|
||||
// We want to check if Express-style wildcards are in the pathname only.
|
||||
// TODO: Remove this log message in v4.
|
||||
const valueToCheck = capture.startsWith('http') ?
|
||||
captureUrl.pathname : capture;
|
||||
// See https://github.com/pillarjs/path-to-regexp#parameters
|
||||
const wildcards = '[*:?+]';
|
||||
if ((new RegExp(`${wildcards}`)).exec(valueToCheck)) {
|
||||
logger.debug(`The '$capture' parameter contains an Express-style wildcard ` +
|
||||
`character (${wildcards}). Strings are now always interpreted as ` +
|
||||
`exact matches; use a RegExp for partial or wildcard matches.`);
|
||||
}
|
||||
}
|
||||
const matchCallback = ({ url }) => {
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
if ((url.pathname === captureUrl.pathname) &&
|
||||
(url.origin !== captureUrl.origin)) {
|
||||
logger.debug(`${capture} only partially matches the cross-origin URL ` +
|
||||
`${url}. This route will only handle cross-origin requests ` +
|
||||
`if they match the entire URL.`);
|
||||
}
|
||||
}
|
||||
return url.href === captureUrl.href;
|
||||
};
|
||||
// If `capture` is a string then `handler` and `method` must be present.
|
||||
route = new Route(matchCallback, handler, method);
|
||||
}
|
||||
else if (capture instanceof RegExp) {
|
||||
// If `capture` is a `RegExp` then `handler` and `method` must be present.
|
||||
route = new RegExpRoute(capture, handler, method);
|
||||
}
|
||||
else if (typeof capture === 'function') {
|
||||
// If `capture` is a function then `handler` and `method` must be present.
|
||||
route = new Route(capture, handler, method);
|
||||
}
|
||||
else if (capture instanceof Route) {
|
||||
route = capture;
|
||||
}
|
||||
else {
|
||||
throw new WorkboxError('unsupported-route-type', {
|
||||
moduleName: 'workbox-routing',
|
||||
funcName: 'registerRoute',
|
||||
paramName: 'capture',
|
||||
});
|
||||
}
|
||||
const defaultRouter = getOrCreateDefaultRouter();
|
||||
defaultRouter.registerRoute(route);
|
||||
return route;
|
||||
}
|
||||
export { registerRoute };
|
Loading…
Add table
Add a link
Reference in a new issue