@cloudflare/vitest-pool-workers 0.2.0 → 0.2.1

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.
Files changed (54) hide show
  1. package/package.json +2 -2
  2. package/dist/config/d1.d.ts +0 -7
  3. package/dist/config/index.cjs +0 -130
  4. package/dist/config/index.cjs.map +0 -6
  5. package/dist/config/index.d.ts +0 -21
  6. package/dist/pool/config.d.ts +0 -82
  7. package/dist/pool/helpers.d.ts +0 -5
  8. package/dist/pool/index.mjs +0 -1529
  9. package/dist/pool/index.mjs.map +0 -6
  10. package/dist/shared/d1.d.ts +0 -4
  11. package/dist/worker/index.mjs +0 -352
  12. package/dist/worker/index.mjs.map +0 -6
  13. package/dist/worker/lib/cloudflare/empty-internal.cjs +0 -27
  14. package/dist/worker/lib/cloudflare/empty-internal.cjs.map +0 -6
  15. package/dist/worker/lib/cloudflare/mock-agent.cjs +0 -2056
  16. package/dist/worker/lib/cloudflare/mock-agent.cjs.map +0 -6
  17. package/dist/worker/lib/cloudflare/test-internal.mjs +0 -739
  18. package/dist/worker/lib/cloudflare/test-internal.mjs.map +0 -6
  19. package/dist/worker/lib/cloudflare/test-runner.mjs +0 -222
  20. package/dist/worker/lib/cloudflare/test-runner.mjs.map +0 -6
  21. package/dist/worker/lib/cloudflare/test.mjs +0 -30
  22. package/dist/worker/lib/cloudflare/test.mjs.map +0 -6
  23. package/dist/worker/lib/debug.mjs +0 -9
  24. package/dist/worker/lib/debug.mjs.map +0 -6
  25. package/dist/worker/lib/mlly.mjs +0 -48
  26. package/dist/worker/lib/mlly.mjs.map +0 -6
  27. package/dist/worker/lib/node/console.mjs +0 -104
  28. package/dist/worker/lib/node/console.mjs.map +0 -6
  29. package/dist/worker/lib/node/dns.mjs +0 -6
  30. package/dist/worker/lib/node/dns.mjs.map +0 -6
  31. package/dist/worker/lib/node/fs/promises.mjs +0 -6
  32. package/dist/worker/lib/node/fs/promises.mjs.map +0 -6
  33. package/dist/worker/lib/node/fs.mjs +0 -25
  34. package/dist/worker/lib/node/fs.mjs.map +0 -6
  35. package/dist/worker/lib/node/http.cjs +0 -97
  36. package/dist/worker/lib/node/http.cjs.map +0 -6
  37. package/dist/worker/lib/node/module.mjs +0 -15
  38. package/dist/worker/lib/node/module.mjs.map +0 -6
  39. package/dist/worker/lib/node/net.cjs +0 -27
  40. package/dist/worker/lib/node/net.cjs.map +0 -6
  41. package/dist/worker/lib/node/perf_hooks.mjs +0 -6
  42. package/dist/worker/lib/node/perf_hooks.mjs.map +0 -6
  43. package/dist/worker/lib/node/querystring.cjs +0 -44
  44. package/dist/worker/lib/node/querystring.cjs.map +0 -6
  45. package/dist/worker/lib/node/timers.mjs +0 -6
  46. package/dist/worker/lib/node/timers.mjs.map +0 -6
  47. package/dist/worker/lib/node/tty.mjs +0 -8
  48. package/dist/worker/lib/node/tty.mjs.map +0 -6
  49. package/dist/worker/lib/node/url.mjs +0 -75
  50. package/dist/worker/lib/node/url.mjs.map +0 -6
  51. package/dist/worker/lib/node/vm.mjs +0 -17
  52. package/dist/worker/lib/node/vm.mjs.map +0 -6
  53. package/dist/worker/lib/tinypool.mjs +0 -6
  54. package/dist/worker/lib/tinypool.mjs.map +0 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudflare/vitest-pool-workers",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Workers Vitest integration for writing Vitest unit and integration tests that run inside the Workers runtime",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -58,7 +58,7 @@
