wrangler 0.0.0-fa8e5232 → 0.0.0-fb0db827
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/bin/wrangler.js +1 -1
- package/miniflare-dist/index.mjs +96 -52
- package/package.json +15 -10
- package/src/__tests__/api-devregistry.test.ts +121 -0
- package/src/__tests__/api.test.ts +27 -5
- package/src/__tests__/configuration.test.ts +294 -18
- package/src/__tests__/d1/execute.test.ts +3 -1
- package/src/__tests__/d1/migrate.test.ts +2 -0
- package/src/__tests__/delete.test.ts +6 -0
- package/src/__tests__/deployments.test.ts +335 -95
- package/src/__tests__/dev.test.tsx +87 -57
- package/src/__tests__/generate.test.ts +3 -4
- package/src/__tests__/guess-worker-format.test.ts +35 -0
- package/src/__tests__/helpers/mock-console.ts +6 -0
- package/src/__tests__/helpers/msw/handlers/deployments.ts +70 -3
- package/src/__tests__/helpers/msw/index.ts +4 -2
- package/src/__tests__/helpers/worker-scripts/parent-worker.js +4 -1
- package/src/__tests__/index.test.ts +10 -4
- package/src/__tests__/init.test.ts +136 -104
- package/src/__tests__/jest.setup.ts +4 -0
- package/src/__tests__/kv.test.ts +9 -9
- package/src/__tests__/logger.test.ts +68 -2
- package/src/__tests__/middleware.scheduled.test.ts +2 -2
- package/src/__tests__/middleware.test.ts +4 -3
- package/src/__tests__/mtls-certificates.test.ts +5 -2
- package/src/__tests__/pages/deployment-list.test.ts +2 -0
- package/src/__tests__/pages/functions-build.test.ts +91 -41
- package/src/__tests__/pages/project-list.test.ts +2 -0
- package/src/__tests__/pages/project-upload.test.ts +43 -24
- package/src/__tests__/pages/publish.test.ts +267 -148
- package/src/__tests__/publish.test.ts +420 -164
- package/src/__tests__/pubsub.test.ts +3 -0
- package/src/__tests__/queues.test.ts +5 -2
- package/src/__tests__/test-old-node-version.js +3 -3
- package/src/__tests__/traverse-module-graph.test.ts +220 -0
- package/src/__tests__/tsconfig.tsbuildinfo +1 -1
- package/src/__tests__/type-generation.test.ts +1 -0
- package/src/__tests__/user.test.ts +1 -1
- package/src/__tests__/worker-namespace.test.ts +1 -0
- package/src/api/dev.ts +10 -22
- package/src/api/pages/create-worker-bundle-contents.ts +1 -0
- package/src/api/pages/publish.tsx +38 -51
- package/src/bundle.ts +44 -13
- package/src/config/environment.ts +36 -4
- package/src/config/index.ts +30 -2
- package/src/config/validation-helpers.ts +1 -1
- package/src/config/validation.ts +149 -5
- package/src/create-worker-upload-form.ts +28 -3
- package/src/d1/backups.tsx +15 -11
- package/src/d1/create.tsx +20 -16
- package/src/d1/execute.tsx +22 -19
- package/src/d1/list.tsx +2 -2
- package/src/d1/migrations/apply.tsx +35 -29
- package/src/d1/migrations/create.tsx +15 -12
- package/src/d1/migrations/list.tsx +10 -7
- package/src/deployments.ts +260 -8
- package/src/dev/dev.tsx +4 -4
- package/src/dev/local.tsx +18 -21
- package/src/dev/start-server.ts +12 -16
- package/src/dev/use-esbuild.ts +11 -13
- package/src/dev/validate-dev-props.ts +9 -0
- package/src/dev-registry.ts +2 -1
- package/src/dev.tsx +28 -13
- package/src/entry.ts +18 -9
- package/src/generate/index.ts +2 -2
- package/src/index.ts +76 -23
- package/src/init.ts +144 -134
- package/src/inspect.ts +4 -1
- package/src/logger.ts +18 -3
- package/src/metrics/send-event.ts +2 -1
- package/src/miniflare-cli/assets.ts +8 -7
- package/src/miniflare-cli/index.ts +3 -3
- package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -1
- package/src/module-collection.ts +92 -26
- package/src/pages/build.ts +277 -99
- package/src/pages/buildFunctions.ts +20 -10
- package/src/pages/deployments.tsx +3 -5
- package/src/pages/dev.ts +21 -21
- package/src/pages/errors.ts +1 -0
- package/src/pages/functions/buildPlugin.ts +57 -34
- package/src/pages/functions/buildWorker.ts +34 -31
- package/src/pages/functions/tsconfig.tsbuildinfo +1 -1
- package/src/pages/projects.tsx +2 -5
- package/src/pages/publish.tsx +1 -10
- package/src/pages/upload.tsx +29 -9
- package/src/paths.ts +1 -1
- package/src/publish/index.ts +1 -1
- package/src/publish/publish.ts +29 -34
- package/src/queues/cli/commands/consumer/add.ts +6 -0
- package/src/queues/client.ts +1 -0
- package/src/r2/helpers.ts +1 -0
- package/src/secret/index.ts +2 -1
- package/src/traverse-module-graph.ts +53 -0
- package/src/type-generation.ts +1 -1
- package/src/user/user.ts +1 -1
- package/src/utils/render.ts +93 -0
- package/src/worker.ts +18 -1
- package/templates/d1-beta-facade.js +5 -2
- package/templates/gitignore +1 -0
- package/templates/middleware/middleware-miniflare3-json-error.ts +17 -5
- package/templates/pages-template-plugin.ts +7 -3
- package/templates/tsconfig.init.json +1 -2
- package/templates/tsconfig.tsbuildinfo +1 -1
- package/wrangler-dist/cli.d.ts +547 -14
- package/wrangler-dist/cli.js +27524 -20087
- package/src/__tests__/api-devregistry.test.js +0 -64
package/bin/wrangler.js
CHANGED
|
@@ -20,7 +20,7 @@ function runWrangler() {
|
|
|
20
20
|
// Note Volta and nvm are also recommended in the official docs:
|
|
21
21
|
// https://developers.cloudflare.com/workers/get-started/guide#2-install-the-workers-cli
|
|
22
22
|
console.error(
|
|
23
|
-
`Wrangler requires at least
|
|
23
|
+
`Wrangler requires at least Node.js v${MIN_NODE_VERSION}. You are using v${process.versions.node}. Please update your version of Node.js.
|
|
24
24
|
|
|
25
25
|
Consider using a Node.js version manager such as https://volta.sh/ or https://github.com/nvm-sh/nvm.`
|
|
26
26
|
);
|
package/miniflare-dist/index.mjs
CHANGED
|
@@ -783,11 +783,11 @@ var init_handler = __esm({
|
|
|
783
783
|
});
|
|
784
784
|
|
|
785
785
|
// src/miniflare-cli/index.ts
|
|
786
|
-
import { fetch } from "@miniflare/core";
|
|
787
786
|
import {
|
|
788
787
|
DurableObjectNamespace,
|
|
789
788
|
DurableObjectStub
|
|
790
789
|
} from "@miniflare/durable-objects";
|
|
790
|
+
import { upgradingFetch } from "@miniflare/web-sockets";
|
|
791
791
|
import {
|
|
792
792
|
Log as MiniflareLog,
|
|
793
793
|
LogLevel as MiniflareLogLevel,
|
|
@@ -799,7 +799,7 @@ import {
|
|
|
799
799
|
// ../../node_modules/yargs/lib/platform-shims/esm.mjs
|
|
800
800
|
import { notStrictEqual, strictEqual } from "assert";
|
|
801
801
|
|
|
802
|
-
// ../../node_modules/cliui/build/lib/index.js
|
|
802
|
+
// ../../node_modules/yargs/node_modules/cliui/build/lib/index.js
|
|
803
803
|
var align = {
|
|
804
804
|
right: alignRight,
|
|
805
805
|
center: alignCenter
|
|
@@ -810,9 +810,9 @@ var bottom = 2;
|
|
|
810
810
|
var left = 3;
|
|
811
811
|
var UI = class {
|
|
812
812
|
constructor(opts) {
|
|
813
|
-
var
|
|
813
|
+
var _a2;
|
|
814
814
|
this.width = opts.width;
|
|
815
|
-
this.wrap = (
|
|
815
|
+
this.wrap = (_a2 = opts.wrap) !== null && _a2 !== void 0 ? _a2 : true;
|
|
816
816
|
this.rows = [];
|
|
817
817
|
}
|
|
818
818
|
span(...args) {
|
|
@@ -1053,7 +1053,7 @@ function cliui(opts, _mixin) {
|
|
|
1053
1053
|
});
|
|
1054
1054
|
}
|
|
1055
1055
|
|
|
1056
|
-
// ../../node_modules/cliui/build/lib/string-utils.js
|
|
1056
|
+
// ../../node_modules/yargs/node_modules/cliui/build/lib/string-utils.js
|
|
1057
1057
|
var ansi = new RegExp("\x1B(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)", "g");
|
|
1058
1058
|
function stripAnsi(str) {
|
|
1059
1059
|
return str.replace(ansi, "");
|
|
@@ -1074,7 +1074,7 @@ function wrap(str, width) {
|
|
|
1074
1074
|
return wrapped;
|
|
1075
1075
|
}
|
|
1076
1076
|
|
|
1077
|
-
// ../../node_modules/cliui/index.mjs
|
|
1077
|
+
// ../../node_modules/yargs/node_modules/cliui/index.mjs
|
|
1078
1078
|
function ui(opts) {
|
|
1079
1079
|
return cliui(opts, {
|
|
1080
1080
|
stringWidth: (str) => {
|
|
@@ -1365,9 +1365,9 @@ var YargsParser = class {
|
|
|
1365
1365
|
let m;
|
|
1366
1366
|
let next;
|
|
1367
1367
|
let value;
|
|
1368
|
-
if (arg !== "--" && isUnknownOptionAsArg(arg)) {
|
|
1368
|
+
if (arg !== "--" && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {
|
|
1369
1369
|
pushPositional(arg);
|
|
1370
|
-
} else if (truncatedArg.match(
|
|
1370
|
+
} else if (truncatedArg.match(/^---+(=|$)/)) {
|
|
1371
1371
|
pushPositional(arg);
|
|
1372
1372
|
continue;
|
|
1373
1373
|
} else if (arg.match(/^--.+=/) || !configuration["short-option-groups"] && arg.match(/^-.+=/)) {
|
|
@@ -2050,9 +2050,13 @@ function stripQuotes(val) {
|
|
|
2050
2050
|
|
|
2051
2051
|
// ../../node_modules/yargs/node_modules/yargs-parser/build/lib/index.js
|
|
2052
2052
|
import { readFileSync } from "fs";
|
|
2053
|
+
var _a;
|
|
2054
|
+
var _b;
|
|
2055
|
+
var _c;
|
|
2053
2056
|
var minNodeVersion = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number(process.env.YARGS_MIN_NODE_VERSION) : 12;
|
|
2054
|
-
|
|
2055
|
-
|
|
2057
|
+
var nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);
|
|
2058
|
+
if (nodeVersion) {
|
|
2059
|
+
const major = Number(nodeVersion.match(/^([^.]+)/)[1]);
|
|
2056
2060
|
if (major < minNodeVersion) {
|
|
2057
2061
|
throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);
|
|
2058
2062
|
}
|
|
@@ -2115,7 +2119,9 @@ var YError = class extends Error {
|
|
|
2115
2119
|
constructor(msg) {
|
|
2116
2120
|
super(msg || "yargs error");
|
|
2117
2121
|
this.name = "YError";
|
|
2118
|
-
Error.captureStackTrace
|
|
2122
|
+
if (Error.captureStackTrace) {
|
|
2123
|
+
Error.captureStackTrace(this, YError);
|
|
2124
|
+
}
|
|
2119
2125
|
}
|
|
2120
2126
|
};
|
|
2121
2127
|
|
|
@@ -2315,7 +2321,7 @@ try {
|
|
|
2315
2321
|
} catch (e) {
|
|
2316
2322
|
__dirname = process.cwd();
|
|
2317
2323
|
}
|
|
2318
|
-
var mainFilename = __dirname.
|
|
2324
|
+
var mainFilename = __dirname.substring(0, __dirname.lastIndexOf("node_modules"));
|
|
2319
2325
|
var esm_default = {
|
|
2320
2326
|
assert: {
|
|
2321
2327
|
notStrictEqual,
|
|
@@ -2700,6 +2706,7 @@ var CommandInstance = class {
|
|
|
2700
2706
|
const builder = commandHandler.builder;
|
|
2701
2707
|
let innerYargs = yargs;
|
|
2702
2708
|
if (isCommandBuilderCallback(builder)) {
|
|
2709
|
+
yargs.getInternalMethods().getUsageInstance().freeze();
|
|
2703
2710
|
const builderOutput = builder(yargs.getInternalMethods().reset(aliases), helpOrVersionSet);
|
|
2704
2711
|
if (isPromise(builderOutput)) {
|
|
2705
2712
|
return builderOutput.then((output) => {
|
|
@@ -2708,6 +2715,7 @@ var CommandInstance = class {
|
|
|
2708
2715
|
});
|
|
2709
2716
|
}
|
|
2710
2717
|
} else if (isCommandBuilderOptionDefinitions(builder)) {
|
|
2718
|
+
yargs.getInternalMethods().getUsageInstance().freeze();
|
|
2711
2719
|
innerYargs = yargs.getInternalMethods().reset(aliases);
|
|
2712
2720
|
Object.keys(commandHandler.builder).forEach((key) => {
|
|
2713
2721
|
innerYargs.option(key, builder[key]);
|
|
@@ -2741,15 +2749,7 @@ var CommandInstance = class {
|
|
|
2741
2749
|
pc.push(c);
|
|
2742
2750
|
return `$0 ${pc.join(" ")}`;
|
|
2743
2751
|
}
|
|
2744
|
-
|
|
2745
|
-
let positionalMap = {};
|
|
2746
|
-
if (helpOnly)
|
|
2747
|
-
return innerArgv;
|
|
2748
|
-
if (!yargs.getInternalMethods().getHasOutput()) {
|
|
2749
|
-
positionalMap = this.populatePositionals(commandHandler, innerArgv, currentContext, yargs);
|
|
2750
|
-
}
|
|
2751
|
-
const middlewares = this.globalMiddleware.getMiddleware().slice(0).concat(commandHandler.middlewares);
|
|
2752
|
-
innerArgv = applyMiddleware(innerArgv, yargs, middlewares, true);
|
|
2752
|
+
handleValidationAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, aliases, yargs, middlewares, positionalMap) {
|
|
2753
2753
|
if (!yargs.getInternalMethods().getHasOutput()) {
|
|
2754
2754
|
const validation2 = yargs.getInternalMethods().runValidation(aliases, positionalMap, yargs.parsed.error, isDefaultCommand);
|
|
2755
2755
|
innerArgv = maybeAsyncResult(innerArgv, (result) => {
|
|
@@ -2784,6 +2784,17 @@ var CommandInstance = class {
|
|
|
2784
2784
|
}
|
|
2785
2785
|
return innerArgv;
|
|
2786
2786
|
}
|
|
2787
|
+
applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, helpOnly, aliases, yargs) {
|
|
2788
|
+
let positionalMap = {};
|
|
2789
|
+
if (helpOnly)
|
|
2790
|
+
return innerArgv;
|
|
2791
|
+
if (!yargs.getInternalMethods().getHasOutput()) {
|
|
2792
|
+
positionalMap = this.populatePositionals(commandHandler, innerArgv, currentContext, yargs);
|
|
2793
|
+
}
|
|
2794
|
+
const middlewares = this.globalMiddleware.getMiddleware().slice(0).concat(commandHandler.middlewares);
|
|
2795
|
+
const maybePromiseArgv = applyMiddleware(innerArgv, yargs, middlewares, true);
|
|
2796
|
+
return isPromise(maybePromiseArgv) ? maybePromiseArgv.then((resolvedInnerArgv) => this.handleValidationAndGetResult(isDefaultCommand, commandHandler, resolvedInnerArgv, currentContext, aliases, yargs, middlewares, positionalMap)) : this.handleValidationAndGetResult(isDefaultCommand, commandHandler, maybePromiseArgv, currentContext, aliases, yargs, middlewares, positionalMap);
|
|
2797
|
+
}
|
|
2787
2798
|
populatePositionals(commandHandler, argv, context, yargs) {
|
|
2788
2799
|
argv._ = argv._.slice(context.commands.length);
|
|
2789
2800
|
const demanded = commandHandler.demanded.slice(0);
|
|
@@ -2870,12 +2881,11 @@ var CommandInstance = class {
|
|
|
2870
2881
|
Object.keys(positionalMap).forEach((key) => {
|
|
2871
2882
|
positionalKeys.push(...parsed.aliases[key]);
|
|
2872
2883
|
});
|
|
2873
|
-
const defaults = yargs.getOptions().default;
|
|
2874
2884
|
Object.keys(parsed.argv).forEach((key) => {
|
|
2875
2885
|
if (positionalKeys.includes(key)) {
|
|
2876
2886
|
if (!positionalMap[key])
|
|
2877
2887
|
positionalMap[key] = parsed.argv[key];
|
|
2878
|
-
if (!
|
|
2888
|
+
if (!this.isInConfigs(yargs, key) && !this.isDefaulted(yargs, key) && Object.prototype.hasOwnProperty.call(argv, key) && Object.prototype.hasOwnProperty.call(parsed.argv, key) && (Array.isArray(argv[key]) || Array.isArray(parsed.argv[key]))) {
|
|
2879
2889
|
argv[key] = [].concat(argv[key], parsed.argv[key]);
|
|
2880
2890
|
} else {
|
|
2881
2891
|
argv[key] = parsed.argv[key];
|
|
@@ -2884,6 +2894,14 @@ var CommandInstance = class {
|
|
|
2884
2894
|
});
|
|
2885
2895
|
}
|
|
2886
2896
|
}
|
|
2897
|
+
isDefaulted(yargs, key) {
|
|
2898
|
+
const { default: defaults } = yargs.getOptions();
|
|
2899
|
+
return Object.prototype.hasOwnProperty.call(defaults, key) || Object.prototype.hasOwnProperty.call(defaults, this.shim.Parser.camelCase(key));
|
|
2900
|
+
}
|
|
2901
|
+
isInConfigs(yargs, key) {
|
|
2902
|
+
const { configObjects } = yargs.getOptions();
|
|
2903
|
+
return configObjects.some((c) => Object.prototype.hasOwnProperty.call(c, key)) || configObjects.some((c) => Object.prototype.hasOwnProperty.call(c, this.shim.Parser.camelCase(key)));
|
|
2904
|
+
}
|
|
2887
2905
|
runDefaultBuilderOn(yargs) {
|
|
2888
2906
|
if (!this.defaultCommand)
|
|
2889
2907
|
return;
|
|
@@ -3111,13 +3129,16 @@ function usage(yargs, shim3) {
|
|
|
3111
3129
|
wrapSet = true;
|
|
3112
3130
|
wrap2 = cols;
|
|
3113
3131
|
};
|
|
3114
|
-
|
|
3132
|
+
self.getWrap = () => {
|
|
3133
|
+
if (shim3.getEnv("YARGS_DISABLE_WRAP")) {
|
|
3134
|
+
return null;
|
|
3135
|
+
}
|
|
3115
3136
|
if (!wrapSet) {
|
|
3116
3137
|
wrap2 = windowWidth();
|
|
3117
3138
|
wrapSet = true;
|
|
3118
3139
|
}
|
|
3119
3140
|
return wrap2;
|
|
3120
|
-
}
|
|
3141
|
+
};
|
|
3121
3142
|
const deferY18nLookupPrefix = "__yargsString__:";
|
|
3122
3143
|
self.deferY18nLookup = (str) => deferY18nLookupPrefix + str;
|
|
3123
3144
|
self.help = function help() {
|
|
@@ -3141,7 +3162,7 @@ function usage(yargs, shim3) {
|
|
|
3141
3162
|
acc[key] = true;
|
|
3142
3163
|
return acc;
|
|
3143
3164
|
}, {}));
|
|
3144
|
-
const theWrap = getWrap();
|
|
3165
|
+
const theWrap = self.getWrap();
|
|
3145
3166
|
const ui2 = shim3.cliui({
|
|
3146
3167
|
width: theWrap,
|
|
3147
3168
|
wrap: !!theWrap
|
|
@@ -3281,7 +3302,8 @@ function usage(yargs, shim3) {
|
|
|
3281
3302
|
padding: [0, 2, 0, 2 + getIndentation(kswitch)],
|
|
3282
3303
|
width: maxWidth(switches, theWrap) + 4
|
|
3283
3304
|
}, desc);
|
|
3284
|
-
|
|
3305
|
+
const shouldHideOptionExtras = yargs.getInternalMethods().getUsageConfiguration()["hide-types"] === true;
|
|
3306
|
+
if (extra && !shouldHideOptionExtras)
|
|
3285
3307
|
ui2.div({ text: extra, padding: [0, 0, 0, 2], align: "right" });
|
|
3286
3308
|
else
|
|
3287
3309
|
ui2.div();
|
|
@@ -3542,7 +3564,7 @@ var completionZshTemplate = `#compdef {{app_name}}
|
|
|
3542
3564
|
# yargs command completion script
|
|
3543
3565
|
#
|
|
3544
3566
|
# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc
|
|
3545
|
-
# or {{app_path}} {{completion_command}} >> ~/.
|
|
3567
|
+
# or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX.
|
|
3546
3568
|
#
|
|
3547
3569
|
_{{app_name}}_yargs_completions()
|
|
3548
3570
|
{
|
|
@@ -3560,7 +3582,7 @@ compdef _{{app_name}}_yargs_completions {{app_name}}
|
|
|
3560
3582
|
// ../../node_modules/yargs/build/lib/completion.js
|
|
3561
3583
|
var Completion = class {
|
|
3562
3584
|
constructor(yargs, usage2, command2, shim3) {
|
|
3563
|
-
var
|
|
3585
|
+
var _a2, _b2, _c2;
|
|
3564
3586
|
this.yargs = yargs;
|
|
3565
3587
|
this.usage = usage2;
|
|
3566
3588
|
this.command = command2;
|
|
@@ -3569,7 +3591,7 @@ var Completion = class {
|
|
|
3569
3591
|
this.aliases = null;
|
|
3570
3592
|
this.customCompletionFunction = null;
|
|
3571
3593
|
this.indexAfterLastReset = 0;
|
|
3572
|
-
this.zshShell = (
|
|
3594
|
+
this.zshShell = (_c2 = ((_a2 = this.shim.getEnv("SHELL")) === null || _a2 === void 0 ? void 0 : _a2.includes("zsh")) || ((_b2 = this.shim.getEnv("ZSH_NAME")) === null || _b2 === void 0 ? void 0 : _b2.includes("zsh"))) !== null && _c2 !== void 0 ? _c2 : false;
|
|
3573
3595
|
}
|
|
3574
3596
|
defaultCompletion(args, argv, current, done) {
|
|
3575
3597
|
const handlers = this.command.getCommandHandlers();
|
|
@@ -3614,7 +3636,7 @@ var Completion = class {
|
|
|
3614
3636
|
Object.keys(options.key).forEach((key) => {
|
|
3615
3637
|
const negable = !!options.configuration["boolean-negation"] && options.boolean.includes(key);
|
|
3616
3638
|
const isPositionalKey = positionalKeys.includes(key);
|
|
3617
|
-
if (!isPositionalKey && !options.hiddenOptions.includes(key) && !this.argsContainKey(args,
|
|
3639
|
+
if (!isPositionalKey && !options.hiddenOptions.includes(key) && !this.argsContainKey(args, key, negable)) {
|
|
3618
3640
|
this.completeOptionKey(key, completions, current);
|
|
3619
3641
|
if (negable && !!options.default[key])
|
|
3620
3642
|
this.completeOptionKey(`no-${key}`, completions, current);
|
|
@@ -3679,20 +3701,22 @@ var Completion = class {
|
|
|
3679
3701
|
const choices = this.getPreviousArgChoices(args);
|
|
3680
3702
|
return choices !== void 0 && choices.length > 0;
|
|
3681
3703
|
}
|
|
3682
|
-
argsContainKey(args,
|
|
3683
|
-
|
|
3704
|
+
argsContainKey(args, key, negable) {
|
|
3705
|
+
const argsContains = (s) => args.indexOf((/^[^0-9]$/.test(s) ? "-" : "--") + s) !== -1;
|
|
3706
|
+
if (argsContains(key))
|
|
3684
3707
|
return true;
|
|
3685
|
-
if (negable &&
|
|
3708
|
+
if (negable && argsContains(`no-${key}`))
|
|
3686
3709
|
return true;
|
|
3687
3710
|
if (this.aliases) {
|
|
3688
3711
|
for (const alias of this.aliases[key]) {
|
|
3689
|
-
if (
|
|
3712
|
+
if (argsContains(alias))
|
|
3690
3713
|
return true;
|
|
3691
3714
|
}
|
|
3692
3715
|
}
|
|
3693
3716
|
return false;
|
|
3694
3717
|
}
|
|
3695
3718
|
completeOptionKey(key, completions, current) {
|
|
3719
|
+
var _a2, _b2, _c2;
|
|
3696
3720
|
const descs = this.usage.getDescriptions();
|
|
3697
3721
|
const startsByTwoDashes = (s) => /^--/.test(s);
|
|
3698
3722
|
const isShortOption = (s) => /^[^0-9]$/.test(s);
|
|
@@ -3700,8 +3724,13 @@ var Completion = class {
|
|
|
3700
3724
|
if (!this.zshShell) {
|
|
3701
3725
|
completions.push(dashes + key);
|
|
3702
3726
|
} else {
|
|
3703
|
-
const
|
|
3704
|
-
|
|
3727
|
+
const aliasKey = (_a2 = this === null || this === void 0 ? void 0 : this.aliases) === null || _a2 === void 0 ? void 0 : _a2[key].find((alias) => {
|
|
3728
|
+
const desc2 = descs[alias];
|
|
3729
|
+
return typeof desc2 === "string" && desc2.length > 0;
|
|
3730
|
+
});
|
|
3731
|
+
const descFromAlias = aliasKey ? descs[aliasKey] : void 0;
|
|
3732
|
+
const desc = (_c2 = (_b2 = descs[key]) !== null && _b2 !== void 0 ? _b2 : descFromAlias) !== null && _c2 !== void 0 ? _c2 : "";
|
|
3733
|
+
completions.push(dashes + `${key.replace(/:/g, "\\:")}:${desc.replace("__yargsString__:", "").replace(/(\r\n|\n|\r)/gm, " ")}`);
|
|
3705
3734
|
}
|
|
3706
3735
|
}
|
|
3707
3736
|
customCompletion(args, argv, current, done) {
|
|
@@ -3846,7 +3875,7 @@ ${customMsgs.join("\n")}` : "";
|
|
|
3846
3875
|
}
|
|
3847
3876
|
};
|
|
3848
3877
|
self.unknownArguments = function unknownArguments(argv, aliases, positionalMap, isDefaultCommand, checkPositionals = true) {
|
|
3849
|
-
var
|
|
3878
|
+
var _a2;
|
|
3850
3879
|
const commandKeys = yargs.getInternalMethods().getCommandInstance().getCommands();
|
|
3851
3880
|
const unknown = [];
|
|
3852
3881
|
const currentContext = yargs.getInternalMethods().getContext();
|
|
@@ -3864,7 +3893,7 @@ ${customMsgs.join("\n")}` : "";
|
|
|
3864
3893
|
}
|
|
3865
3894
|
if (checkPositionals) {
|
|
3866
3895
|
const demandedCommands = yargs.getDemandedCommands();
|
|
3867
|
-
const maxNonOptDemanded = ((
|
|
3896
|
+
const maxNonOptDemanded = ((_a2 = demandedCommands._) === null || _a2 === void 0 ? void 0 : _a2.max) || 0;
|
|
3868
3897
|
const expected = currentContext.commands.length + maxNonOptDemanded;
|
|
3869
3898
|
if (expected < argv._.length) {
|
|
3870
3899
|
argv._.slice(expected).forEach((key) => {
|
|
@@ -4164,6 +4193,7 @@ var _YargsInstance_strict;
|
|
|
4164
4193
|
var _YargsInstance_strictCommands;
|
|
4165
4194
|
var _YargsInstance_strictOptions;
|
|
4166
4195
|
var _YargsInstance_usage;
|
|
4196
|
+
var _YargsInstance_usageConfig;
|
|
4167
4197
|
var _YargsInstance_versionOpt;
|
|
4168
4198
|
var _YargsInstance_validation;
|
|
4169
4199
|
function YargsFactory(_shim) {
|
|
@@ -4187,6 +4217,7 @@ var kEmitWarning = Symbol("emitWarning");
|
|
|
4187
4217
|
var kFreeze = Symbol("freeze");
|
|
4188
4218
|
var kGetDollarZero = Symbol("getDollarZero");
|
|
4189
4219
|
var kGetParserConfiguration = Symbol("getParserConfiguration");
|
|
4220
|
+
var kGetUsageConfiguration = Symbol("getUsageConfiguration");
|
|
4190
4221
|
var kGuessLocale = Symbol("guessLocale");
|
|
4191
4222
|
var kGuessVersion = Symbol("guessVersion");
|
|
4192
4223
|
var kParsePositionalNumbers = Symbol("parsePositionalNumbers");
|
|
@@ -4251,6 +4282,7 @@ var YargsInstance = class {
|
|
|
4251
4282
|
_YargsInstance_strictCommands.set(this, false);
|
|
4252
4283
|
_YargsInstance_strictOptions.set(this, false);
|
|
4253
4284
|
_YargsInstance_usage.set(this, void 0);
|
|
4285
|
+
_YargsInstance_usageConfig.set(this, {});
|
|
4254
4286
|
_YargsInstance_versionOpt.set(this, null);
|
|
4255
4287
|
_YargsInstance_validation.set(this, void 0);
|
|
4256
4288
|
__classPrivateFieldSet(this, _YargsInstance_shim, shim3, "f");
|
|
@@ -4360,7 +4392,7 @@ var YargsInstance = class {
|
|
|
4360
4392
|
__classPrivateFieldGet(this, _YargsInstance_options, "f").key[keys] = true;
|
|
4361
4393
|
__classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").addCoerceMiddleware((argv, yargs) => {
|
|
4362
4394
|
let aliases;
|
|
4363
|
-
const shouldCoerce = Object.hasOwnProperty.call(argv, keys);
|
|
4395
|
+
const shouldCoerce = Object.prototype.hasOwnProperty.call(argv, keys);
|
|
4364
4396
|
if (!shouldCoerce) {
|
|
4365
4397
|
return argv;
|
|
4366
4398
|
}
|
|
@@ -4675,7 +4707,7 @@ var YargsInstance = class {
|
|
|
4675
4707
|
}
|
|
4676
4708
|
locale(locale) {
|
|
4677
4709
|
argsert("[string]", [locale], arguments.length);
|
|
4678
|
-
if (
|
|
4710
|
+
if (locale === void 0) {
|
|
4679
4711
|
this[kGuessLocale]();
|
|
4680
4712
|
return __classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.getLocale();
|
|
4681
4713
|
}
|
|
@@ -4797,7 +4829,10 @@ var YargsInstance = class {
|
|
|
4797
4829
|
this.skipValidation(key);
|
|
4798
4830
|
}
|
|
4799
4831
|
const desc = opt.describe || opt.description || opt.desc;
|
|
4800
|
-
this
|
|
4832
|
+
const descriptions = __classPrivateFieldGet(this, _YargsInstance_usage, "f").getDescriptions();
|
|
4833
|
+
if (!Object.prototype.hasOwnProperty.call(descriptions, key) || typeof desc === "string") {
|
|
4834
|
+
this.describe(key, desc);
|
|
4835
|
+
}
|
|
4801
4836
|
if (opt.hidden) {
|
|
4802
4837
|
this.hide(key);
|
|
4803
4838
|
}
|
|
@@ -5038,6 +5073,11 @@ var YargsInstance = class {
|
|
|
5038
5073
|
return this;
|
|
5039
5074
|
}
|
|
5040
5075
|
}
|
|
5076
|
+
usageConfiguration(config) {
|
|
5077
|
+
argsert("<object>", [config], arguments.length);
|
|
5078
|
+
__classPrivateFieldSet(this, _YargsInstance_usageConfig, config, "f");
|
|
5079
|
+
return this;
|
|
5080
|
+
}
|
|
5041
5081
|
version(opt, msg, ver) {
|
|
5042
5082
|
const defaultVersionOpt = "version";
|
|
5043
5083
|
argsert("[boolean|string] [string] [string]", [opt, msg, ver], arguments.length);
|
|
@@ -5071,7 +5111,7 @@ var YargsInstance = class {
|
|
|
5071
5111
|
__classPrivateFieldGet(this, _YargsInstance_usage, "f").wrap(cols);
|
|
5072
5112
|
return this;
|
|
5073
5113
|
}
|
|
5074
|
-
[(_YargsInstance_command = /* @__PURE__ */ new WeakMap(), _YargsInstance_cwd = /* @__PURE__ */ new WeakMap(), _YargsInstance_context = /* @__PURE__ */ new WeakMap(), _YargsInstance_completion = /* @__PURE__ */ new WeakMap(), _YargsInstance_completionCommand = /* @__PURE__ */ new WeakMap(), _YargsInstance_defaultShowHiddenOpt = /* @__PURE__ */ new WeakMap(), _YargsInstance_exitError = /* @__PURE__ */ new WeakMap(), _YargsInstance_detectLocale = /* @__PURE__ */ new WeakMap(), _YargsInstance_emittedWarnings = /* @__PURE__ */ new WeakMap(), _YargsInstance_exitProcess = /* @__PURE__ */ new WeakMap(), _YargsInstance_frozens = /* @__PURE__ */ new WeakMap(), _YargsInstance_globalMiddleware = /* @__PURE__ */ new WeakMap(), _YargsInstance_groups = /* @__PURE__ */ new WeakMap(), _YargsInstance_hasOutput = /* @__PURE__ */ new WeakMap(), _YargsInstance_helpOpt = /* @__PURE__ */ new WeakMap(), _YargsInstance_isGlobalContext = /* @__PURE__ */ new WeakMap(), _YargsInstance_logger = /* @__PURE__ */ new WeakMap(), _YargsInstance_output = /* @__PURE__ */ new WeakMap(), _YargsInstance_options = /* @__PURE__ */ new WeakMap(), _YargsInstance_parentRequire = /* @__PURE__ */ new WeakMap(), _YargsInstance_parserConfig = /* @__PURE__ */ new WeakMap(), _YargsInstance_parseFn = /* @__PURE__ */ new WeakMap(), _YargsInstance_parseContext = /* @__PURE__ */ new WeakMap(), _YargsInstance_pkgs = /* @__PURE__ */ new WeakMap(), _YargsInstance_preservedGroups = /* @__PURE__ */ new WeakMap(), _YargsInstance_processArgs = /* @__PURE__ */ new WeakMap(), _YargsInstance_recommendCommands = /* @__PURE__ */ new WeakMap(), _YargsInstance_shim = /* @__PURE__ */ new WeakMap(), _YargsInstance_strict = /* @__PURE__ */ new WeakMap(), _YargsInstance_strictCommands = /* @__PURE__ */ new WeakMap(), _YargsInstance_strictOptions = /* @__PURE__ */ new WeakMap(), _YargsInstance_usage = /* @__PURE__ */ new WeakMap(), _YargsInstance_versionOpt = /* @__PURE__ */ new WeakMap(), _YargsInstance_validation = /* @__PURE__ */ new WeakMap(), kCopyDoubleDash)](argv) {
|
|
5114
|
+
[(_YargsInstance_command = /* @__PURE__ */ new WeakMap(), _YargsInstance_cwd = /* @__PURE__ */ new WeakMap(), _YargsInstance_context = /* @__PURE__ */ new WeakMap(), _YargsInstance_completion = /* @__PURE__ */ new WeakMap(), _YargsInstance_completionCommand = /* @__PURE__ */ new WeakMap(), _YargsInstance_defaultShowHiddenOpt = /* @__PURE__ */ new WeakMap(), _YargsInstance_exitError = /* @__PURE__ */ new WeakMap(), _YargsInstance_detectLocale = /* @__PURE__ */ new WeakMap(), _YargsInstance_emittedWarnings = /* @__PURE__ */ new WeakMap(), _YargsInstance_exitProcess = /* @__PURE__ */ new WeakMap(), _YargsInstance_frozens = /* @__PURE__ */ new WeakMap(), _YargsInstance_globalMiddleware = /* @__PURE__ */ new WeakMap(), _YargsInstance_groups = /* @__PURE__ */ new WeakMap(), _YargsInstance_hasOutput = /* @__PURE__ */ new WeakMap(), _YargsInstance_helpOpt = /* @__PURE__ */ new WeakMap(), _YargsInstance_isGlobalContext = /* @__PURE__ */ new WeakMap(), _YargsInstance_logger = /* @__PURE__ */ new WeakMap(), _YargsInstance_output = /* @__PURE__ */ new WeakMap(), _YargsInstance_options = /* @__PURE__ */ new WeakMap(), _YargsInstance_parentRequire = /* @__PURE__ */ new WeakMap(), _YargsInstance_parserConfig = /* @__PURE__ */ new WeakMap(), _YargsInstance_parseFn = /* @__PURE__ */ new WeakMap(), _YargsInstance_parseContext = /* @__PURE__ */ new WeakMap(), _YargsInstance_pkgs = /* @__PURE__ */ new WeakMap(), _YargsInstance_preservedGroups = /* @__PURE__ */ new WeakMap(), _YargsInstance_processArgs = /* @__PURE__ */ new WeakMap(), _YargsInstance_recommendCommands = /* @__PURE__ */ new WeakMap(), _YargsInstance_shim = /* @__PURE__ */ new WeakMap(), _YargsInstance_strict = /* @__PURE__ */ new WeakMap(), _YargsInstance_strictCommands = /* @__PURE__ */ new WeakMap(), _YargsInstance_strictOptions = /* @__PURE__ */ new WeakMap(), _YargsInstance_usage = /* @__PURE__ */ new WeakMap(), _YargsInstance_usageConfig = /* @__PURE__ */ new WeakMap(), _YargsInstance_versionOpt = /* @__PURE__ */ new WeakMap(), _YargsInstance_validation = /* @__PURE__ */ new WeakMap(), kCopyDoubleDash)](argv) {
|
|
5075
5115
|
if (!argv._ || !argv["--"])
|
|
5076
5116
|
return argv;
|
|
5077
5117
|
argv._.push.apply(argv._, argv["--"]);
|
|
@@ -5163,6 +5203,9 @@ var YargsInstance = class {
|
|
|
5163
5203
|
[kGetParserConfiguration]() {
|
|
5164
5204
|
return __classPrivateFieldGet(this, _YargsInstance_parserConfig, "f");
|
|
5165
5205
|
}
|
|
5206
|
+
[kGetUsageConfiguration]() {
|
|
5207
|
+
return __classPrivateFieldGet(this, _YargsInstance_usageConfig, "f");
|
|
5208
|
+
}
|
|
5166
5209
|
[kGuessLocale]() {
|
|
5167
5210
|
if (!__classPrivateFieldGet(this, _YargsInstance_detectLocale, "f"))
|
|
5168
5211
|
return;
|
|
@@ -5246,20 +5289,20 @@ var YargsInstance = class {
|
|
|
5246
5289
|
return this;
|
|
5247
5290
|
}
|
|
5248
5291
|
[kUnfreeze]() {
|
|
5249
|
-
var
|
|
5292
|
+
var _a2, _b2, _c2, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
5250
5293
|
const frozen = __classPrivateFieldGet(this, _YargsInstance_frozens, "f").pop();
|
|
5251
5294
|
assertNotStrictEqual(frozen, void 0, __classPrivateFieldGet(this, _YargsInstance_shim, "f"));
|
|
5252
5295
|
let configObjects;
|
|
5253
|
-
|
|
5296
|
+
_a2 = this, _b2 = this, _c2 = this, _d = this, _e = this, _f = this, _g = this, _h = this, _j = this, _k = this, _l = this, _m = this, {
|
|
5254
5297
|
options: { set value(_o) {
|
|
5255
|
-
__classPrivateFieldSet(
|
|
5298
|
+
__classPrivateFieldSet(_a2, _YargsInstance_options, _o, "f");
|
|
5256
5299
|
} }.value,
|
|
5257
5300
|
configObjects,
|
|
5258
5301
|
exitProcess: { set value(_o) {
|
|
5259
|
-
__classPrivateFieldSet(
|
|
5302
|
+
__classPrivateFieldSet(_b2, _YargsInstance_exitProcess, _o, "f");
|
|
5260
5303
|
} }.value,
|
|
5261
5304
|
groups: { set value(_o) {
|
|
5262
|
-
__classPrivateFieldSet(
|
|
5305
|
+
__classPrivateFieldSet(_c2, _YargsInstance_groups, _o, "f");
|
|
5263
5306
|
} }.value,
|
|
5264
5307
|
output: { set value(_o) {
|
|
5265
5308
|
__classPrivateFieldSet(_d, _YargsInstance_output, _o, "f");
|
|
@@ -5310,6 +5353,7 @@ var YargsInstance = class {
|
|
|
5310
5353
|
getLoggerInstance: this[kGetLoggerInstance].bind(this),
|
|
5311
5354
|
getParseContext: this[kGetParseContext].bind(this),
|
|
5312
5355
|
getParserConfiguration: this[kGetParserConfiguration].bind(this),
|
|
5356
|
+
getUsageConfiguration: this[kGetUsageConfiguration].bind(this),
|
|
5313
5357
|
getUsageInstance: this[kGetUsageInstance].bind(this),
|
|
5314
5358
|
getValidationInstance: this[kGetValidationInstance].bind(this),
|
|
5315
5359
|
hasParseCallback: this[kHasParseCallback].bind(this),
|
|
@@ -6053,7 +6097,7 @@ async function generateASSETSBinding(options) {
|
|
|
6053
6097
|
const miniflare = options.tre ? await import("@miniflare/tre") : await import("@miniflare/core");
|
|
6054
6098
|
const Request = miniflare.Request;
|
|
6055
6099
|
const Response2 = miniflare.Response;
|
|
6056
|
-
const
|
|
6100
|
+
const fetch = options.tre ? miniflare.fetch : (await import("@miniflare/web-sockets")).upgradingFetch;
|
|
6057
6101
|
return async function(miniflareRequest) {
|
|
6058
6102
|
if (options.proxyPort) {
|
|
6059
6103
|
try {
|
|
@@ -6064,7 +6108,7 @@ async function generateASSETSBinding(options) {
|
|
|
6064
6108
|
proxyRequest.headers.delete("Sec-WebSocket-Accept");
|
|
6065
6109
|
proxyRequest.headers.delete("Sec-WebSocket-Key");
|
|
6066
6110
|
}
|
|
6067
|
-
return await
|
|
6111
|
+
return await fetch(proxyRequest);
|
|
6068
6112
|
} catch (thrown) {
|
|
6069
6113
|
options.log.error(new Error(`Could not proxy request: ${thrown}`));
|
|
6070
6114
|
return new Response2(`[wrangler] Could not proxy request: ${thrown}`, {
|
|
@@ -6230,7 +6274,7 @@ async function main() {
|
|
|
6230
6274
|
if (logLevelString === "LOG")
|
|
6231
6275
|
logLevelString = "INFO";
|
|
6232
6276
|
const logLevel = MiniflareLogLevel[logLevelString];
|
|
6233
|
-
config.log = logLevel === MiniflareLogLevel.NONE ? new MiniflareNoOpLog() : new MiniflareLog(logLevel
|
|
6277
|
+
config.log = logLevel === MiniflareLogLevel.NONE ? new MiniflareNoOpLog() : new MiniflareLog(logLevel);
|
|
6234
6278
|
if (logLevel === MiniflareLogLevel.DEBUG) {
|
|
6235
6279
|
console.log("MINIFLARE OPTIONS:\n", JSON.stringify(config, null, 2));
|
|
6236
6280
|
}
|
|
@@ -6264,7 +6308,7 @@ async function main() {
|
|
|
6264
6308
|
"x-miniflare-durable-object-id",
|
|
6265
6309
|
id.toString()
|
|
6266
6310
|
);
|
|
6267
|
-
return
|
|
6311
|
+
return upgradingFetch(request);
|
|
6268
6312
|
};
|
|
6269
6313
|
return stub;
|
|
6270
6314
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wrangler",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-fb0db827",
|
|
4
4
|
"description": "Command-line interface for all things Cloudflare Workers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"wrangler",
|
|
@@ -63,9 +63,11 @@
|
|
|
63
63
|
"emit-types": "tsc -p tsconfig.emit.json && node -r esbuild-register scripts/emit-types.ts",
|
|
64
64
|
"prepublishOnly": "SOURCEMAPS=false npm run build",
|
|
65
65
|
"start": "npm run bundle && cross-env NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
|
|
66
|
-
"test": "npm run assert-git-version && jest
|
|
66
|
+
"test": "npm run assert-git-version && jest",
|
|
67
67
|
"test-watch": "npm run test -- --runInBand --testTimeout=50000 --watch",
|
|
68
|
-
"test:ci": "npm run test -- --
|
|
68
|
+
"test:ci": "npm run test -- --coverage",
|
|
69
|
+
"test:debug": "npm run test -- --silent=false --verbose=true",
|
|
70
|
+
"test:e2e": "vitest --no-threads ./e2e"
|
|
69
71
|
},
|
|
70
72
|
"jest": {
|
|
71
73
|
"coverageReporters": [
|
|
@@ -82,7 +84,7 @@
|
|
|
82
84
|
"setupFilesAfterEnv": [
|
|
83
85
|
"<rootDir>/src/__tests__/jest.setup.ts"
|
|
84
86
|
],
|
|
85
|
-
"testRegex": "
|
|
87
|
+
"testRegex": "src/__tests__/.*\\.(test|spec)\\.[jt]sx?$",
|
|
86
88
|
"testTimeout": 30000,
|
|
87
89
|
"transform": {
|
|
88
90
|
"^.+\\.c?(t|j)sx?$": [
|
|
@@ -100,13 +102,13 @@
|
|
|
100
102
|
"@cloudflare/kv-asset-handler": "^0.2.0",
|
|
101
103
|
"@esbuild-plugins/node-globals-polyfill": "^0.1.1",
|
|
102
104
|
"@esbuild-plugins/node-modules-polyfill": "^0.1.4",
|
|
103
|
-
"@miniflare/core": "2.
|
|
104
|
-
"@miniflare/d1": "2.
|
|
105
|
-
"@miniflare/durable-objects": "2.
|
|
105
|
+
"@miniflare/core": "2.13.0",
|
|
106
|
+
"@miniflare/d1": "2.13.0",
|
|
107
|
+
"@miniflare/durable-objects": "2.13.0",
|
|
106
108
|
"blake3-wasm": "^2.1.5",
|
|
107
109
|
"chokidar": "^3.5.3",
|
|
108
110
|
"esbuild": "0.16.3",
|
|
109
|
-
"miniflare": "2.
|
|
111
|
+
"miniflare": "2.13.0",
|
|
110
112
|
"nanoid": "^3.3.3",
|
|
111
113
|
"path-to-regexp": "^6.2.0",
|
|
112
114
|
"selfsigned": "^2.0.1",
|
|
@@ -118,7 +120,7 @@
|
|
|
118
120
|
"@cloudflare/workers-types": "^4.20221111.1",
|
|
119
121
|
"@iarna/toml": "^3.0.0",
|
|
120
122
|
"@microsoft/api-extractor": "^7.28.3",
|
|
121
|
-
"@miniflare/tre": "
|
|
123
|
+
"@miniflare/tre": "3.0.0-next.12",
|
|
122
124
|
"@types/better-sqlite3": "^7.6.0",
|
|
123
125
|
"@types/busboy": "^1.5.0",
|
|
124
126
|
"@types/command-exists": "^1.2.0",
|
|
@@ -174,13 +176,16 @@
|
|
|
174
176
|
"remove-accents-esm": "^0.0.1",
|
|
175
177
|
"semiver": "^1.1.0",
|
|
176
178
|
"serve-static": "^1.15.0",
|
|
179
|
+
"shellac": "^0.7.3",
|
|
177
180
|
"signal-exit": "^3.0.7",
|
|
181
|
+
"strip-ansi": "^7.0.1",
|
|
178
182
|
"supports-color": "^9.2.2",
|
|
179
183
|
"timeago.js": "^4.0.2",
|
|
180
184
|
"tmp-promise": "^3.0.3",
|
|
181
185
|
"ts-dedent": "^2.2.0",
|
|
182
|
-
"undici": "5.
|
|
186
|
+
"undici": "5.20.0",
|
|
183
187
|
"update-check": "^1.5.4",
|
|
188
|
+
"vitest": "^0.29.2",
|
|
184
189
|
"ws": "^8.5.0",
|
|
185
190
|
"xdg-app-paths": "^7.3.0",
|
|
186
191
|
"yargs": "^17.4.1",
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { fetch } from "undici";
|
|
2
|
+
import { unstable_dev } from "../api";
|
|
3
|
+
|
|
4
|
+
jest.unmock("undici");
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* a huge caveat to how testing multi-worker scripts works:
|
|
8
|
+
* you can't shutdown the first worker you spun up, or it'll kill the devRegistry
|
|
9
|
+
*/
|
|
10
|
+
describe("multi-worker testing", () => {
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
+
let childWorker: any;
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
let parentWorker: any;
|
|
15
|
+
|
|
16
|
+
beforeAll(async () => {
|
|
17
|
+
childWorker = await unstable_dev(
|
|
18
|
+
"src/__tests__/helpers/worker-scripts/hello-world-worker.js",
|
|
19
|
+
{
|
|
20
|
+
config: "src/__tests__/helpers/worker-scripts/child-wrangler.toml",
|
|
21
|
+
experimental: {
|
|
22
|
+
disableExperimentalWarning: true,
|
|
23
|
+
},
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
parentWorker = await unstable_dev(
|
|
27
|
+
"src/__tests__/helpers/worker-scripts/parent-worker.js",
|
|
28
|
+
{
|
|
29
|
+
config: "src/__tests__/helpers/worker-scripts/parent-wrangler.toml",
|
|
30
|
+
experimental: {
|
|
31
|
+
disableExperimentalWarning: true,
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
afterAll(async () => {
|
|
38
|
+
await childWorker.stop();
|
|
39
|
+
await parentWorker.stop();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("parentWorker and childWorker should be added devRegistry", async () => {
|
|
43
|
+
const resp = await fetch("http://localhost:6284/workers");
|
|
44
|
+
if (resp) {
|
|
45
|
+
const parsedResp = (await resp.json()) as {
|
|
46
|
+
parent: unknown;
|
|
47
|
+
child: unknown;
|
|
48
|
+
};
|
|
49
|
+
expect(parsedResp.parent).toBeTruthy();
|
|
50
|
+
expect(parsedResp.child).toBeTruthy();
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("childWorker should return Hello World itself", async () => {
|
|
55
|
+
const resp = await childWorker.fetch();
|
|
56
|
+
if (resp) {
|
|
57
|
+
const text = await resp.text();
|
|
58
|
+
expect(text).toMatchInlineSnapshot(`"Hello World!"`);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it("parentWorker should return Hello World by invoking the child worker", async () => {
|
|
63
|
+
const resp = await parentWorker.fetch();
|
|
64
|
+
if (resp) {
|
|
65
|
+
const parsedResp = await resp.text();
|
|
66
|
+
expect(parsedResp).toEqual("Parent worker sees: Hello World!");
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it("should be able to stop and start the server with no warning logs", async () => {
|
|
71
|
+
// Spy on all the console methods
|
|
72
|
+
let logs = "";
|
|
73
|
+
(["debug", "info", "log", "warn", "error"] as const).forEach((method) =>
|
|
74
|
+
jest
|
|
75
|
+
.spyOn(console, method)
|
|
76
|
+
.mockImplementation((...args: unknown[]) => (logs += `\n${args}`))
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
// Spy on the std out that is written to by Miniflare 2
|
|
80
|
+
jest
|
|
81
|
+
.spyOn(process.stdout, "write")
|
|
82
|
+
.mockImplementation((chunk: unknown) => ((logs += `\n${chunk}`), true));
|
|
83
|
+
|
|
84
|
+
async function startWorker() {
|
|
85
|
+
return await unstable_dev(
|
|
86
|
+
"src/__tests__/helpers/worker-scripts/hello-world-worker.js",
|
|
87
|
+
{
|
|
88
|
+
// We need the wrangler.toml config to specify a Worker name
|
|
89
|
+
// otherwise unstable_dev will not register the worker with the DevRegistry
|
|
90
|
+
config: "src/__tests__/helpers/worker-scripts/child-wrangler.toml",
|
|
91
|
+
// We need debug logs because this is where the message is written if registering the worker fails.
|
|
92
|
+
logLevel: "debug",
|
|
93
|
+
experimental: {
|
|
94
|
+
disableExperimentalWarning: true,
|
|
95
|
+
},
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
101
|
+
let worker: any;
|
|
102
|
+
try {
|
|
103
|
+
worker = await startWorker();
|
|
104
|
+
|
|
105
|
+
// Stop the worker and start it again
|
|
106
|
+
await worker.stop();
|
|
107
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
108
|
+
|
|
109
|
+
worker = await startWorker();
|
|
110
|
+
|
|
111
|
+
const resp = await worker.fetch();
|
|
112
|
+
expect(resp).not.toBe(undefined);
|
|
113
|
+
|
|
114
|
+
expect(logs).not.toMatch(
|
|
115
|
+
/Failed to register worker in local service registry/
|
|
116
|
+
);
|
|
117
|
+
} finally {
|
|
118
|
+
await worker?.stop();
|
|
119
|
+
}
|
|
120
|
+
}, 10000);
|
|
121
|
+
});
|