@netlify/plugin-nextjs 4.40.0 → 4.40.2
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/lib/helpers/edge.js +4 -2
- package/lib/templates/getHandler.js +1 -2
- package/lib/templates/handlerUtils.js +14 -1
- package/lib/templates/server.js +9 -8
- package/lib/templates/vendor.js +20 -0
- package/package.json +7 -4
- package/src/templates/edge/next-dev.js +3 -3
- package/src/templates/edge/shims.js +6 -6
- package/src/templates/edge-shared/next-utils.ts +3 -3
- package/src/templates/edge-shared/utils.ts +1 -1
- package/src/templates/vendor/deno.land/std@0.134.0/fmt/colors.ts +536 -0
- package/src/templates/vendor/deno.land/std@0.134.0/testing/_diff.ts +360 -0
- package/src/templates/vendor/deno.land/std@0.134.0/testing/asserts.ts +866 -0
- package/src/templates/vendor/deno.land/std@0.175.0/_util/asserts.ts +25 -0
- package/src/templates/vendor/deno.land/std@0.175.0/_util/os.ts +23 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/abortable.ts +149 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/deadline.ts +30 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/debounce.ts +79 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/deferred.ts +48 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/delay.ts +67 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/mod.ts +18 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/mux_async_iterator.ts +97 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/pool.ts +95 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/retry.ts +81 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/tee.ts +100 -0
- package/src/templates/vendor/deno.land/std@0.175.0/bytes/index_of_needle.ts +49 -0
- package/src/templates/vendor/deno.land/std@0.175.0/crypto/timing_safe_equal.ts +29 -0
- package/src/templates/vendor/deno.land/std@0.175.0/datetime/to_imf.ts +45 -0
- package/src/templates/vendor/deno.land/std@0.175.0/encoding/base64.ts +144 -0
- package/src/templates/vendor/deno.land/std@0.175.0/encoding/base64url.ts +70 -0
- package/src/templates/vendor/deno.land/std@0.175.0/flags/mod.ts +785 -0
- package/src/templates/vendor/deno.land/std@0.175.0/fmt/colors.ts +569 -0
- package/src/templates/vendor/deno.land/std@0.175.0/fmt/printf.ts +939 -0
- package/src/templates/vendor/deno.land/std@0.175.0/http/cookie.ts +403 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_core.ts +77 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_events.d.ts +848 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_events.mjs +1033 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_global.d.ts +66 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_next_tick.ts +173 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_process/exiting.ts +4 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_process/process.ts +131 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_process/stdio.mjs +7 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_process/streams.mjs +146 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_stream.d.ts +1488 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_stream.mjs +746 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_util/_util_callbackify.ts +129 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_utils.ts +206 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/assert.ts +940 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/assertion_error.ts +579 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/async_hooks.ts +331 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/buffer.ts +13 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/events.ts +14 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/buffer.d.ts +2074 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/buffer.mjs +2607 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/crypto/_keys.ts +16 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/crypto/constants.ts +5 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/error_codes.ts +7 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/errors.ts +2867 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/fixed_queue.ts +123 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/hide_stack_frames.ts +16 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/net.ts +95 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/normalize_encoding.mjs +72 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/options.ts +45 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/primordials.mjs +30 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/process/per_thread.mjs +272 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/readline/callbacks.mjs +137 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/readline/utils.mjs +580 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/streams/destroy.mjs +320 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/streams/end-of-stream.mjs +229 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/streams/utils.mjs +242 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/comparisons.ts +669 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/debuglog.ts +118 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/inspect.mjs +2237 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/types.ts +113 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util.mjs +143 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/validators.mjs +317 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_libuv_winerror.ts +229 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_listen.ts +16 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_node.ts +18 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_timingSafeEqual.ts +12 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_utils.ts +86 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_winerror.ts +16873 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/ares.ts +66 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/async_wrap.ts +152 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/buffer.ts +130 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/cares_wrap.ts +541 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/config.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/connection_wrap.ts +80 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/constants.ts +900 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/contextify.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/credentials.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/crypto.ts +14 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/errors.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/fs.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/fs_dir.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/fs_event_wrap.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/handle_wrap.ts +50 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/heap_utils.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/http_parser.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/icu.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/inspector.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/js_stream.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/messaging.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/mod.ts +108 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/module_wrap.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/native_module.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/natives.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/node_file.ts +84 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/node_options.ts +39 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/options.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/os.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/performance.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/pipe_wrap.ts +392 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/process_methods.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/report.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/serdes.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/signal_wrap.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/spawn_sync.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/stream_wrap.ts +354 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/string_decoder.ts +15 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/symbols.ts +27 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/task_queue.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/tcp_wrap.ts +488 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/timers.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/tls_wrap.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/trace_events.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/tty_wrap.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/types.ts +186 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/udp_wrap.ts +496 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/url.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/util.ts +126 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/uv.ts +437 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/v8.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/worker.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/zlib.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/process.ts +705 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/stream.ts +37 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/string_decoder.ts +337 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/util/types.ts +4 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/util.ts +289 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/_constants.ts +49 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/_interface.ts +30 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/_util.ts +194 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/common.ts +40 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/glob.ts +418 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/mod.ts +53 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/posix.ts +487 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/separator.ts +7 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/win32.ts +962 -0
- package/src/templates/vendor/deno.land/std@0.175.0/streams/write_all.ts +64 -0
- package/src/templates/vendor/deno.land/std@0.175.0/testing/_diff.ts +440 -0
- package/src/templates/vendor/deno.land/std@0.175.0/testing/_format.ts +23 -0
- package/src/templates/vendor/deno.land/std@0.175.0/testing/asserts.ts +906 -0
- package/src/templates/vendor/deno.land/std@0.175.0/types.d.ts +89 -0
- package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/index.ts +133 -0
- package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/asyncify.js +112 -0
- package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/html_rewriter.d.ts +88 -0
- package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/html_rewriter.js +974 -0
- package/src/templates/vendor/deno.land/x/path_to_regexp@v6.2.1/index.ts +621 -0
- package/src/templates/vendor/esm.sh/v91/next@12.2.5/deno/dist/compiled/cookie.js +13 -0
- package/src/templates/vendor/esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/request.js +12 -0
- package/src/templates/vendor/esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/response.js +5 -0
- package/src/templates/vendor/import_map.json +13 -0
- package/src/templates/vendor/raw.githubusercontent.com/worker-tools/resolvable-promise/master/index.ts +50 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
|
2
|
+
//
|
|
3
|
+
// Adapted from Node.js. Copyright Joyent, Inc. and other Node contributors.
|
|
4
|
+
//
|
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
6
|
+
// copy of this software and associated documentation files (the
|
|
7
|
+
// "Software"), to deal in the Software without restriction, including
|
|
8
|
+
// without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
10
|
+
// persons to whom the Software is furnished to do so, subject to the
|
|
11
|
+
// following conditions:
|
|
12
|
+
//
|
|
13
|
+
// The above copyright notice and this permission notice shall be included
|
|
14
|
+
// in all copies or substantial portions of the Software.
|
|
15
|
+
//
|
|
16
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
17
|
+
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
19
|
+
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
20
|
+
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
21
|
+
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
22
|
+
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
|
|
24
|
+
// These are simplified versions of the "real" errors in Node.
|
|
25
|
+
|
|
26
|
+
import { nextTick } from "../_next_tick.ts";
|
|
27
|
+
|
|
28
|
+
class NodeFalsyValueRejectionError extends Error {
|
|
29
|
+
public reason: unknown;
|
|
30
|
+
public code = "ERR_FALSY_VALUE_REJECTION";
|
|
31
|
+
constructor(reason: unknown) {
|
|
32
|
+
super("Promise was rejected with falsy value");
|
|
33
|
+
this.reason = reason;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
class NodeInvalidArgTypeError extends TypeError {
|
|
37
|
+
public code = "ERR_INVALID_ARG_TYPE";
|
|
38
|
+
constructor(argumentName: string) {
|
|
39
|
+
super(`The ${argumentName} argument must be of type function.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
type Callback<ResultT> =
|
|
44
|
+
| ((err: Error) => void)
|
|
45
|
+
| ((err: null, result: ResultT) => void);
|
|
46
|
+
|
|
47
|
+
function callbackify<ResultT>(
|
|
48
|
+
fn: () => PromiseLike<ResultT>,
|
|
49
|
+
): (callback: Callback<ResultT>) => void;
|
|
50
|
+
function callbackify<ArgT, ResultT>(
|
|
51
|
+
fn: (arg: ArgT) => PromiseLike<ResultT>,
|
|
52
|
+
): (arg: ArgT, callback: Callback<ResultT>) => void;
|
|
53
|
+
function callbackify<Arg1T, Arg2T, ResultT>(
|
|
54
|
+
fn: (arg1: Arg1T, arg2: Arg2T) => PromiseLike<ResultT>,
|
|
55
|
+
): (arg1: Arg1T, arg2: Arg2T, callback: Callback<ResultT>) => void;
|
|
56
|
+
function callbackify<Arg1T, Arg2T, Arg3T, ResultT>(
|
|
57
|
+
fn: (arg1: Arg1T, arg2: Arg2T, arg3: Arg3T) => PromiseLike<ResultT>,
|
|
58
|
+
): (arg1: Arg1T, arg2: Arg2T, arg3: Arg3T, callback: Callback<ResultT>) => void;
|
|
59
|
+
function callbackify<Arg1T, Arg2T, Arg3T, Arg4T, ResultT>(
|
|
60
|
+
fn: (
|
|
61
|
+
arg1: Arg1T,
|
|
62
|
+
arg2: Arg2T,
|
|
63
|
+
arg3: Arg3T,
|
|
64
|
+
arg4: Arg4T,
|
|
65
|
+
) => PromiseLike<ResultT>,
|
|
66
|
+
): (
|
|
67
|
+
arg1: Arg1T,
|
|
68
|
+
arg2: Arg2T,
|
|
69
|
+
arg3: Arg3T,
|
|
70
|
+
arg4: Arg4T,
|
|
71
|
+
callback: Callback<ResultT>,
|
|
72
|
+
) => void;
|
|
73
|
+
function callbackify<Arg1T, Arg2T, Arg3T, Arg4T, Arg5T, ResultT>(
|
|
74
|
+
fn: (
|
|
75
|
+
arg1: Arg1T,
|
|
76
|
+
arg2: Arg2T,
|
|
77
|
+
arg3: Arg3T,
|
|
78
|
+
arg4: Arg4T,
|
|
79
|
+
arg5: Arg5T,
|
|
80
|
+
) => PromiseLike<ResultT>,
|
|
81
|
+
): (
|
|
82
|
+
arg1: Arg1T,
|
|
83
|
+
arg2: Arg2T,
|
|
84
|
+
arg3: Arg3T,
|
|
85
|
+
arg4: Arg4T,
|
|
86
|
+
arg5: Arg5T,
|
|
87
|
+
callback: Callback<ResultT>,
|
|
88
|
+
) => void;
|
|
89
|
+
|
|
90
|
+
function callbackify<ResultT>(
|
|
91
|
+
original: (...args: unknown[]) => PromiseLike<ResultT>,
|
|
92
|
+
): (...args: unknown[]) => void {
|
|
93
|
+
if (typeof original !== "function") {
|
|
94
|
+
throw new NodeInvalidArgTypeError('"original"');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const callbackified = function (this: unknown, ...args: unknown[]) {
|
|
98
|
+
const maybeCb = args.pop();
|
|
99
|
+
if (typeof maybeCb !== "function") {
|
|
100
|
+
throw new NodeInvalidArgTypeError("last");
|
|
101
|
+
}
|
|
102
|
+
const cb = (...args: unknown[]) => {
|
|
103
|
+
maybeCb.apply(this, args);
|
|
104
|
+
};
|
|
105
|
+
original.apply(this, args).then(
|
|
106
|
+
(ret: unknown) => {
|
|
107
|
+
nextTick(cb.bind(this, null, ret));
|
|
108
|
+
},
|
|
109
|
+
(rej: unknown) => {
|
|
110
|
+
rej = rej || new NodeFalsyValueRejectionError(rej);
|
|
111
|
+
nextTick(cb.bind(this, rej));
|
|
112
|
+
},
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
const descriptors = Object.getOwnPropertyDescriptors(original);
|
|
117
|
+
// It is possible to manipulate a functions `length` or `name` property. This
|
|
118
|
+
// guards against the manipulation.
|
|
119
|
+
if (typeof descriptors.length.value === "number") {
|
|
120
|
+
descriptors.length.value++;
|
|
121
|
+
}
|
|
122
|
+
if (typeof descriptors.name.value === "string") {
|
|
123
|
+
descriptors.name.value += "Callbackified";
|
|
124
|
+
}
|
|
125
|
+
Object.defineProperties(callbackified, descriptors);
|
|
126
|
+
return callbackified;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export { callbackify };
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
|
2
|
+
|
|
3
|
+
import { errorMap } from "./internal_binding/uv.ts";
|
|
4
|
+
import { codes } from "./internal/error_codes.ts";
|
|
5
|
+
|
|
6
|
+
export type BinaryEncodings = "binary";
|
|
7
|
+
|
|
8
|
+
export type TextEncodings =
|
|
9
|
+
| "ascii"
|
|
10
|
+
| "utf8"
|
|
11
|
+
| "utf-8"
|
|
12
|
+
| "utf16le"
|
|
13
|
+
| "ucs2"
|
|
14
|
+
| "ucs-2"
|
|
15
|
+
| "base64"
|
|
16
|
+
| "latin1"
|
|
17
|
+
| "hex";
|
|
18
|
+
|
|
19
|
+
export type Encodings = BinaryEncodings | TextEncodings;
|
|
20
|
+
|
|
21
|
+
export function notImplemented(msg: string): never {
|
|
22
|
+
const message = msg ? `Not implemented: ${msg}` : "Not implemented";
|
|
23
|
+
throw new Error(message);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function warnNotImplemented(msg?: string) {
|
|
27
|
+
const message = msg
|
|
28
|
+
? `Warning: Not implemented: ${msg}`
|
|
29
|
+
: "Warning: Not implemented";
|
|
30
|
+
console.warn(message);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export type _TextDecoder = typeof TextDecoder.prototype;
|
|
34
|
+
export const _TextDecoder = TextDecoder;
|
|
35
|
+
|
|
36
|
+
export type _TextEncoder = typeof TextEncoder.prototype;
|
|
37
|
+
export const _TextEncoder = TextEncoder;
|
|
38
|
+
|
|
39
|
+
// API helpers
|
|
40
|
+
|
|
41
|
+
export type MaybeNull<T> = T | null;
|
|
42
|
+
export type MaybeDefined<T> = T | undefined;
|
|
43
|
+
export type MaybeEmpty<T> = T | null | undefined;
|
|
44
|
+
|
|
45
|
+
export function intoCallbackAPI<T>(
|
|
46
|
+
// deno-lint-ignore no-explicit-any
|
|
47
|
+
func: (...args: any[]) => Promise<T>,
|
|
48
|
+
cb: MaybeEmpty<(err: MaybeNull<Error>, value?: MaybeEmpty<T>) => void>,
|
|
49
|
+
// deno-lint-ignore no-explicit-any
|
|
50
|
+
...args: any[]
|
|
51
|
+
) {
|
|
52
|
+
func(...args).then(
|
|
53
|
+
(value) => cb && cb(null, value),
|
|
54
|
+
(err) => cb && cb(err),
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function intoCallbackAPIWithIntercept<T1, T2>(
|
|
59
|
+
// deno-lint-ignore no-explicit-any
|
|
60
|
+
func: (...args: any[]) => Promise<T1>,
|
|
61
|
+
interceptor: (v: T1) => T2,
|
|
62
|
+
cb: MaybeEmpty<(err: MaybeNull<Error>, value?: MaybeEmpty<T2>) => void>,
|
|
63
|
+
// deno-lint-ignore no-explicit-any
|
|
64
|
+
...args: any[]
|
|
65
|
+
) {
|
|
66
|
+
func(...args).then(
|
|
67
|
+
(value) => cb && cb(null, interceptor(value)),
|
|
68
|
+
(err) => cb && cb(err),
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export function spliceOne(list: string[], index: number) {
|
|
73
|
+
for (; index + 1 < list.length; index++) list[index] = list[index + 1];
|
|
74
|
+
list.pop();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Taken from: https://github.com/nodejs/node/blob/ba684805b6c0eded76e5cd89ee00328ac7a59365/lib/internal/util.js#L125
|
|
78
|
+
// Return undefined if there is no match.
|
|
79
|
+
// Move the "slow cases" to a separate function to make sure this function gets
|
|
80
|
+
// inlined properly. That prioritizes the common case.
|
|
81
|
+
export function normalizeEncoding(
|
|
82
|
+
enc: string | null,
|
|
83
|
+
): TextEncodings | undefined {
|
|
84
|
+
if (enc == null || enc === "utf8" || enc === "utf-8") return "utf8";
|
|
85
|
+
return slowCases(enc);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// https://github.com/nodejs/node/blob/ba684805b6c0eded76e5cd89ee00328ac7a59365/lib/internal/util.js#L130
|
|
89
|
+
function slowCases(enc: string): TextEncodings | undefined {
|
|
90
|
+
switch (enc.length) {
|
|
91
|
+
case 4:
|
|
92
|
+
if (enc === "UTF8") return "utf8";
|
|
93
|
+
if (enc === "ucs2" || enc === "UCS2") return "utf16le";
|
|
94
|
+
enc = `${enc}`.toLowerCase();
|
|
95
|
+
if (enc === "utf8") return "utf8";
|
|
96
|
+
if (enc === "ucs2") return "utf16le";
|
|
97
|
+
break;
|
|
98
|
+
case 3:
|
|
99
|
+
if (enc === "hex" || enc === "HEX" || `${enc}`.toLowerCase() === "hex") {
|
|
100
|
+
return "hex";
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
case 5:
|
|
104
|
+
if (enc === "ascii") return "ascii";
|
|
105
|
+
if (enc === "ucs-2") return "utf16le";
|
|
106
|
+
if (enc === "UTF-8") return "utf8";
|
|
107
|
+
if (enc === "ASCII") return "ascii";
|
|
108
|
+
if (enc === "UCS-2") return "utf16le";
|
|
109
|
+
enc = `${enc}`.toLowerCase();
|
|
110
|
+
if (enc === "utf-8") return "utf8";
|
|
111
|
+
if (enc === "ascii") return "ascii";
|
|
112
|
+
if (enc === "ucs-2") return "utf16le";
|
|
113
|
+
break;
|
|
114
|
+
case 6:
|
|
115
|
+
if (enc === "base64") return "base64";
|
|
116
|
+
if (enc === "latin1" || enc === "binary") return "latin1";
|
|
117
|
+
if (enc === "BASE64") return "base64";
|
|
118
|
+
if (enc === "LATIN1" || enc === "BINARY") return "latin1";
|
|
119
|
+
enc = `${enc}`.toLowerCase();
|
|
120
|
+
if (enc === "base64") return "base64";
|
|
121
|
+
if (enc === "latin1" || enc === "binary") return "latin1";
|
|
122
|
+
break;
|
|
123
|
+
case 7:
|
|
124
|
+
if (
|
|
125
|
+
enc === "utf16le" ||
|
|
126
|
+
enc === "UTF16LE" ||
|
|
127
|
+
`${enc}`.toLowerCase() === "utf16le"
|
|
128
|
+
) {
|
|
129
|
+
return "utf16le";
|
|
130
|
+
}
|
|
131
|
+
break;
|
|
132
|
+
case 8:
|
|
133
|
+
if (
|
|
134
|
+
enc === "utf-16le" ||
|
|
135
|
+
enc === "UTF-16LE" ||
|
|
136
|
+
`${enc}`.toLowerCase() === "utf-16le"
|
|
137
|
+
) {
|
|
138
|
+
return "utf16le";
|
|
139
|
+
}
|
|
140
|
+
break;
|
|
141
|
+
default:
|
|
142
|
+
if (enc === "") return "utf8";
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export function validateIntegerRange(
|
|
147
|
+
value: number,
|
|
148
|
+
name: string,
|
|
149
|
+
min = -2147483648,
|
|
150
|
+
max = 2147483647,
|
|
151
|
+
) {
|
|
152
|
+
// The defaults for min and max correspond to the limits of 32-bit integers.
|
|
153
|
+
if (!Number.isInteger(value)) {
|
|
154
|
+
throw new Error(`${name} must be 'an integer' but was ${value}`);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (value < min || value > max) {
|
|
158
|
+
throw new Error(
|
|
159
|
+
`${name} must be >= ${min} && <= ${max}. Value was ${value}`,
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
type OptionalSpread<T> = T extends undefined ? []
|
|
165
|
+
: [T];
|
|
166
|
+
|
|
167
|
+
export function once<T = undefined>(
|
|
168
|
+
callback: (...args: OptionalSpread<T>) => void,
|
|
169
|
+
) {
|
|
170
|
+
let called = false;
|
|
171
|
+
return function (this: unknown, ...args: OptionalSpread<T>) {
|
|
172
|
+
if (called) return;
|
|
173
|
+
called = true;
|
|
174
|
+
callback.apply(this, args);
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export function makeMethodsEnumerable(klass: { new (): unknown }) {
|
|
179
|
+
const proto = klass.prototype;
|
|
180
|
+
for (const key of Object.getOwnPropertyNames(proto)) {
|
|
181
|
+
const value = proto[key];
|
|
182
|
+
if (typeof value === "function") {
|
|
183
|
+
const desc = Reflect.getOwnPropertyDescriptor(proto, key);
|
|
184
|
+
if (desc) {
|
|
185
|
+
desc.enumerable = true;
|
|
186
|
+
Object.defineProperty(proto, key, desc);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const NumberIsSafeInteger = Number.isSafeInteger;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Returns a system error name from an error code number.
|
|
196
|
+
* @param code error code number
|
|
197
|
+
*/
|
|
198
|
+
export function getSystemErrorName(code: number): string | undefined {
|
|
199
|
+
if (typeof code !== "number") {
|
|
200
|
+
throw new codes.ERR_INVALID_ARG_TYPE("err", "number", code);
|
|
201
|
+
}
|
|
202
|
+
if (code >= 0 || !NumberIsSafeInteger(code)) {
|
|
203
|
+
throw new codes.ERR_OUT_OF_RANGE("err", "a negative integer", code);
|
|
204
|
+
}
|
|
205
|
+
return errorMap.get(code)?.[0];
|
|
206
|
+
}
|