Skip to content

Commit

Permalink
Untangle wrangler types 🙈 (#2377)
Browse files Browse the repository at this point in the history
* Untangle `wrangler` types

* Fix `fixture` types

* Upgrade `remix-pages-app` fixture's Remix version
  • Loading branch information
mrbbot authored Dec 13, 2022
1 parent df9d555 commit 32686e4
Show file tree
Hide file tree
Showing 124 changed files with 12,305 additions and 2,553 deletions.
5 changes: 5 additions & 0 deletions .changeset/dull-socks-share.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"wrangler": patch
---

Fix `ReferenceError` when using `wrangler dev --experimental-local` in Node 16
5 changes: 5 additions & 0 deletions .changeset/unlucky-monkeys-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"wrangler": patch
---

Respect `FORCE_COLOR=0` environment variable to disable colored output when using `wrangler dev --local`
117 changes: 117 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
const fs = require("fs");
const path = require("path");

function* walkTsConfigs(root) {
const entries = fs.readdirSync(root, { withFileTypes: true });
for (const entry of entries) {
if (entry.name === "node_modules") continue; // Ignore `node_modules`s
const entryPath = path.join(root, entry.name);
if (entry.isDirectory()) {
yield* walkTsConfigs(entryPath);
} else if (entry.name === "tsconfig.json") {
yield entryPath;
}
}
}

module.exports = {
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: 2020,
project: Array.from(walkTsConfigs(__dirname)),
sourceType: "module",
},
settings: {
react: {
version: "detect",
},
},
plugins: [
"@typescript-eslint",
"eslint-plugin-react",
"eslint-plugin-react-hooks",
"import",
"unused-imports",
],
overrides: [
{
files: ["*.ts", "*.tsx"],
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
"plugin:import/typescript",
],
rules: {
"no-empty": "off",
"no-empty-function": "off",
"no-mixed-spaces-and-tabs": ["error", "smart-tabs"],
"no-shadow": "error",
"require-yield": "off",
"@typescript-eslint/consistent-type-imports": ["error"],
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/no-unused-vars": "off",
"import/order": [
"warn",
{
groups: [
"builtin",
"external",
"internal",
"parent",
"sibling",
"index",
"object",
"type",
],
alphabetize: {
order: "asc",
},
},
],
"unused-imports/no-unused-imports": "error",
"unused-imports/no-unused-vars": [
"warn",
{
vars: "all",
varsIgnorePattern: "^_",
args: "after-used",
argsIgnorePattern: "^_",
},
],
},
},
{
files: "packages/wrangler/src/**/*.ts",
excludedFiles: "*.test.ts",
rules: {
"no-restricted-globals": [
"error",
{
name: "__dirname",
message: "Use `getBasePath()` instead.",
},
{
name: "__filename",
message: "Use `getBasePath()` instead.",
},
],
},
},
],
ignorePatterns: [
"packages/wrangler/vendor",
"packages/wrangler/*-dist",
"packages/wrangler/pages/functions/template-worker.ts",
"packages/wrangler/templates",
"packages/wrangler/emitted-types",
"examples/remix-pages-app/public",
"packages/jest-environment-wrangler/dist",
"packages/wrangler-devtools/built-devtools",
"packages/wranglerjs-compat-webpack-plugin/lib",
],
root: true,
};
3 changes: 3 additions & 0 deletions .github/workflows/experimental-wasm-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ jobs:
- name: Modify package.json version
run: node .github/version-script.js

- name: Build
run: npm run build

- name: Check for errors
run: npm run check

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/prereleases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ jobs:
- name: Modify package.json version
run: node .github/version-script.js

- name: Build
run: npm run build

- name: Check for errors
run: npm run check

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/pullrequests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ jobs:
- name: Install NPM Dependencies
run: npm ci

- name: Build
run: npm run build

- name: Check for errors
run: npm run check

