Skip to content

Commit

Permalink
fix(remix-dev): convert config.appDirectory to relative unix path (#…
Browse files Browse the repository at this point in the history
…4709)

* fix(remix-dev): convert appDirectory to unix style for fast-glob

Signed-off-by: Logan McAnsh <[email protected]>

* chore: relative path

Signed-off-by: Logan McAnsh <[email protected]>

* chore: add test

Signed-off-by: Logan McAnsh <[email protected]>

* fix test

Signed-off-by: Logan McAnsh <[email protected]>

* fix: typo

Signed-off-by: Logan McAnsh <[email protected]>

* chore: update test

Signed-off-by: Logan McAnsh <[email protected]>

Signed-off-by: Logan McAnsh <[email protected]>
  • Loading branch information
mcansh authored Nov 29, 2022
1 parent 3f878a8 commit a79f828
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { tmpdir } from "os";
import { join } from "path";
import path from "path";
import glob from "fast-glob";
import {
copySync,
ensureDirSync,
readJSONSync,
realpathSync,
removeSync,
readFile,
} from "fs-extra";
import shell from "shelljs";
import stripAnsi from "strip-ansi";
Expand Down Expand Up @@ -37,8 +38,8 @@ const mockLog = (message: unknown = "", ...rest: unknown[]) => {
output += "\n" + stripAnsi(messageString);
};

const FIXTURE = join(__dirname, "fixtures", "indie-stack");
const TEMP_DIR = join(
const FIXTURE = path.join(__dirname, "fixtures", "indie-stack");
const TEMP_DIR = path.join(
realpathSync(tmpdir()),
`remix-tests-${Math.random().toString(32).slice(2)}`
);
Expand Down Expand Up @@ -66,29 +67,39 @@ const checkMigrationRanSuccessfully = async (projectDir: string) => {
let config = await readConfig(projectDir);

let jsConfigJson: TsConfigJson = readJSONSync(
join(projectDir, "jsconfig.json")
path.join(projectDir, "jsconfig.json")
);
expect(jsConfigJson.include).not.toContain("remix.env.d.ts");
expect(jsConfigJson.include).not.toContain("**/*.ts");
expect(jsConfigJson.include).toContain("**/*.js");
expect(jsConfigJson.include).not.toContain("**/*.tsx");
expect(jsConfigJson.include).toContain("**/*.jsx");

let packageJson: PackageJson = readJSONSync(join(projectDir, "package.json"));
let packageJson: PackageJson = readJSONSync(
path.join(projectDir, "package.json")
);
expect(packageJson.devDependencies).not.toContain("@types/react");
expect(packageJson.devDependencies).not.toContain("@types/react-dom");
expect(packageJson.devDependencies).not.toContain("typescript");
expect(packageJson.scripts).not.toContain("typecheck");

let relativeAppDirectory = path.relative(
config.rootDirectory,
config.appDirectory
);
let unixAppDirectory = path.posix.join(
...relativeAppDirectory.split(path.delimiter)
);

let TSFiles = glob.sync("**/*.@(ts|tsx)", {
cwd: config.rootDirectory,
ignore: [`./${config.appDirectory}/**/*`],
ignore: [`./${unixAppDirectory}/**/*`],
});
expect(TSFiles).toHaveLength(0);
let JSFiles = glob.sync("**/*.@(js|jsx)", {
absolute: true,
cwd: config.rootDirectory,
ignore: [`./${config.appDirectory}/**/*`],
ignore: [`./${unixAppDirectory}/**/*`],
});
let importResult = shell.grep("-l", 'from "', JSFiles);
expect(importResult.stdout.trim()).toBe("");
Expand All @@ -98,10 +109,17 @@ const checkMigrationRanSuccessfully = async (projectDir: string) => {
expect(exportDefaultResult.stdout.trim()).toBe("");
expect(exportDefaultResult.stderr).toBeNull();
expect(exportDefaultResult.code).toBe(0);

let rootRouteContent = await readFile(
path.join(projectDir, "app", "root.jsx"),
"utf-8"
);

expect(rootRouteContent).not.toContain('require("@remix-run/react")');
};

const makeApp = () => {
let projectDir = join(TEMP_DIR, "convert-to-javascript");
let projectDir = path.join(TEMP_DIR, "convert-to-javascript");
copySync(FIXTURE, projectDir);
return projectDir;
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { join } from "path";
import path from "path";
import glob from "fast-glob";

import { readConfig } from "../../../../config";
Expand All @@ -9,7 +9,7 @@ import { convertTSConfigs } from "./convertTSConfigs";
import { convertTSFilesToJS } from "./convertTSFilesToJS";
import { CliError } from "../../../error";

const TRANSFORM_PATH = join(__dirname, "transform");
const TRANSFORM_PATH = path.join(__dirname, "transform");

export const convertToJavaScript: MigrationFunction = async (
projectDir,
Expand All @@ -23,11 +23,20 @@ export const convertToJavaScript: MigrationFunction = async (
// 2. Remove @types/* & TypeScript dependencies + `typecheck` script from `package.json`
await cleanupPackageJson(config.rootDirectory);

// 3. Run codemod
// 3. convert appDirectory to relative and force unix style path
let relativeAppDirectory = path.relative(
config.rootDirectory,
config.appDirectory
);
let unixAppDirectory = path.posix.join(
...relativeAppDirectory.split(path.delimiter)
);

// 4. Run codemod
let files = glob.sync("**/*.+(ts|tsx)", {
absolute: true,
cwd: config.rootDirectory,
ignore: [`./${config.appDirectory}/**/*`, "**/node_modules/**"],
ignore: [`${unixAppDirectory}/**/*`, "**/node_modules/**"],
});
let codemodOk = await jscodeshift.run({
files,
Expand Down

0 comments on commit a79f828

Please sign in to comment.