nitro-nightly 4.0.0-20251030-091344-d4418b98 → 4.0.0-20251030-122334-09c1a7a8
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.
- package/dist/_build/common.mjs +763 -0
- package/dist/_build/rolldown.mjs +216 -0
- package/dist/_build/rollup.mjs +359 -0
- package/dist/_build/vite.build.mjs +67 -0
- package/dist/_build/vite.plugin.mjs +762 -0
- package/dist/_chunks/B-7HiF0V.mjs +1303 -0
- package/dist/_chunks/B3asVbT4.mjs +151 -0
- package/dist/_chunks/B5ooyfLk.mjs +372 -0
- package/dist/_chunks/DXMHy5ca.mjs +43 -0
- package/dist/_dev.d.mts +12 -0
- package/dist/_dev.mjs +675 -0
- package/dist/_libs/acorn.mjs +5034 -0
- package/dist/_libs/c12.mjs +2798 -0
- package/dist/_libs/chokidar.mjs +1560 -0
- package/dist/_libs/citty.mjs +333 -0
- package/dist/_libs/commondir.mjs +22 -0
- package/dist/_libs/compatx.mjs +46 -0
- package/dist/_libs/confbox.mjs +2920 -0
- package/dist/_libs/debug.mjs +848 -0
- package/dist/_libs/deepmerge.mjs +86 -0
- package/dist/_libs/depd.mjs +314 -0
- package/dist/_libs/dot-prop.mjs +138 -0
- package/dist/_libs/duplexer.mjs +71 -0
- package/dist/_libs/ee-first.mjs +68 -0
- package/dist/_libs/encodeurl.mjs +49 -0
- package/dist/_libs/escape-html.mjs +58 -0
- package/dist/_libs/escape-string-regexp.mjs +8 -0
- package/dist/_libs/estree-walker.mjs +330 -0
- package/dist/_libs/etag.mjs +75 -0
- package/dist/{_chunks/_deps → _libs}/fdir.mjs +49 -104
- package/dist/_libs/fresh.mjs +85 -0
- package/dist/_libs/function-bind.mjs +63 -0
- package/dist/_libs/gen-mapping.mjs +612 -0
- package/dist/_libs/giget.mjs +19076 -0
- package/dist/_libs/gzip-size.mjs +21 -0
- package/dist/_libs/hasown.mjs +14 -0
- package/dist/_libs/http-errors.mjs +436 -0
- package/dist/_libs/httpxy.mjs +410 -0
- package/dist/_libs/is-core-module.mjs +220 -0
- package/dist/_libs/is-module.mjs +13 -0
- package/dist/_libs/is-reference.mjs +32 -0
- package/dist/{_chunks/_deps → _libs}/js-tokens.mjs +83 -112
- package/dist/_libs/klona.mjs +90 -0
- package/dist/_libs/knitwork.mjs +124 -0
- package/dist/_libs/local-pkg.mjs +1686 -0
- package/dist/{_chunks/_deps → _libs}/magic-string.mjs +272 -629
- package/dist/_libs/mime-db.mjs +7642 -0
- package/dist/_libs/mime-types.mjs +162 -0
- package/dist/_libs/mime.mjs +1391 -0
- package/dist/_libs/node-fetch-native.mjs +173 -0
- package/dist/_libs/on-finished.mjs +170 -0
- package/dist/_libs/parseurl.mjs +103 -0
- package/dist/_libs/path-parse.mjs +47 -0
- package/dist/_libs/pathe.mjs +41 -0
- package/dist/_libs/picomatch.mjs +1673 -0
- package/dist/_libs/plugin-alias.mjs +64 -0
- package/dist/_libs/plugin-commonjs.mjs +1489 -0
- package/dist/_libs/plugin-inject.mjs +135 -0
- package/dist/_libs/plugin-json.mjs +36 -0
- package/dist/_libs/plugin-node-resolve.mjs +1553 -0
- package/dist/_libs/plugin-replace.mjs +104 -0
- package/dist/_libs/pretty-bytes.mjs +116 -0
- package/dist/_libs/range-parser.mjs +102 -0
- package/dist/_libs/remapping.mjs +117 -0
- package/dist/{_chunks/_deps → _libs}/rou3.mjs +7 -22
- package/dist/_libs/send.mjs +857 -0
- package/dist/_libs/serve-static.mjs +124 -0
- package/dist/_libs/std-env.mjs +158 -0
- package/dist/_libs/strip-literal.mjs +51 -0
- package/dist/{_chunks/_deps → _libs}/tinyglobby.mjs +32 -33
- package/dist/_libs/ultrahtml.mjs +138 -0
- package/dist/_libs/unimport.mjs +3520 -0
- package/dist/_libs/untyped.mjs +271 -0
- package/dist/_libs/unwasm.mjs +5825 -0
- package/dist/{_chunks/_deps/@pi0 → _libs}/vite-plugin-fullstack.mjs +28 -42
- package/dist/_presets.mjs +1723 -0
- package/dist/builder.d.mts +37 -35
- package/dist/builder.mjs +45 -117
- package/dist/cli/_chunks/build.mjs +43 -0
- package/dist/cli/_chunks/common.mjs +15 -0
- package/dist/cli/_chunks/detect-acorn.mjs +12 -0
- package/dist/cli/_chunks/dev.mjs +79 -0
- package/dist/cli/_chunks/dist.mjs +3 -0
- package/dist/cli/_chunks/dist2.mjs +4 -0
- package/dist/cli/_chunks/esm.mjs +3 -0
- package/dist/cli/_chunks/json5.mjs +4 -0
- package/dist/cli/_chunks/jsonc.mjs +4 -0
- package/dist/cli/_chunks/list.mjs +27 -0
- package/dist/cli/_chunks/multipart-parser.mjs +6 -0
- package/dist/cli/_chunks/prepare.mjs +19 -0
- package/dist/cli/_chunks/run.mjs +55 -0
- package/dist/cli/_chunks/task.mjs +16 -0
- package/dist/cli/_chunks/toml.mjs +4 -0
- package/dist/cli/_chunks/yaml.mjs +4 -0
- package/dist/cli/index.d.mts +1 -1
- package/dist/cli/index.mjs +19 -18
- package/dist/presets/_nitro/runtime/nitro-dev.d.mts +1 -0
- package/dist/presets/_nitro/runtime/nitro-dev.mjs +42 -33
- package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +2 -2
- package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +4 -8
- package/dist/presets/_nitro/runtime/service-worker.d.mts +1 -0
- package/dist/presets/_nitro/runtime/service-worker.mjs +14 -11
- package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +1 -0
- package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +6 -5
- package/dist/presets/aws-lambda/runtime/_utils.d.mts +8 -13
- package/dist/presets/aws-lambda/runtime/_utils.mjs +95 -81
- package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +1 -2
- package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +25 -27
- package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +7 -7
- package/dist/presets/azure/runtime/_utils.mjs +43 -43
- package/dist/presets/azure/runtime/azure-swa.d.mts +2 -2
- package/dist/presets/azure/runtime/azure-swa.mjs +22 -21
- package/dist/presets/bun/runtime/bun.d.mts +1 -0
- package/dist/presets/bun/runtime/bun.mjs +18 -17
- package/dist/presets/cloudflare/runtime/_module-handler.d.mts +10 -7
- package/dist/presets/cloudflare/runtime/_module-handler.mjs +78 -87
- package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +6 -14
- package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +53 -58
- package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +1 -7
- package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +12 -14
- package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +12 -12
- package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +35 -39
- package/dist/presets/cloudflare/runtime/plugin.dev.d.mts +2 -2
- package/dist/presets/cloudflare/runtime/plugin.dev.mjs +86 -76
- package/dist/presets/deno/runtime/deno-deploy.d.mts +1 -0
- package/dist/presets/deno/runtime/deno-deploy.mjs +12 -11
- package/dist/presets/deno/runtime/deno-server.d.mts +2 -1
- package/dist/presets/deno/runtime/deno-server.mjs +31 -39
- package/dist/presets/netlify/runtime/netlify-edge.d.mts +2 -1
- package/dist/presets/netlify/runtime/netlify-edge.mjs +14 -11
- package/dist/presets/netlify/runtime/netlify.mjs +11 -17
- package/dist/presets/node/runtime/node-cluster.mjs +49 -48
- package/dist/presets/node/runtime/node-middleware.d.mts +3 -2
- package/dist/presets/node/runtime/node-middleware.mjs +7 -6
- package/dist/presets/node/runtime/node-server.mjs +33 -23
- package/dist/presets/standard/runtime/server.d.mts +1 -3
- package/dist/presets/standard/runtime/server.mjs +1 -3
- package/dist/presets/stormkit/runtime/stormkit.d.mts +13 -13
- package/dist/presets/stormkit/runtime/stormkit.mjs +20 -20
- package/dist/presets/vercel/runtime/vercel.d.mts +3 -3
- package/dist/presets/vercel/runtime/vercel.mjs +15 -14
- package/dist/presets/winterjs/runtime/winterjs.d.mts +2 -0
- package/dist/presets/winterjs/runtime/winterjs.mjs +72 -68
- package/dist/presets/zeabur/runtime/zeabur.d.mts +1 -1
- package/dist/runtime/index.d.mts +12 -1
- package/dist/runtime/index.mjs +12 -7
- package/dist/runtime/internal/app.mjs +175 -162
- package/dist/runtime/internal/cache.d.mts +10 -4
- package/dist/runtime/internal/cache.mjs +247 -216
- package/dist/runtime/internal/context.d.mts +9 -9
- package/dist/runtime/internal/context.mjs +17 -10
- package/dist/runtime/internal/database.mjs +8 -10
- package/dist/runtime/internal/error/dev.d.mts +5 -4
- package/dist/runtime/internal/error/dev.mjs +106 -105
- package/dist/runtime/internal/error/prod.d.mts +2 -2
- package/dist/runtime/internal/error/prod.mjs +48 -52
- package/dist/runtime/internal/error/utils.d.mts +4 -4
- package/dist/runtime/internal/error/utils.mjs +1 -1
- package/dist/runtime/internal/index.d.mts +2 -0
- package/dist/runtime/internal/index.mjs +2 -0
- package/dist/runtime/internal/lib/http-graceful-shutdown.d.mts +14 -14
- package/dist/runtime/internal/lib/http-graceful-shutdown.mjs +248 -209
- package/dist/runtime/internal/meta.d.mts +1 -1
- package/dist/runtime/internal/meta.mjs +1 -1
- package/dist/runtime/internal/plugin.d.mts +2 -2
- package/dist/runtime/internal/plugin.mjs +1 -1
- package/dist/runtime/internal/renderer.mjs +39 -31
- package/dist/runtime/internal/route-rules.d.mts +8 -8
- package/dist/runtime/internal/route-rules.mjs +53 -51
- package/dist/runtime/internal/routes/dev-tasks.d.mts +1 -30
- package/dist/runtime/internal/routes/dev-tasks.mjs +15 -17
- package/dist/runtime/internal/routes/openapi.d.mts +1 -0
- package/dist/runtime/internal/routes/openapi.mjs +81 -87
- package/dist/runtime/internal/routes/renderer-template.d.mts +1 -1
- package/dist/runtime/internal/routes/renderer-template.dev.d.mts +1 -2
- package/dist/runtime/internal/routes/renderer-template.dev.mjs +10 -17
- package/dist/runtime/internal/routes/renderer-template.mjs +1 -1
- package/dist/runtime/internal/routes/scalar.d.mts +1 -0
- package/dist/runtime/internal/routes/scalar.mjs +22 -23
- package/dist/runtime/internal/routes/swagger.d.mts +1 -0
- package/dist/runtime/internal/routes/swagger.mjs +9 -11
- package/dist/runtime/internal/runtime-config.d.mts +4 -4
- package/dist/runtime/internal/runtime-config.mjs +40 -35
- package/dist/runtime/internal/shutdown.d.mts +2 -7
- package/dist/runtime/internal/shutdown.mjs +30 -29
- package/dist/runtime/internal/static.mjs +63 -74
- package/dist/runtime/internal/storage.mjs +2 -2
- package/dist/runtime/internal/task.d.mts +6 -6
- package/dist/runtime/internal/task.mjs +56 -59
- package/dist/runtime/internal/utils.d.mts +1 -1
- package/dist/runtime/internal/utils.mjs +4 -10
- package/dist/types/index.d.mts +2566 -3851
- package/dist/types/index.mjs +1 -1
- package/dist/vite.d.mts +61 -51
- package/dist/vite.mjs +55 -132
- package/package.json +10 -10
- package/dist/_build/build.mjs +0 -368
- package/dist/_build/build2.mjs +0 -556
- package/dist/_build/info.mjs +0 -1002
- package/dist/_build/prepare.mjs +0 -1511
- package/dist/_build/snapshot.mjs +0 -185
- package/dist/_build/vite.mjs +0 -959
- package/dist/_build/vite2.mjs +0 -149
- package/dist/_chunks/_deps/@jridgewell/gen-mapping.mjs +0 -189
- package/dist/_chunks/_deps/@jridgewell/remapping.mjs +0 -137
- package/dist/_chunks/_deps/@jridgewell/resolve-uri.mjs +0 -231
- package/dist/_chunks/_deps/@jridgewell/sourcemap-codec.mjs +0 -173
- package/dist/_chunks/_deps/@jridgewell/trace-mapping.mjs +0 -170
- package/dist/_chunks/_deps/@rollup/plugin-alias.mjs +0 -89
- package/dist/_chunks/_deps/@rollup/plugin-commonjs.mjs +0 -2376
- package/dist/_chunks/_deps/@rollup/plugin-inject.mjs +0 -212
- package/dist/_chunks/_deps/@rollup/plugin-json.mjs +0 -37
- package/dist/_chunks/_deps/@rollup/plugin-node-resolve.mjs +0 -1386
- package/dist/_chunks/_deps/@rollup/plugin-replace.mjs +0 -133
- package/dist/_chunks/_deps/@rollup/pluginutils.mjs +0 -346
- package/dist/_chunks/_deps/acorn.mjs +0 -6225
- package/dist/_chunks/_deps/c12.mjs +0 -510
- package/dist/_chunks/_deps/chokidar.mjs +0 -1428
- package/dist/_chunks/_deps/citty.mjs +0 -460
- package/dist/_chunks/_deps/commondir.mjs +0 -77
- package/dist/_chunks/_deps/compatx.mjs +0 -76
- package/dist/_chunks/_deps/confbox.mjs +0 -300
- package/dist/_chunks/_deps/debug.mjs +0 -885
- package/dist/_chunks/_deps/deepmerge.mjs +0 -147
- package/dist/_chunks/_deps/depd.mjs +0 -550
- package/dist/_chunks/_deps/dot-prop.mjs +0 -282
- package/dist/_chunks/_deps/dotenv.mjs +0 -555
- package/dist/_chunks/_deps/duplexer.mjs +0 -1
- package/dist/_chunks/_deps/ee-first.mjs +0 -104
- package/dist/_chunks/_deps/encodeurl.mjs +0 -69
- package/dist/_chunks/_deps/escape-html.mjs +0 -87
- package/dist/_chunks/_deps/escape-string-regexp.mjs +0 -13
- package/dist/_chunks/_deps/estree-walker.mjs +0 -433
- package/dist/_chunks/_deps/etag.mjs +0 -147
- package/dist/_chunks/_deps/exsolve.mjs +0 -1416
- package/dist/_chunks/_deps/fresh.mjs +0 -145
- package/dist/_chunks/_deps/function-bind.mjs +0 -106
- package/dist/_chunks/_deps/giget.mjs +0 -451
- package/dist/_chunks/_deps/gzip-size.mjs +0 -19
- package/dist/_chunks/_deps/hasown.mjs +0 -19
- package/dist/_chunks/_deps/http-errors.mjs +0 -307
- package/dist/_chunks/_deps/httpxy.mjs +0 -580
- package/dist/_chunks/_deps/inherits.mjs +0 -57
- package/dist/_chunks/_deps/is-core-module.mjs +0 -596
- package/dist/_chunks/_deps/is-module.mjs +0 -25
- package/dist/_chunks/_deps/is-reference.mjs +0 -31
- package/dist/_chunks/_deps/klona.mjs +0 -137
- package/dist/_chunks/_deps/knitwork.mjs +0 -172
- package/dist/_chunks/_deps/local-pkg.mjs +0 -163
- package/dist/_chunks/_deps/mime-db.mjs +0 -11685
- package/dist/_chunks/_deps/mime-types.mjs +0 -287
- package/dist/_chunks/_deps/mime.mjs +0 -1172
- package/dist/_chunks/_deps/mlly.mjs +0 -2413
- package/dist/_chunks/_deps/ms.mjs +0 -172
- package/dist/_chunks/_deps/node-fetch-native.mjs +0 -3
- package/dist/_chunks/_deps/nypm.mjs +0 -219
- package/dist/_chunks/_deps/on-finished.mjs +0 -246
- package/dist/_chunks/_deps/parseurl.mjs +0 -168
- package/dist/_chunks/_deps/path-parse.mjs +0 -85
- package/dist/_chunks/_deps/pathe.mjs +0 -251
- package/dist/_chunks/_deps/perfect-debounce.mjs +0 -88
- package/dist/_chunks/_deps/picomatch.mjs +0 -2144
- package/dist/_chunks/_deps/pkg-types.mjs +0 -247
- package/dist/_chunks/_deps/pretty-bytes.mjs +0 -180
- package/dist/_chunks/_deps/quansync.mjs +0 -99
- package/dist/_chunks/_deps/range-parser.mjs +0 -171
- package/dist/_chunks/_deps/rc9.mjs +0 -219
- package/dist/_chunks/_deps/readdirp.mjs +0 -245
- package/dist/_chunks/_deps/resolve.mjs +0 -1260
- package/dist/_chunks/_deps/send.mjs +0 -1022
- package/dist/_chunks/_deps/serve-static.mjs +0 -228
- package/dist/_chunks/_deps/setprototypeof.mjs +0 -26
- package/dist/_chunks/_deps/statuses.mjs +0 -457
- package/dist/_chunks/_deps/std-env.mjs +0 -3
- package/dist/_chunks/_deps/strip-literal.mjs +0 -67
- package/dist/_chunks/_deps/supports-color.mjs +0 -44
- package/dist/_chunks/_deps/tinyexec.mjs +0 -552
- package/dist/_chunks/_deps/toidentifier.mjs +0 -41
- package/dist/_chunks/_deps/ultrahtml.mjs +0 -3
- package/dist/_chunks/_deps/unimport.mjs +0 -2267
- package/dist/_chunks/_deps/unplugin-utils.mjs +0 -65
- package/dist/_chunks/_deps/unplugin.mjs +0 -1294
- package/dist/_chunks/_deps/untyped.mjs +0 -375
- package/dist/_chunks/_deps/unwasm.mjs +0 -6959
- package/dist/_chunks/_deps/webpack-virtual-modules.mjs +0 -360
- package/dist/_chunks/_presets/_all.mjs +0 -59
- package/dist/_chunks/_presets/_nitro.mjs +0 -74
- package/dist/_chunks/_presets/_resolve.mjs +0 -64
- package/dist/_chunks/_presets/_static.mjs +0 -69
- package/dist/_chunks/_presets/_types.mjs +0 -3
- package/dist/_chunks/_presets/_utils.mjs +0 -31
- package/dist/_chunks/_presets/alwaysdata.mjs +0 -17
- package/dist/_chunks/_presets/aws-amplify.mjs +0 -111
- package/dist/_chunks/_presets/aws-lambda.mjs +0 -23
- package/dist/_chunks/_presets/azure.mjs +0 -162
- package/dist/_chunks/_presets/bun.mjs +0 -19
- package/dist/_chunks/_presets/cleavr.mjs +0 -15
- package/dist/_chunks/_presets/cloudflare.mjs +0 -608
- package/dist/_chunks/_presets/deno.mjs +0 -196
- package/dist/_chunks/_presets/digitalocean.mjs +0 -14
- package/dist/_chunks/_presets/firebase.mjs +0 -47
- package/dist/_chunks/_presets/flightcontrol.mjs +0 -14
- package/dist/_chunks/_presets/genezio.mjs +0 -13
- package/dist/_chunks/_presets/heroku.mjs +0 -14
- package/dist/_chunks/_presets/iis.mjs +0 -194
- package/dist/_chunks/_presets/index.mjs +0 -62
- package/dist/_chunks/_presets/koyeb.mjs +0 -14
- package/dist/_chunks/_presets/netlify.mjs +0 -241
- package/dist/_chunks/_presets/node.mjs +0 -54
- package/dist/_chunks/_presets/platform.mjs +0 -14
- package/dist/_chunks/_presets/render.mjs +0 -14
- package/dist/_chunks/_presets/standard.mjs +0 -23
- package/dist/_chunks/_presets/stormkit.mjs +0 -18
- package/dist/_chunks/_presets/vercel.mjs +0 -375
- package/dist/_chunks/_presets/winterjs.mjs +0 -22
- package/dist/_chunks/_presets/zeabur.mjs +0 -69
- package/dist/_chunks/_presets/zerops.mjs +0 -27
- package/dist/_chunks/app.mjs +0 -600
- package/dist/_chunks/builder.mjs +0 -648
- package/dist/_chunks/server.mjs +0 -256
- package/dist/_cli/build.mjs +0 -49
- package/dist/_cli/common.mjs +0 -13
- package/dist/_cli/dev.mjs +0 -121
- package/dist/_cli/index.mjs +0 -16
- package/dist/_cli/list.mjs +0 -33
- package/dist/_cli/prepare.mjs +0 -23
- package/dist/_cli/run.mjs +0 -59
- package/dist/presets/cloudflare/runtime/shims/workers.dev.d.mts +0 -21
- package/dist/runtime/internal/empty.d.mts +0 -0
- package/dist/runtime/internal/vite/dev-entry.d.mts +0 -1
- package/dist/runtime/internal/vite/dev-worker.d.mts +0 -1
- package/dist/runtime/internal/vite/prod-setup.d.mts +0 -4
- package/dist/runtime/internal/vite/ssr-renderer.d.mts +0 -4
- /package/lib/{indexd.mts → index.d.mts} +0 -0
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import require$$0 from 'url';
|
|
2
|
-
|
|
3
|
-
var parseurl = {exports: {}};
|
|
4
|
-
|
|
5
|
-
/*!
|
|
6
|
-
* parseurl
|
|
7
|
-
* Copyright(c) 2014 Jonathan Ong
|
|
8
|
-
* Copyright(c) 2014-2017 Douglas Christopher Wilson
|
|
9
|
-
* MIT Licensed
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
var hasRequiredParseurl;
|
|
13
|
-
|
|
14
|
-
function requireParseurl () {
|
|
15
|
-
if (hasRequiredParseurl) return parseurl.exports;
|
|
16
|
-
hasRequiredParseurl = 1;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Module dependencies.
|
|
20
|
-
* @private
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
var url = require$$0;
|
|
24
|
-
var parse = url.parse;
|
|
25
|
-
var Url = url.Url;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Module exports.
|
|
29
|
-
* @public
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
parseurl.exports = parseurl$1;
|
|
33
|
-
parseurl.exports.original = originalurl;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Parse the `req` url with memoization.
|
|
37
|
-
*
|
|
38
|
-
* @param {ServerRequest} req
|
|
39
|
-
* @return {Object}
|
|
40
|
-
* @public
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
function parseurl$1 (req) {
|
|
44
|
-
var url = req.url;
|
|
45
|
-
|
|
46
|
-
if (url === undefined) {
|
|
47
|
-
// URL is undefined
|
|
48
|
-
return undefined
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
var parsed = req._parsedUrl;
|
|
52
|
-
|
|
53
|
-
if (fresh(url, parsed)) {
|
|
54
|
-
// Return cached URL parse
|
|
55
|
-
return parsed
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Parse the URL
|
|
59
|
-
parsed = fastparse(url);
|
|
60
|
-
parsed._raw = url;
|
|
61
|
-
|
|
62
|
-
return (req._parsedUrl = parsed)
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Parse the `req` original url with fallback and memoization.
|
|
66
|
-
*
|
|
67
|
-
* @param {ServerRequest} req
|
|
68
|
-
* @return {Object}
|
|
69
|
-
* @public
|
|
70
|
-
*/
|
|
71
|
-
|
|
72
|
-
function originalurl (req) {
|
|
73
|
-
var url = req.originalUrl;
|
|
74
|
-
|
|
75
|
-
if (typeof url !== 'string') {
|
|
76
|
-
// Fallback
|
|
77
|
-
return parseurl$1(req)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
var parsed = req._parsedOriginalUrl;
|
|
81
|
-
|
|
82
|
-
if (fresh(url, parsed)) {
|
|
83
|
-
// Return cached URL parse
|
|
84
|
-
return parsed
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Parse the URL
|
|
88
|
-
parsed = fastparse(url);
|
|
89
|
-
parsed._raw = url;
|
|
90
|
-
|
|
91
|
-
return (req._parsedOriginalUrl = parsed)
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Parse the `str` url with fast-path short-cut.
|
|
95
|
-
*
|
|
96
|
-
* @param {string} str
|
|
97
|
-
* @return {Object}
|
|
98
|
-
* @private
|
|
99
|
-
*/
|
|
100
|
-
|
|
101
|
-
function fastparse (str) {
|
|
102
|
-
if (typeof str !== 'string' || str.charCodeAt(0) !== 0x2f /* / */) {
|
|
103
|
-
return parse(str)
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
var pathname = str;
|
|
107
|
-
var query = null;
|
|
108
|
-
var search = null;
|
|
109
|
-
|
|
110
|
-
// This takes the regexp from https://github.com/joyent/node/pull/7878
|
|
111
|
-
// Which is /^(\/[^?#\s]*)(\?[^#\s]*)?$/
|
|
112
|
-
// And unrolls it into a for loop
|
|
113
|
-
for (var i = 1; i < str.length; i++) {
|
|
114
|
-
switch (str.charCodeAt(i)) {
|
|
115
|
-
case 0x3f: /* ? */
|
|
116
|
-
if (search === null) {
|
|
117
|
-
pathname = str.substring(0, i);
|
|
118
|
-
query = str.substring(i + 1);
|
|
119
|
-
search = str.substring(i);
|
|
120
|
-
}
|
|
121
|
-
break
|
|
122
|
-
case 0x09: /* \t */
|
|
123
|
-
case 0x0a: /* \n */
|
|
124
|
-
case 0x0c: /* \f */
|
|
125
|
-
case 0x0d: /* \r */
|
|
126
|
-
case 0x20: /* */
|
|
127
|
-
case 0x23: /* # */
|
|
128
|
-
case 0xa0:
|
|
129
|
-
case 0xfeff:
|
|
130
|
-
return parse(str)
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
var url = Url !== undefined
|
|
135
|
-
? new Url()
|
|
136
|
-
: {};
|
|
137
|
-
|
|
138
|
-
url.path = str;
|
|
139
|
-
url.href = str;
|
|
140
|
-
url.pathname = pathname;
|
|
141
|
-
|
|
142
|
-
if (search !== null) {
|
|
143
|
-
url.query = query;
|
|
144
|
-
url.search = search;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
return url
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Determine if parsed is still fresh for url.
|
|
152
|
-
*
|
|
153
|
-
* @param {string} url
|
|
154
|
-
* @param {object} parsedUrl
|
|
155
|
-
* @return {boolean}
|
|
156
|
-
* @private
|
|
157
|
-
*/
|
|
158
|
-
|
|
159
|
-
function fresh (url, parsedUrl) {
|
|
160
|
-
return typeof parsedUrl === 'object' &&
|
|
161
|
-
parsedUrl !== null &&
|
|
162
|
-
(Url === undefined || parsedUrl instanceof Url) &&
|
|
163
|
-
parsedUrl._raw === url
|
|
164
|
-
}
|
|
165
|
-
return parseurl.exports;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export { requireParseurl as r };
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
var pathParse = {exports: {}};
|
|
2
|
-
|
|
3
|
-
var hasRequiredPathParse;
|
|
4
|
-
|
|
5
|
-
function requirePathParse () {
|
|
6
|
-
if (hasRequiredPathParse) return pathParse.exports;
|
|
7
|
-
hasRequiredPathParse = 1;
|
|
8
|
-
|
|
9
|
-
var isWindows = process.platform === 'win32';
|
|
10
|
-
|
|
11
|
-
// Regex to split a windows path into into [dir, root, basename, name, ext]
|
|
12
|
-
var splitWindowsRe =
|
|
13
|
-
/^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/;
|
|
14
|
-
|
|
15
|
-
var win32 = {};
|
|
16
|
-
|
|
17
|
-
function win32SplitPath(filename) {
|
|
18
|
-
return splitWindowsRe.exec(filename).slice(1);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
win32.parse = function(pathString) {
|
|
22
|
-
if (typeof pathString !== 'string') {
|
|
23
|
-
throw new TypeError(
|
|
24
|
-
"Parameter 'pathString' must be a string, not " + typeof pathString
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
var allParts = win32SplitPath(pathString);
|
|
28
|
-
if (!allParts || allParts.length !== 5) {
|
|
29
|
-
throw new TypeError("Invalid path '" + pathString + "'");
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
root: allParts[1],
|
|
33
|
-
dir: allParts[0] === allParts[1] ? allParts[0] : allParts[0].slice(0, -1),
|
|
34
|
-
base: allParts[2],
|
|
35
|
-
ext: allParts[4],
|
|
36
|
-
name: allParts[3]
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
// Split a filename into [dir, root, basename, name, ext], unix version
|
|
43
|
-
// 'root' is just a slash, or nothing.
|
|
44
|
-
var splitPathRe =
|
|
45
|
-
/^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/;
|
|
46
|
-
var posix = {};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
function posixSplitPath(filename) {
|
|
50
|
-
return splitPathRe.exec(filename).slice(1);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
posix.parse = function(pathString) {
|
|
55
|
-
if (typeof pathString !== 'string') {
|
|
56
|
-
throw new TypeError(
|
|
57
|
-
"Parameter 'pathString' must be a string, not " + typeof pathString
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
var allParts = posixSplitPath(pathString);
|
|
61
|
-
if (!allParts || allParts.length !== 5) {
|
|
62
|
-
throw new TypeError("Invalid path '" + pathString + "'");
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return {
|
|
66
|
-
root: allParts[1],
|
|
67
|
-
dir: allParts[0].slice(0, -1),
|
|
68
|
-
base: allParts[2],
|
|
69
|
-
ext: allParts[4],
|
|
70
|
-
name: allParts[3],
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (isWindows)
|
|
76
|
-
pathParse.exports = win32.parse;
|
|
77
|
-
else /* posix */
|
|
78
|
-
pathParse.exports = posix.parse;
|
|
79
|
-
|
|
80
|
-
pathParse.exports.posix = posix.parse;
|
|
81
|
-
pathParse.exports.win32 = win32.parse;
|
|
82
|
-
return pathParse.exports;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export { requirePathParse as r };
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
|
|
2
|
-
function normalizeWindowsPath(input = "") {
|
|
3
|
-
if (!input) {
|
|
4
|
-
return input;
|
|
5
|
-
}
|
|
6
|
-
return input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE, (r) => r.toUpperCase());
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const _UNC_REGEX = /^[/\\]{2}/;
|
|
10
|
-
const _IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;
|
|
11
|
-
const _DRIVE_LETTER_RE = /^[A-Za-z]:$/;
|
|
12
|
-
const _ROOT_FOLDER_RE = /^\/([A-Za-z]:)?$/;
|
|
13
|
-
const _EXTNAME_RE = /.(\.[^./]+|\.)$/;
|
|
14
|
-
const _PATH_ROOT_RE = /^[/\\]|^[a-zA-Z]:[/\\]/;
|
|
15
|
-
const normalize = function(path) {
|
|
16
|
-
if (path.length === 0) {
|
|
17
|
-
return ".";
|
|
18
|
-
}
|
|
19
|
-
path = normalizeWindowsPath(path);
|
|
20
|
-
const isUNCPath = path.match(_UNC_REGEX);
|
|
21
|
-
const isPathAbsolute = isAbsolute(path);
|
|
22
|
-
const trailingSeparator = path[path.length - 1] === "/";
|
|
23
|
-
path = normalizeString(path, !isPathAbsolute);
|
|
24
|
-
if (path.length === 0) {
|
|
25
|
-
if (isPathAbsolute) {
|
|
26
|
-
return "/";
|
|
27
|
-
}
|
|
28
|
-
return trailingSeparator ? "./" : ".";
|
|
29
|
-
}
|
|
30
|
-
if (trailingSeparator) {
|
|
31
|
-
path += "/";
|
|
32
|
-
}
|
|
33
|
-
if (_DRIVE_LETTER_RE.test(path)) {
|
|
34
|
-
path += "/";
|
|
35
|
-
}
|
|
36
|
-
if (isUNCPath) {
|
|
37
|
-
if (!isPathAbsolute) {
|
|
38
|
-
return `//./${path}`;
|
|
39
|
-
}
|
|
40
|
-
return `//${path}`;
|
|
41
|
-
}
|
|
42
|
-
return isPathAbsolute && !isAbsolute(path) ? `/${path}` : path;
|
|
43
|
-
};
|
|
44
|
-
const join = function(...segments) {
|
|
45
|
-
let path = "";
|
|
46
|
-
for (const seg of segments) {
|
|
47
|
-
if (!seg) {
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
if (path.length > 0) {
|
|
51
|
-
const pathTrailing = path[path.length - 1] === "/";
|
|
52
|
-
const segLeading = seg[0] === "/";
|
|
53
|
-
const both = pathTrailing && segLeading;
|
|
54
|
-
if (both) {
|
|
55
|
-
path += seg.slice(1);
|
|
56
|
-
} else {
|
|
57
|
-
path += pathTrailing || segLeading ? seg : `/${seg}`;
|
|
58
|
-
}
|
|
59
|
-
} else {
|
|
60
|
-
path += seg;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return normalize(path);
|
|
64
|
-
};
|
|
65
|
-
function cwd() {
|
|
66
|
-
if (typeof process !== "undefined" && typeof process.cwd === "function") {
|
|
67
|
-
return process.cwd().replace(/\\/g, "/");
|
|
68
|
-
}
|
|
69
|
-
return "/";
|
|
70
|
-
}
|
|
71
|
-
const resolve = function(...arguments_) {
|
|
72
|
-
arguments_ = arguments_.map((argument) => normalizeWindowsPath(argument));
|
|
73
|
-
let resolvedPath = "";
|
|
74
|
-
let resolvedAbsolute = false;
|
|
75
|
-
for (let index = arguments_.length - 1; index >= -1 && !resolvedAbsolute; index--) {
|
|
76
|
-
const path = index >= 0 ? arguments_[index] : cwd();
|
|
77
|
-
if (!path || path.length === 0) {
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
resolvedPath = `${path}/${resolvedPath}`;
|
|
81
|
-
resolvedAbsolute = isAbsolute(path);
|
|
82
|
-
}
|
|
83
|
-
resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute);
|
|
84
|
-
if (resolvedAbsolute && !isAbsolute(resolvedPath)) {
|
|
85
|
-
return `/${resolvedPath}`;
|
|
86
|
-
}
|
|
87
|
-
return resolvedPath.length > 0 ? resolvedPath : ".";
|
|
88
|
-
};
|
|
89
|
-
function normalizeString(path, allowAboveRoot) {
|
|
90
|
-
let res = "";
|
|
91
|
-
let lastSegmentLength = 0;
|
|
92
|
-
let lastSlash = -1;
|
|
93
|
-
let dots = 0;
|
|
94
|
-
let char = null;
|
|
95
|
-
for (let index = 0; index <= path.length; ++index) {
|
|
96
|
-
if (index < path.length) {
|
|
97
|
-
char = path[index];
|
|
98
|
-
} else if (char === "/") {
|
|
99
|
-
break;
|
|
100
|
-
} else {
|
|
101
|
-
char = "/";
|
|
102
|
-
}
|
|
103
|
-
if (char === "/") {
|
|
104
|
-
if (lastSlash === index - 1 || dots === 1) ; else if (dots === 2) {
|
|
105
|
-
if (res.length < 2 || lastSegmentLength !== 2 || res[res.length - 1] !== "." || res[res.length - 2] !== ".") {
|
|
106
|
-
if (res.length > 2) {
|
|
107
|
-
const lastSlashIndex = res.lastIndexOf("/");
|
|
108
|
-
if (lastSlashIndex === -1) {
|
|
109
|
-
res = "";
|
|
110
|
-
lastSegmentLength = 0;
|
|
111
|
-
} else {
|
|
112
|
-
res = res.slice(0, lastSlashIndex);
|
|
113
|
-
lastSegmentLength = res.length - 1 - res.lastIndexOf("/");
|
|
114
|
-
}
|
|
115
|
-
lastSlash = index;
|
|
116
|
-
dots = 0;
|
|
117
|
-
continue;
|
|
118
|
-
} else if (res.length > 0) {
|
|
119
|
-
res = "";
|
|
120
|
-
lastSegmentLength = 0;
|
|
121
|
-
lastSlash = index;
|
|
122
|
-
dots = 0;
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
if (allowAboveRoot) {
|
|
127
|
-
res += res.length > 0 ? "/.." : "..";
|
|
128
|
-
lastSegmentLength = 2;
|
|
129
|
-
}
|
|
130
|
-
} else {
|
|
131
|
-
if (res.length > 0) {
|
|
132
|
-
res += `/${path.slice(lastSlash + 1, index)}`;
|
|
133
|
-
} else {
|
|
134
|
-
res = path.slice(lastSlash + 1, index);
|
|
135
|
-
}
|
|
136
|
-
lastSegmentLength = index - lastSlash - 1;
|
|
137
|
-
}
|
|
138
|
-
lastSlash = index;
|
|
139
|
-
dots = 0;
|
|
140
|
-
} else if (char === "." && dots !== -1) {
|
|
141
|
-
++dots;
|
|
142
|
-
} else {
|
|
143
|
-
dots = -1;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return res;
|
|
147
|
-
}
|
|
148
|
-
const isAbsolute = function(p) {
|
|
149
|
-
return _IS_ABSOLUTE_RE.test(p);
|
|
150
|
-
};
|
|
151
|
-
const extname = function(p) {
|
|
152
|
-
if (p === "..") return "";
|
|
153
|
-
const match = _EXTNAME_RE.exec(normalizeWindowsPath(p));
|
|
154
|
-
return match && match[1] || "";
|
|
155
|
-
};
|
|
156
|
-
const relative = function(from, to) {
|
|
157
|
-
const _from = resolve(from).replace(_ROOT_FOLDER_RE, "$1").split("/");
|
|
158
|
-
const _to = resolve(to).replace(_ROOT_FOLDER_RE, "$1").split("/");
|
|
159
|
-
if (_to[0][1] === ":" && _from[0][1] === ":" && _from[0] !== _to[0]) {
|
|
160
|
-
return _to.join("/");
|
|
161
|
-
}
|
|
162
|
-
const _fromCopy = [..._from];
|
|
163
|
-
for (const segment of _fromCopy) {
|
|
164
|
-
if (_to[0] !== segment) {
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
_from.shift();
|
|
168
|
-
_to.shift();
|
|
169
|
-
}
|
|
170
|
-
return [..._from.map(() => ".."), ..._to].join("/");
|
|
171
|
-
};
|
|
172
|
-
const dirname = function(p) {
|
|
173
|
-
const segments = normalizeWindowsPath(p).replace(/\/$/, "").split("/").slice(0, -1);
|
|
174
|
-
if (segments.length === 1 && _DRIVE_LETTER_RE.test(segments[0])) {
|
|
175
|
-
segments[0] += "/";
|
|
176
|
-
}
|
|
177
|
-
return segments.join("/") || (isAbsolute(p) ? "/" : ".");
|
|
178
|
-
};
|
|
179
|
-
const basename = function(p, extension) {
|
|
180
|
-
const segments = normalizeWindowsPath(p).split("/");
|
|
181
|
-
let lastSegment = "";
|
|
182
|
-
for (let i = segments.length - 1; i >= 0; i--) {
|
|
183
|
-
const val = segments[i];
|
|
184
|
-
if (val) {
|
|
185
|
-
lastSegment = val;
|
|
186
|
-
break;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return extension && lastSegment.endsWith(extension) ? lastSegment.slice(0, -extension.length) : lastSegment;
|
|
190
|
-
};
|
|
191
|
-
const parse = function(p) {
|
|
192
|
-
const root = _PATH_ROOT_RE.exec(p)?.[0]?.replace(/\\/g, "/") || "";
|
|
193
|
-
const base = basename(p);
|
|
194
|
-
const extension = extname(base);
|
|
195
|
-
return {
|
|
196
|
-
root,
|
|
197
|
-
dir: dirname(p),
|
|
198
|
-
base,
|
|
199
|
-
ext: extension,
|
|
200
|
-
name: base.slice(0, base.length - extension.length)
|
|
201
|
-
};
|
|
202
|
-
};
|
|
203
|
-
|
|
204
|
-
const pathSeparators = /* @__PURE__ */ new Set(["/", "\\", void 0]);
|
|
205
|
-
const normalizedAliasSymbol = Symbol.for("pathe:normalizedAlias");
|
|
206
|
-
function normalizeAliases(_aliases) {
|
|
207
|
-
if (_aliases[normalizedAliasSymbol]) {
|
|
208
|
-
return _aliases;
|
|
209
|
-
}
|
|
210
|
-
const aliases = Object.fromEntries(
|
|
211
|
-
Object.entries(_aliases).sort(([a], [b]) => _compareAliases(a, b))
|
|
212
|
-
);
|
|
213
|
-
for (const key in aliases) {
|
|
214
|
-
for (const alias in aliases) {
|
|
215
|
-
if (alias === key || key.startsWith(alias)) {
|
|
216
|
-
continue;
|
|
217
|
-
}
|
|
218
|
-
if (aliases[key]?.startsWith(alias) && pathSeparators.has(aliases[key][alias.length])) {
|
|
219
|
-
aliases[key] = aliases[alias] + aliases[key].slice(alias.length);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
Object.defineProperty(aliases, normalizedAliasSymbol, {
|
|
224
|
-
value: true,
|
|
225
|
-
enumerable: false
|
|
226
|
-
});
|
|
227
|
-
return aliases;
|
|
228
|
-
}
|
|
229
|
-
function resolveAlias(path, aliases) {
|
|
230
|
-
const _path = normalizeWindowsPath(path);
|
|
231
|
-
aliases = normalizeAliases(aliases);
|
|
232
|
-
for (const [alias, to] of Object.entries(aliases)) {
|
|
233
|
-
if (!_path.startsWith(alias)) {
|
|
234
|
-
continue;
|
|
235
|
-
}
|
|
236
|
-
const _alias = hasTrailingSlash(alias) ? alias.slice(0, -1) : alias;
|
|
237
|
-
if (hasTrailingSlash(_path[_alias.length])) {
|
|
238
|
-
return join(to, _path.slice(alias.length));
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
return _path;
|
|
242
|
-
}
|
|
243
|
-
function _compareAliases(a, b) {
|
|
244
|
-
return b.split("/").length - a.split("/").length;
|
|
245
|
-
}
|
|
246
|
-
function hasTrailingSlash(path = "/") {
|
|
247
|
-
const lastChar = path[path.length - 1];
|
|
248
|
-
return lastChar === "/" || lastChar === "\\";
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
export { relative as a, basename as b, resolveAlias as c, dirname as d, extname as e, isAbsolute as i, join as j, normalize as n, parse as p, resolve as r };
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
//#region src/index.ts
|
|
2
|
-
const DEBOUNCE_DEFAULTS = { trailing: true };
|
|
3
|
-
/**
|
|
4
|
-
Debounce functions
|
|
5
|
-
@param fn - Promise-returning/async function to debounce.
|
|
6
|
-
@param wait - Milliseconds to wait before calling `fn`. Default value is 25ms
|
|
7
|
-
@returns A function that delays calling `fn` until after `wait` milliseconds have elapsed since the last time it was called.
|
|
8
|
-
@example
|
|
9
|
-
```
|
|
10
|
-
import { debounce } from 'perfect-debounce';
|
|
11
|
-
const expensiveCall = async input => input;
|
|
12
|
-
const debouncedFn = debounce(expensiveCall, 200);
|
|
13
|
-
for (const number of [1, 2, 3]) {
|
|
14
|
-
console.log(await debouncedFn(number));
|
|
15
|
-
}
|
|
16
|
-
//=> 1
|
|
17
|
-
//=> 2
|
|
18
|
-
//=> 3
|
|
19
|
-
```
|
|
20
|
-
*/
|
|
21
|
-
function debounce(fn, wait = 25, options = {}) {
|
|
22
|
-
options = {
|
|
23
|
-
...DEBOUNCE_DEFAULTS,
|
|
24
|
-
...options
|
|
25
|
-
};
|
|
26
|
-
if (!Number.isFinite(wait)) throw new TypeError("Expected `wait` to be a finite number");
|
|
27
|
-
let leadingValue;
|
|
28
|
-
let timeout;
|
|
29
|
-
let resolveList = [];
|
|
30
|
-
let currentPromise;
|
|
31
|
-
let trailingArgs;
|
|
32
|
-
const applyFn = (_this, args) => {
|
|
33
|
-
currentPromise = _applyPromised(fn, _this, args);
|
|
34
|
-
currentPromise.finally(() => {
|
|
35
|
-
currentPromise = null;
|
|
36
|
-
if (options.trailing && trailingArgs && !timeout) {
|
|
37
|
-
const promise = applyFn(_this, trailingArgs);
|
|
38
|
-
trailingArgs = null;
|
|
39
|
-
return promise;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
return currentPromise;
|
|
43
|
-
};
|
|
44
|
-
const debounced = function(...args) {
|
|
45
|
-
if (options.trailing) trailingArgs = args;
|
|
46
|
-
if (currentPromise) return currentPromise;
|
|
47
|
-
return new Promise((resolve) => {
|
|
48
|
-
const shouldCallNow = !timeout && options.leading;
|
|
49
|
-
clearTimeout(timeout);
|
|
50
|
-
timeout = setTimeout(() => {
|
|
51
|
-
timeout = null;
|
|
52
|
-
const promise = options.leading ? leadingValue : applyFn(this, args);
|
|
53
|
-
trailingArgs = null;
|
|
54
|
-
for (const _resolve of resolveList) _resolve(promise);
|
|
55
|
-
resolveList = [];
|
|
56
|
-
}, wait);
|
|
57
|
-
if (shouldCallNow) {
|
|
58
|
-
leadingValue = applyFn(this, args);
|
|
59
|
-
resolve(leadingValue);
|
|
60
|
-
} else resolveList.push(resolve);
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
const _clearTimeout = (timer) => {
|
|
64
|
-
if (timer) {
|
|
65
|
-
clearTimeout(timer);
|
|
66
|
-
timeout = null;
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
debounced.isPending = () => !!timeout;
|
|
70
|
-
debounced.cancel = () => {
|
|
71
|
-
_clearTimeout(timeout);
|
|
72
|
-
resolveList = [];
|
|
73
|
-
trailingArgs = null;
|
|
74
|
-
};
|
|
75
|
-
debounced.flush = () => {
|
|
76
|
-
_clearTimeout(timeout);
|
|
77
|
-
if (!trailingArgs || currentPromise) return;
|
|
78
|
-
const args = trailingArgs;
|
|
79
|
-
trailingArgs = null;
|
|
80
|
-
return applyFn(this, args);
|
|
81
|
-
};
|
|
82
|
-
return debounced;
|
|
83
|
-
}
|
|
84
|
-
async function _applyPromised(fn, _this, args) {
|
|
85
|
-
return await fn.apply(_this, args);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export { debounce as d };
|