58
58
  "esbuild": "0.17.19",
59
59
  "zod": "^3.20.6",
60
60
  "miniflare": "3.20240405.2",
61
- "wrangler": "3.51.0"
61
+ "wrangler": "3.51.1"
62
62
  },
63
63
  "peerDependencies": {
64
64
  "@vitest/runner": "1.3.0",
@@ -1,7 +0,0 @@
1
- import type { D1Migration } from "../shared/d1";
2
- /**
3
- * Reads all migrations in `migrationsPath`, ordered by migration number.
4
- * Each migration will have its contents split into an array of SQL queries.
5
- */
6
- export declare function readD1Migrations(migrationsPath: string): Promise<D1Migration[]>;
7
- export type { D1Migration };
@@ -1,130 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
- // src/config/index.ts
31
- var config_exports = {};
32
- __export(config_exports, {
33
- defineWorkersConfig: () => defineWorkersConfig,
34
- defineWorkersProject: () => defineWorkersProject,
35
- readD1Migrations: () => readD1Migrations
36
- });
37
- module.exports = __toCommonJS(config_exports);
38
- var import_node_assert = __toESM(require("node:assert"));
39
- var import_node_worker_threads = require("node:worker_threads");
40
-
41
- // src/config/d1.ts
42
- var import_node_fs = __toESM(require("node:fs"));
43
- var import_node_path = __toESM(require("node:path"));
44
- async function readD1Migrations(migrationsPath) {
45
- const { unstable_splitSqlQuery } = await import("wrangler");
46
- const names = import_node_fs.default.readdirSync(migrationsPath).filter((name) => name.endsWith(".sql"));
47
- names.sort((a, b) => {
48
- const aNumber = parseInt(a.split("_")[0]);
49
- const bNumber = parseInt(b.split("_")[0]);
50
- return aNumber - bNumber;
51
- });
52
- return names.map((name) => {
53
- const migrationPath = import_node_path.default.join(migrationsPath, name);
54
- const migration = import_node_fs.default.readFileSync(migrationPath, "utf8");
55
- const queries = unstable_splitSqlQuery(migration);
56
- return { name, queries };
57
- });
58
- }
59
-
60
- // src/config/index.ts
61
- var channel;
62
- globalThis.structuredClone ??= function(value, options) {
63
- channel ??= new import_node_worker_threads.MessageChannel();
64
- channel.port1.unref();
65
- channel.port2.unref();
66
- channel.port1.postMessage(value, options?.transfer);
67
- const message = (0, import_node_worker_threads.receiveMessageOnPort)(channel.port2);
68
- (0, import_node_assert.default)(message !== void 0);
69
- return message.message;
70
- };
71
- function mapAnyConfigExport(f, config) {
72
- if (typeof config === "function") {
73
- return (env) => {
74
- const t = config(env);
75
- if (t instanceof Promise) {
76
- return t.then(f);
77
- } else {
78
- return f(t);
79
- }
80
- };
81
- } else if (config instanceof Promise) {
82
- return config.then(f);
83
- } else {
84
- return f(config);
85
- }
86
- }
87
- function ensureArrayIncludes(array, items) {
88
- for (const item of items)
89
- if (!array.includes(item))
90
- array.push(item);
91
- }
92
- var requiredConditions = ["workerd", "worker", "browser"];
93
- var requiredMainFields = ["browser", "module", "jsnext:main", "jsnext"];
94
- var configPlugin = {
95
- name: "@cloudflare/vitest-pool-workers:config",
96
- // Run after `vitest:project` plugin:
97
- // https://github.com/vitest-dev/vitest/blob/8014614475afa880f4e583b166bb91dea5415cc6/packages/vitest/src/node/plugins/workspace.ts#L26
98
- config(config) {
99
- config.resolve ??= {};
100
- config.resolve.conditions ??= [];
101
- config.resolve.mainFields ??= [];
102
- config.ssr ??= {};
103
- config.test ??= {};
104
- const nodeIndex = config.resolve.conditions.indexOf("node");
105
- if (nodeIndex !== -1)
106
- config.resolve.conditions.splice(nodeIndex, 1);
107
- ensureArrayIncludes(config.resolve.conditions, requiredConditions);
108
- ensureArrayIncludes(config.resolve.mainFields, requiredMainFields);
109
- config.ssr.target = "webworker";
110
- config.test.pool ??= "@cloudflare/vitest-pool-workers";
111
- }
112
- };
113
- function ensureWorkersConfig(config) {
114
- config.plugins ??= [];
115
- config.plugins.push(configPlugin);
116
- return config;
117
- }
118
- function defineWorkersConfig(config) {
119
- return mapAnyConfigExport(ensureWorkersConfig, config);
120
- }
121
- function defineWorkersProject(config) {
122
- return mapAnyConfigExport(ensureWorkersConfig, config);
123
- }
124
- // Annotate the CommonJS export names for ESM import in node:
125
- 0 && (module.exports = {
126
- defineWorkersConfig,
127
- defineWorkersProject,
128
- readD1Migrations
129
- });
130
- //# sourceMappingURL=index.cjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/config/index.ts", "../../src/config/d1.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAmB;AACnB,iCAAqD;;;ACDrD,qBAAe;AACf,uBAAiB;AAOjB,eAAsB,iBACrB,gBACyB;AACzB,QAAM,EAAE,uBAAuB,IAAI,MAAM,OAAO,UAAU;AAC1D,QAAM,QAAQ,eAAAA,QACZ,YAAY,cAAc,EAC1B,OAAO,CAAC,SAAS,KAAK,SAAS,MAAM,CAAC;AACxC,QAAM,KAAK,CAAC,GAAG,MAAM;AACpB,UAAM,UAAU,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AACxC,UAAM,UAAU,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AACxC,WAAO,UAAU;AAAA,EAClB,CAAC;AACD,SAAO,MAAM,IAAI,CAAC,SAAS;AAC1B,UAAM,gBAAgB,iBAAAC,QAAK,KAAK,gBAAgB,IAAI;AACpD,UAAM,YAAY,eAAAD,QAAG,aAAa,eAAe,MAAM;AACvD,UAAM,UAAU,uBAAuB,SAAS;AAChD,WAAO,EAAE,MAAM,QAAQ;AAAA,EACxB,CAAC;AACF;;;ADhBA,IAAI;AACJ,WAAW,oBAAoB,SAAU,OAAO,SAAS;AAExD,cAAY,IAAI,0CAAe;AAC/B,UAAQ,MAAM,MAAM;AACpB,UAAQ,MAAM,MAAM;AACpB,UAAQ,MAAM,YAAY,OAAO,SAAS,QAAQ;AAClD,QAAM,cAAU,iDAAqB,QAAQ,KAAK;AAClD,yBAAAE,SAAO,YAAY,MAAS;AAC5B,SAAO,QAAQ;AAChB;AAMA,SAAS,mBACR,GACA,QACqB;AACrB,MAAI,OAAO,WAAW,YAAY;AACjC,WAAO,CAAC,QAAQ;AACf,YAAM,IAAI,OAAO,GAAG;AACpB,UAAI,aAAa,SAAS;AACzB,eAAO,EAAE,KAAK,CAAC;AAAA,MAChB,OAAO;AACN,eAAO,EAAE,CAAC;AAAA,MACX;AAAA,IACD;AAAA,EACD,WAAW,kBAAkB,SAAS;AACrC,WAAO,OAAO,KAAK,CAAC;AAAA,EACrB,OAAO;AACN,WAAO,EAAE,MAAM;AAAA,EAChB;AACD;AAsBA,SAAS,oBAAuB,OAAY,OAAY;AACvD,aAAW,QAAQ;AAAO,QAAI,CAAC,MAAM,SAAS,IAAI;AAAG,YAAM,KAAK,IAAI;AACrE;AAEA,IAAM,qBAAqB,CAAC,WAAW,UAAU,SAAS;AAC1D,IAAM,qBAAqB,CAAC,WAAW,UAAU,eAAe,QAAQ;AAExE,IAAM,eAA6B;AAAA,EAClC,MAAM;AAAA;AAAA;AAAA,EAGN,OAAO,QAAQ;AACd,WAAO,YAAY,CAAC;AACpB,WAAO,QAAQ,eAAe,CAAC;AAC/B,WAAO,QAAQ,eAAe,CAAC;AAC/B,WAAO,QAAQ,CAAC;AAChB,WAAO,SAAS,CAAC;AAIjB,UAAM,YAAY,OAAO,QAAQ,WAAW,QAAQ,MAAM;AAC1D,QAAI,cAAc;AAAI,aAAO,QAAQ,WAAW,OAAO,WAAW,CAAC;AAInE,wBAAoB,OAAO,QAAQ,YAAY,kBAAkB;AAIjE,wBAAoB,OAAO,QAAQ,YAAY,kBAAkB;AAIjE,WAAO,IAAI,SAAS;AAIpB,WAAO,KAAK,SAAS;AAAA,EACtB;AACD;AAEA,SAAS,oBAA0C,QAAc;AAChE,SAAO,YAAY,CAAC;AACpB,SAAO,QAAQ,KAAK,YAAY;AAChC,SAAO;AACR;AAEO,SAAS,oBACf,QAC2C;AAC3C,SAAO,mBAAmB,qBAAqB,MAAM;AACtD;AAEO,SAAS,qBACf,QAC8C;AAC9C,SAAO,mBAAmB,qBAAqB,MAAM;AACtD;",
5
- "names": ["fs", "path", "assert"]
6
- }
@@ -1,21 +0,0 @@
1
- import type { WorkersPoolOptions } from "../pool/config";
2
- import type { Awaitable, inject } from "vitest";
3
- import type { ConfigEnv, UserConfig, UserWorkspaceConfig } from "vitest/config";
4
- export type AnyConfigExport<T extends UserConfig> = T | Promise<T> | ((env: ConfigEnv) => T | Promise<T>);
5
- export interface WorkerPoolOptionsContext {
6
- inject: typeof inject;
7
- }
8
- export type WorkersUserConfig<T extends UserConfig> = T & {
9
- test?: {
10
- pool?: "@cloudflare/vitest-pool-workers";
11
- poolMatchGlobs?: never;
12
- poolOptions?: {
13
- workers?: WorkersPoolOptions | ((ctx: WorkerPoolOptionsContext) => Awaitable<WorkersPoolOptions>);
14
- };
15
- };
16
- };
17
- export type WorkersUserConfigExport = WorkersUserConfig<UserConfig>;
18
- export type WorkersProjectConfigExport = WorkersUserConfig<UserWorkspaceConfig>;
19
- export declare function defineWorkersConfig(config: AnyConfigExport<WorkersUserConfigExport>): AnyConfigExport<WorkersUserConfigExport>;
20
- export declare function defineWorkersProject(config: AnyConfigExport<WorkersProjectConfigExport>): AnyConfigExport<WorkersProjectConfigExport>;
21
- export * from "./d1";
@@ -1,82 +0,0 @@
1
- import { z } from "zod";
2
- import type { ModuleRule, WorkerOptions } from "miniflare";
3
- import type { WorkspaceProject } from "vitest/node";
4
- export declare const OPTIONS_PATH: string;
5
- declare const WorkersPoolOptionsSchema: z.ZodObject<{
6
- /**
7
- * Entrypoint to Worker run in the same isolate/context as tests. This is
8
- * required to use `import { SELF } from "cloudflare:test"`, or Durable
9
- * Objects without an explicit `scriptName`. Note this goes through Vite
10
- * transforms and can be a TypeScript file. Note also
11
- * `import module from "<path-to-main>"` inside tests gives exactly the same
12
- * `module` instance as is used internally for the `SELF` and Durable Object
13
- * bindings.
14
- */
15
- main: z.ZodOptional<z.ZodString>;
16
- /**
17
- * Enables per-test isolated storage. If enabled, any writes to storage
18
- * performed in a test will be undone at the end of the test. The test storage
19
- * environment is copied from the containing suite, meaning `beforeAll()`
20
- * hooks can be used to seed data. If this is disabled, all tests will share
21
- * the same storage.
22
- */
23
- isolatedStorage: z.ZodDefault<z.ZodBoolean>;
24
- /**
25
- * Runs all tests in this project serially in the same worker, using the same
26
- * module cache. This can significantly speed up tests if you've got lots of
27
- * small test files.
28
- */
29
- singleWorker: z.ZodDefault<z.ZodBoolean>;
30
- miniflare: z.ZodOptional<z.ZodObject<{
31
- workers: z.ZodOptional<z.ZodArray<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>, "many">>;
32
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
33
- workers: z.ZodOptional<z.ZodArray<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>, "many">>;
34
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
35
- workers: z.ZodOptional<z.ZodArray<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>, "many">>;
36
- }, z.ZodTypeAny, "passthrough">>>;
37
- wrangler: z.ZodOptional<z.ZodObject<{
38
- configPath: z.ZodOptional<z.ZodString>;
39
- environment: z.ZodOptional<z.ZodString>;
40
- }, "strip", z.ZodTypeAny, {
41
- configPath?: string | undefined;
42
- environment?: string | undefined;
43
- }, {
44
- configPath?: string | undefined;
45
- environment?: string | undefined;
46
- }>>;
47
- }, "strip", z.ZodTypeAny, {
48
- isolatedStorage: boolean;
49
- singleWorker: boolean;
50
- main?: string | undefined;
51
- miniflare?: z.objectOutputType<{
52
- workers: z.ZodOptional<z.ZodArray<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>, "many">>;
53
- }, z.ZodTypeAny, "passthrough"> | undefined;
54
- wrangler?: {
55
- configPath?: string | undefined;
56
- environment?: string | undefined;
57
- } | undefined;
58
- }, {
59
- main?: string | undefined;
60
- isolatedStorage?: boolean | undefined;
61
- singleWorker?: boolean | undefined;
62
- miniflare?: z.objectInputType<{
63
- workers: z.ZodOptional<z.ZodArray<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>, "many">>;
64
- }, z.ZodTypeAny, "passthrough"> | undefined;
65
- wrangler?: {
66
- configPath?: string | undefined;
67
- environment?: string | undefined;
68
- } | undefined;
69
- }>;
70
- export type SourcelessWorkerOptions = Omit<WorkerOptions, "script" | "scriptPath" | "modules" | "modulesRoot"> & {
71
- modulesRules?: ModuleRule[];
72
- };
73
- export type WorkersPoolOptions = z.input<typeof WorkersPoolOptionsSchema> & {
74
- miniflare?: SourcelessWorkerOptions & {
75
- workers?: WorkerOptions[];
76
- };
77
- };
78
- export type WorkersPoolOptionsWithDefines = WorkersPoolOptions & {
79
- defines?: Record<string, string>;
80
- };
81
- export declare function parseProjectOptions(project: WorkspaceProject): Promise<WorkersPoolOptionsWithDefines>;
82
- export {};
@@ -1,5 +0,0 @@
1
- import type { WorkspaceProject } from "vitest/node";
2
- export declare const WORKER_NAME_PREFIX = "vitest-pool-workers-";
3
- export declare function isFileNotFoundError(e: unknown): boolean;
4
- export declare function getProjectPath(project: WorkspaceProject): string | number;
5
- export declare function getRelativeProjectPath(project: WorkspaceProject): string | number;