Skip to content

Commit

Permalink
fix ts file import not working on windows + esm. (#12)
Browse files Browse the repository at this point in the history
  • Loading branch information
igalklebanov authored May 28, 2024
1 parent c90e04e commit 68964f3
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 1 deletion.
62 changes: 62 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: tests

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
test:
strategy:
matrix:
node-version: [18, 20, 22]
os: [macos-latest, ubuntu-latest, windows-latest]
type: [cjs, esm]

runs-on: ${{ matrix.os }}

name: ${{ matrix.os }} + Node.js v${{ matrix.node-version }} + ${{ matrix.type }}

steps:
- uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "pnpm"

- name: Install dependencies
run: pnpm i && pnpm build && cd examples/node-${{ matrix.type }} && pnpm i

- name: kysely -v
working-directory: examples/node-${{ matrix.type }}
run: pnpm kysely -v

- name: kysely migrate:make <migration-name> --cwd=%cd%
if: matrix.os == 'windows-latest'
working-directory: examples/node-${{ matrix.type }}
run: pnpm kysely migrate:make moshe --cwd=%cd% --debug

- name: kysely migrate:make <migration-name>
if: matrix.os != 'windows-latest'
working-directory: examples/node-${{ matrix.type }}
run: pnpm kysely migrate:make moshe --debug

- name: kysely migrate:list
working-directory: examples/node-${{ matrix.type }}
run: pnpm kysely migrate:list --debug

- name: kysely migrate:latest
working-directory: examples/node-${{ matrix.type }}
run: pnpm kysely migrate:latest --debug

- name: kysely migrate:rollback --all
working-directory: examples/node-${{ matrix.type }}
run: pnpm kysely migrate:rollback --all --debug
6 changes: 5 additions & 1 deletion src/utils/import-ts-file.mts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { runtime } from "std-env";
import { isWindows, runtime } from "std-env";
import { getConsumerPackageJSON } from "./pkg-json.mjs";

export async function importTSFile(path: string): Promise<any> {
Expand All @@ -11,6 +11,10 @@ export async function importTSFile(path: string): Promise<any> {
if (pkgJSON.type === "module") {
const { tsImport } = await import("tsx/esm/api");

if (isWindows && !path.startsWith("file://")) {
path = `file://${path}`;
}

return await tsImport(path, { parentURL: import.meta.url });
}

Expand Down

0 comments on commit 68964f3

Please sign in to comment.