From ff4135c072a3ea26bb0b20613ab37746cb726600 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 26 May 2022 17:00:27 -0700 Subject: [PATCH] Convert require calls to imports --- src/cancellationToken/cancellationToken.ts | 2 +- src/harness/findUpDir.ts | 4 ++-- src/harness/harnessGlobals.ts | 20 ++++++++----------- src/instrumenter/instrumenter.ts | 4 ++-- src/testRunner/externalCompileRunner.ts | 8 ++++---- .../unittests/services/languageService.ts | 4 ++-- src/testRunner/unittests/tsserver/session.ts | 4 ++-- src/typingsInstaller/nodeTypingsInstaller.ts | 13 +++--------- src/watchGuard/watchGuard.ts | 3 ++- 9 files changed, 26 insertions(+), 36 deletions(-) diff --git a/src/cancellationToken/cancellationToken.ts b/src/cancellationToken/cancellationToken.ts index aaa19750b8710..57c82e7522fa6 100644 --- a/src/cancellationToken/cancellationToken.ts +++ b/src/cancellationToken/cancellationToken.ts @@ -1,6 +1,6 @@ /// -import fs = require("fs"); +import * as fs from "fs"; interface ServerCancellationToken { isCancellationRequested(): boolean; diff --git a/src/harness/findUpDir.ts b/src/harness/findUpDir.ts index 3a43a5c691703..1df1706e41091 100644 --- a/src/harness/findUpDir.ts +++ b/src/harness/findUpDir.ts @@ -1,5 +1,5 @@ -const { join, resolve, dirname } = require("path") as typeof import("path"); -const { existsSync } = require("fs") as typeof import("fs"); +import { existsSync } from "fs"; +import { dirname, join, resolve } from "path"; // search directories upward to avoid hard-wired paths based on the // build tree (same as scripts/build/findUpDir.js) diff --git a/src/harness/harnessGlobals.ts b/src/harness/harnessGlobals.ts index 26768d28ec3cc..30432a8294b62 100644 --- a/src/harness/harnessGlobals.ts +++ b/src/harness/harnessGlobals.ts @@ -1,19 +1,15 @@ -import { isArray } from "../compiler/core"; +import * as chai from "chai"; -// Block scoped definitions work poorly for global variables, temporarily enable var -/* eslint-disable no-var */ +import { isArray } from "../compiler/core"; // this will work in the browser via browserify declare global { // Module transform: converted from ambient declaration - var assert: typeof _chai.assert; + var assert: typeof chai.assert; + var expect: typeof chai.expect; } -declare global { - // Module transform: converted from ambient declaration - var expect: typeof _chai.expect; -} -var _chai: typeof import("chai") = require("chai"); -assert = _chai.assert; + +globalThis.assert = chai.assert; { // chai's builtin `assert.isFalse` is featureful but slow - we don't use those features, // so we'll just overwrite it as an alterative to migrating a bunch of code off of chai @@ -39,7 +35,7 @@ assert = _chai.assert; } }; } -expect = _chai.expect; -/* eslint-enable no-var */ +globalThis.expect = chai.expect; + // empty ts namespace so this file is included in the `ts.ts` namespace file generated by the module swapover // This way, everything that ends up importing `ts` downstream also imports this file and picks up its augmentation \ No newline at end of file diff --git a/src/instrumenter/instrumenter.ts b/src/instrumenter/instrumenter.ts index c7cbb8d3ec855..641d1734561e4 100644 --- a/src/instrumenter/instrumenter.ts +++ b/src/instrumenter/instrumenter.ts @@ -1,5 +1,5 @@ -import fs = require("fs"); -import path = require("path"); +import * as fs from "fs"; +import * as path from "path"; function instrumentForRecording(fn: string, tscPath: string) { instrument(tscPath, ` diff --git a/src/testRunner/externalCompileRunner.ts b/src/testRunner/externalCompileRunner.ts index cff64f9d2cf35..63aedcb7876ab 100644 --- a/src/testRunner/externalCompileRunner.ts +++ b/src/testRunner/externalCompileRunner.ts @@ -1,3 +1,7 @@ +import * as del from "del"; +import * as fs from "fs"; +import * as path from "path"; + import { compareStringsCaseSensitive, compareValues, flatten, stringContains } from "../compiler/core"; import { Debug } from "../compiler/debug"; import { comparePathsCaseSensitive } from "../compiler/path"; @@ -6,10 +10,6 @@ import { Baseline, IO } from "../harness/harnessIO"; import { RunnerBase, TestRunnerKind } from "../harness/runnerbase"; import { isWorker } from "./runner"; -const fs: typeof import("fs") = require("fs"); -const path: typeof import("path") = require("path"); -const del: typeof import("del") = require("del"); - interface ExecResult { stdout: Buffer; stderr: Buffer; diff --git a/src/testRunner/unittests/services/languageService.ts b/src/testRunner/unittests/services/languageService.ts index 845d0cd53b654..da25b7ecd09e3 100644 --- a/src/testRunner/unittests/services/languageService.ts +++ b/src/testRunner/unittests/services/languageService.ts @@ -1,3 +1,5 @@ +import { expect } from "chai"; + import { getParsedCommandLineOfConfigFile } from "../../../compiler/commandLineParser"; import { emptyArray, noop, returnTrue } from "../../../compiler/core"; import { Map } from "../../../compiler/corePublic"; @@ -9,8 +11,6 @@ import * as ts from "../../_namespaces/ts"; import { projectRoot } from "../tscWatch/helpers"; import { createServerHost, libFile } from "../tsserver/helpers"; -const _chai: typeof import("chai") = require("chai"); -const expect: typeof _chai.expect = _chai.expect; describe("unittests:: services:: languageService", () => { const files: {[index: string]: string} = { "foo.ts": `import Vue from "./vue"; diff --git a/src/testRunner/unittests/tsserver/session.ts b/src/testRunner/unittests/tsserver/session.ts index 8a3c58866287a..e0b47d1746615 100644 --- a/src/testRunner/unittests/tsserver/session.ts +++ b/src/testRunner/unittests/tsserver/session.ts @@ -1,3 +1,5 @@ +import { expect } from "chai"; + import { AnyFunction, noop, returnUndefined } from "../../../compiler/core"; import { Map, version } from "../../../compiler/corePublic"; import { Debug } from "../../../compiler/debug"; @@ -17,8 +19,6 @@ import { NormalizedPath } from "../../../server/utilitiesPublic"; import { FileTextChanges, IndentStyle } from "../../../services/types"; import { createHasErrorMessageLogger, nullLogger } from "./helpers"; -const _chai: typeof import("chai") = require("chai"); -const expect: typeof _chai.expect = _chai.expect; let lastWrittenToHost: string; const noopFileWatcher: FileWatcher = { close: noop }; const mockHost: ServerHost = { diff --git a/src/typingsInstaller/nodeTypingsInstaller.ts b/src/typingsInstaller/nodeTypingsInstaller.ts index 1320a9a8a5825..eb8feab955a11 100644 --- a/src/typingsInstaller/nodeTypingsInstaller.ts +++ b/src/typingsInstaller/nodeTypingsInstaller.ts @@ -1,3 +1,6 @@ +import * as fs from "fs"; +import * as path from "path"; + import { createGetCanonicalFileName, getEntries, stringContains } from "../compiler/core"; import { ESMap, Map, MapLike, version } from "../compiler/corePublic"; import { Debug } from "../compiler/debug"; @@ -14,16 +17,6 @@ import { installNpmPackages, Log, RequestCompletedAction, TypingsInstaller, } from "../typingsInstallerCore/typingsInstaller"; -const fs: { - appendFileSync(file: string, content: string): void -} = require("fs"); - -const path: { - join(...parts: string[]): string; - dirname(path: string): string; - basename(path: string, extension?: string): string; -} = require("path"); - class FileLog implements Log { constructor(private logFile: string | undefined) { } diff --git a/src/watchGuard/watchGuard.ts b/src/watchGuard/watchGuard.ts index 3835540d9c990..b66338f42eb0a 100644 --- a/src/watchGuard/watchGuard.ts +++ b/src/watchGuard/watchGuard.ts @@ -1,10 +1,11 @@ /// +import * as fs from "fs"; + if (process.argv.length < 3) { process.exit(1); } const directoryName = process.argv[2]; -const fs: { watch(directoryName: string, options: any, callback: () => {}): any } = require("fs"); // main reason why we need separate process to check if it is safe to watch some path // is to guard against crashes that cannot be intercepted with protected blocks and // code in tsserver already can handle normal cases, like non-existing folders.