Expand Down
4 changes: 3 additions & 1 deletion fixtures/external-durable-objects-app/d/functions/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
export const onRequest = async ({ env, request }) => {
export const onRequest: PagesFunction<{
PAGES_REFERENCED_DO: DurableObjectNamespace;
}> = async ({ env, request }) => {
const { pathname } = new URL(request.url);
const id = env.PAGES_REFERENCED_DO.idFromName(pathname);
const stub = env.PAGES_REFERENCED_DO.get(id);
Expand Down
3 changes: 2 additions & 1 deletion fixtures/external-durable-objects-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"private": true,
"description": "A test for external durable objects",
"scripts": {
"check:type": "tsc && tsc -p tests/tsconfig.json",
"dev": "npx concurrently -s first -k \"wrangler dev a/index.ts --local --port 8400\" \"wrangler dev b/index.ts --local --port 8401\" \"npx wrangler dev c/index.ts --local --port 8402\" \"cd d && npx wrangler pages dev public --port 8403 --do PAGES_REFERENCED_DO=MyDurableObject@a\"",
"test": "npx jest --forceExit",
"test:ci": "npx jest --forceExit"
Expand All @@ -24,6 +25,6 @@
]
},
"devDependencies": {
"@cloudflare/workers-types": "^3.14.1"
"@cloudflare/workers-types": "^4.20221111.1"
}
}
7 changes: 7 additions & 0 deletions fixtures/external-durable-objects-app/tests/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"types": ["node", "jest"]
},
"include": ["**/*.ts"]
}
5 changes: 3 additions & 2 deletions fixtures/external-durable-objects-app/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
{
"include": ["a", "b", "c"],
"include": ["a", "b", "c", "b"],
"compilerOptions": {
"target": "ES2020",
"module": "CommonJS",
"lib": ["ES2020"],
"types": ["@cloudflare/workers-types"]
"types": ["@cloudflare/workers-types"],
"noEmit": true
}
}
4 changes: 2 additions & 2 deletions fixtures/local-mode-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"author": "",
"main": "index.js",
"scripts": {
"check:type": "tsc",
"check:type": "tsc && tsc -p tests/tsconfig.json",
"test": "cross-env NODE_ENV=local-testing NODE_OPTIONS=--experimental-vm-modules npx jest --forceExit",
"test:ci": "cross-env NODE_ENV=local-testing NODE_OPTIONS=--experimental-vm-modules npx jest --forceExit"
},
Expand All @@ -30,7 +30,7 @@
]
},
"devDependencies": {
"@cloudflare/workers-types": "^3.2.0",
"@cloudflare/workers-types": "^4.20221111.1",
"@types/node": "^17.0.33",
"buffer": "^6.0.3"
}
Expand Down
4 changes: 4 additions & 0 deletions fixtures/local-mode-tests/src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ import data from "../some-data.bin";
// @ts-expect-error non standard module
import text from "../some-text.txt";

declare global {
const process: { env: { NODE_ENV: string } };
}

