diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 1909ae5..c3fb65f 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -21,6 +21,9 @@ jobs: - uses: denoland/setup-deno@v1 with: deno-version: v1.x + - uses: oven-sh/setup-bun@v2 + with: + bun-version: latest - run: deno task test --coverage=.cov --junit-path=.test-report.xml - uses: EnricoMi/publish-unit-test-result-action@v2 if: runner.os == 'Linux' && always() @@ -43,6 +46,9 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} slug: dahlia/logtape file: .cov.lcov + - run: deno task dnt + - run: bun run ./test_runner.js + working-directory: ${{ github.workspace }}/npm/ - run: deno task check publish: diff --git a/CHANGES.md b/CHANGES.md index 61bfad2..ba065e0 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,12 @@ LogTape changelog ================= +Version 0.4.1 +------------- + +To be released. + + Version 0.4.0 ------------- diff --git a/deno.json b/deno.json index ede5aa3..87f4ce2 100644 --- a/deno.json +++ b/deno.json @@ -25,6 +25,7 @@ "test": "deno test --allow-read --allow-write", "coverage": "rm -rf coverage && deno task test --coverage && deno coverage --html coverage", "dnt": "deno run -A dnt.ts", + "test-all": "deno task test && deno task dnt && cd npm/ && bun run ./test_runner.js && cd ../", "hooks:install": "deno run --allow-read=deno.json,.git/hooks/ --allow-write=.git/hooks/ jsr:@hongminhee/deno-task-hooks", "hooks:pre-commit": "deno task check", "hooks:pre-push": "deno task test" diff --git a/dnt.ts b/dnt.ts index 9ef0fb1..98f8818 100644 --- a/dnt.ts +++ b/dnt.ts @@ -29,6 +29,7 @@ await build({ entryPoints: ["./logtape/mod.ts"], importMap: "./deno.json", mappings: { + "./logtape/filesink.jsr.ts": "./logtape/filesink.node.ts", "./logtape/filesink.deno.ts": "./logtape/filesink.node.ts", }, shims: { diff --git a/logtape/filesink.deno.ts b/logtape/filesink.deno.ts index bd5ba42..17f459e 100644 --- a/logtape/filesink.deno.ts +++ b/logtape/filesink.deno.ts @@ -24,8 +24,8 @@ export const denoDriver: RotatingFileSinkDriver = { closeSync(fd) { fd.close(); }, - statSync: Deno.statSync, - renameSync: Deno.renameSync, + statSync: globalThis?.Deno.statSync, + renameSync: globalThis?.Deno.renameSync, }; /** diff --git a/logtape/filesink.jsr.ts b/logtape/filesink.jsr.ts new file mode 100644 index 0000000..f392561 --- /dev/null +++ b/logtape/filesink.jsr.ts @@ -0,0 +1,9 @@ +const filesink: Omit = + await ("Deno" in globalThis + ? import("./filesink.deno.ts") + : import("./filesink.node.ts")); + +export const getFileSink = filesink.getFileSink; +export const getRotatingFileSink = filesink.getRotatingFileSink; + +// cSpell: ignore filesink diff --git a/logtape/filesink.test.ts b/logtape/filesink.test.ts index 0f7371e..7fb387a 100644 --- a/logtape/filesink.test.ts +++ b/logtape/filesink.test.ts @@ -26,7 +26,6 @@ Deno.test("getFileSink()", () => { Deno.test("getRotatingFileSink()", () => { const path = Deno.makeTempFileSync(); - console.debug({ path }); const sink: Sink & Disposable = getRotatingFileSink(path, { maxSize: 150, }); diff --git a/logtape/mod.ts b/logtape/mod.ts index f52c807..b499553 100644 --- a/logtape/mod.ts +++ b/logtape/mod.ts @@ -7,7 +7,7 @@ export { type LoggerConfig, reset, } from "./config.ts"; -export { getFileSink, getRotatingFileSink } from "./filesink.deno.ts"; +export { getFileSink, getRotatingFileSink } from "./filesink.jsr.ts"; export { type Filter, type FilterLike,