export default {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
async fetch(_request: Request, env: any): Promise<Response> {
Expand Down
9 changes: 2 additions & 7 deletions fixtures/local-mode-tests/tests/headers.test.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
import path from "path";
import { unstable_dev } from "wrangler";
import type { UnstableDevWorker } from "wrangler";

// Disabled because of flakiness in CI
describe.skip("worker", () => {
let worker: {
fetch: (
input?: RequestInfo,
init?: RequestInit
) => Promise<Response | undefined>;
stop: () => Promise<void>;
};
let worker: UnstableDevWorker;
let resolveReadyPromise: (value: unknown) => void;
const readyPromise = new Promise((resolve) => {
resolveReadyPromise = resolve;
Expand Down
6 changes: 2 additions & 4 deletions fixtures/local-mode-tests/tests/module.test.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import path from "path";
import { unstable_dev } from "wrangler";
import type { UnstableDevWorker } from "wrangler";

describe("worker", () => {
let worker: {
fetch: (input?: RequestInfo, init?: RequestInit) => Promise<Response>;
stop: () => Promise<void>;
};
let worker: UnstableDevWorker;
let resolveReadyPromise: (value: unknown) => void;
const readyPromise = new Promise((resolve) => {
resolveReadyPromise = resolve;
Expand Down
7 changes: 3 additions & 4 deletions fixtures/local-mode-tests/tests/nodeBuiltinPackage.test.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import path from "path";
import { unstable_dev } from "wrangler";
import type { UnstableDevWorker } from "wrangler";

describe("worker", () => {
let worker: {
fetch: (input?: RequestInfo, init?: RequestInit) => Promise<Response>;
stop: () => Promise<void>;
};
let worker: UnstableDevWorker;
let resolveReadyPromise: (value: unknown) => void;
const readyPromise = new Promise((resolve) => {
resolveReadyPromise = resolve;
Expand All @@ -14,6 +12,7 @@ describe("worker", () => {
beforeAll(async () => {
worker = await unstable_dev(
path.resolve(__dirname, "..", "src", "nodeBuiltinPackage.ts"),
{},
{
disableExperimentalWarning: true,
}
Expand Down
23 changes: 10 additions & 13 deletions fixtures/local-mode-tests/tests/ports.test.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
import path from "path";
import { unstable_dev } from "wrangler";
import type { UnstableDevWorker } from "wrangler";

describe("worker", () => {
type Worker = {
fetch: (input?: RequestInfo, init?: RequestInit) => Promise<Response>;
stop: () => Promise<void>;
};
let workers: Worker[];
let workers: UnstableDevWorker[];
let resolveReadyPromise: (value: unknown) => void;
const readyPromise = new Promise((resolve) => {
resolveReadyPromise = resolve;
Expand All @@ -20,42 +17,42 @@ describe("worker", () => {
path.resolve(__dirname, "..", "src", "basicModule.ts"),
{},
{ disableExperimentalWarning: true }
) as Worker,
),
unstable_dev(
path.resolve(__dirname, "..", "src", "basicModule.ts"),
{},
{ disableExperimentalWarning: true }
) as Worker,
),
unstable_dev(
path.resolve(__dirname, "..", "src", "basicModule.ts"),
{},
{ disableExperimentalWarning: true }
) as Worker,
),
unstable_dev(
path.resolve(__dirname, "..", "src", "basicModule.ts"),
{},
{ disableExperimentalWarning: true }
) as Worker,
),
unstable_dev(
path.resolve(__dirname, "..", "src", "basicModule.ts"),
{},
{ disableExperimentalWarning: true }
) as Worker,
),
unstable_dev(
path.resolve(__dirname, "..", "src", "basicModule.ts"),
{},
{ disableExperimentalWarning: true }
) as Worker,
),
unstable_dev(
path.resolve(__dirname, "..", "src", "basicModule.ts"),
{},
{ disableExperimentalWarning: true }
) as Worker,
),
unstable_dev(
path.resolve(__dirname, "..", "src", "basicModule.ts"),
{},
{ disableExperimentalWarning: true }
) as Worker,
),
]);

resolveReadyPromise(undefined);
Expand Down
6 changes: 2 additions & 4 deletions fixtures/local-mode-tests/tests/sw.test.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import path from "path";
import { unstable_dev } from "wrangler";
import type { UnstableDevWorker } from "wrangler";

describe("worker", () => {
let worker: {
fetch: (input?: RequestInfo, init?: RequestInit) => Promise<Response>;
stop: () => Promise<void>;
};
let worker: UnstableDevWorker;
let resolveReadyPromise: (value: unknown) => void;
const readyPromise = new Promise((resolve) => {
resolveReadyPromise = resolve;
Expand Down
8 changes: 8 additions & 0 deletions fixtures/local-mode-tests/tests/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"types": ["node", "jest"]
},
"include": ["**/*.ts"],
"exclude": []
}
Loading

0 comments on commit 32686e4

Please sign in to comment.