Skip to content

Commit

Permalink
Added support to Deno v2 (#78)
Browse files Browse the repository at this point in the history
* Added support to Deno v2

* fixed test-matrix to check Deno version

* fixed typo
  • Loading branch information
petruki authored Oct 10, 2024
1 parent 40b8f9f commit a65eff9
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 36 deletions.
47 changes: 26 additions & 21 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ jobs:
with:
fetch-depth: 0

- name: Setup Deno v1.46.3
uses: denoland/setup-deno@v1
- name: Setup Deno v2.x
uses: denoland/setup-deno@v2
with:
deno-version: v1.46.3
deno-version: v2.x

- name: Setup LCOV
run: sudo apt install -y lcov
Expand All @@ -44,24 +44,29 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

# Will be added in the future when Deno v2 is released
# test-matrix:
# name: Test Matrix - Deno ${{ matrix.deno-version }} on ${{ matrix.os }}
# strategy:
# fail-fast: false
# matrix:
# deno-version: [v1.4x.x]
# os: [ ubuntu-latest, windows-latest ]
# runs-on: ${{ matrix.os }}
# if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"
test-matrix:
name: Test Matrix - Deno ${{ matrix.deno-version }} on ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
deno-version: [v1.46.3, v2.0.0]
os: [ ubuntu-latest, windows-latest ]
runs-on: ${{ matrix.os }}
if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"

steps:
- name: Git checkout
uses: actions/checkout@v4

# steps:
# - name: Git checkout
# uses: actions/checkout@v4
- name: Setup Deno ${{ matrix.deno-version }}
uses: denoland/setup-deno@v2
with:
deno-version: ${{ matrix.deno-version }}

# - name: Setup Deno ${{ matrix.deno-version }}
# uses: denoland/setup-deno@v1
# with:
# deno-version: ${{ matrix.deno-version }}
- name: Run tests (Deno v1)
if: "contains(matrix.deno-version, 'v1')"
run: deno task test-v1

# - run: deno task test
- name: Run tests (Deno v2)
if: "contains(matrix.deno-version, 'v2')"
run: deno task test
4 changes: 2 additions & 2 deletions .github/workflows/staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
deno:
description: 'Deno version'
required: true
default: 'v1.46.x'
default: 'v2.x'
os:
description: 'Operating System (ubuntu-20.04, ubuntu-latest, windows-latest)'
required: true
Expand All @@ -29,7 +29,7 @@ jobs:
fetch-depth: 0

- name: Setup Deno
uses: denoland/setup-deno@v1
uses: denoland/setup-deno@v2
with:
deno-version: ${{ github.event.inputs.deno }}

Expand Down
3 changes: 2 additions & 1 deletion deno.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
"cache-reload": "deno cache --reload --lock=deno.lock mod.ts",
"fmt": "deno fmt mod.ts src/ --options-single-quote --options-line-width=120 --check",
"fmt:fix": "deno fmt mod.ts src/ --options-single-quote --options-line-width=120",
"test": "deno test --allow-read --allow-net --allow-write --coverage=coverage",
"test": "deno test --allow-read --allow-net --allow-write --allow-import --coverage=coverage",
"test-v1": "deno test --allow-read --allow-net --allow-write --coverage=coverage",
"lcov": "deno coverage coverage --lcov --output=coverage/report.lcov",
"clean": "rm -rf ./npm ./coverage ./generated-snapshots",
"cover": "deno task clean && deno task test && deno task lcov && genhtml -o coverage/html coverage/report.lcov",
Expand Down
4 changes: 2 additions & 2 deletions src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export class Client {
private static _testEnabled = DEFAULT_TEST_MODE;
private static _watching = false;
private static _watcher: Deno.FsWatcher;
private static _watchDebounce = new Map<string, number>();
private static readonly _watchDebounce = new Map<string, number>();

private static _snapshot?: Snapshot;
private static _context: SwitcherContext;
Expand Down Expand Up @@ -222,7 +222,7 @@ export class Client {

success();
} catch (err) {
error(err);
error(err as Error);
}
}
}
Expand Down
15 changes: 10 additions & 5 deletions src/lib/remote.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ export const auth = async (context: SwitcherContext) => {

throw new Error(`[auth] failed with status ${response.status}`);
} catch (e) {
throw new AuthError(e.errno ? getConnectivityError(e.errno) : e.message);
const error = e as { errno?: string; message: string };
throw new AuthError(error.errno ? getConnectivityError(error.errno) : error.message);
}
};

Expand Down Expand Up @@ -101,8 +102,9 @@ export const checkCriteria = async (

throw new Error(`[checkCriteria] failed with status ${response.status}`);
} catch (e) {
const error = e as { errno?: string; message: string };
throw new CriteriaError(
e.errno ? getConnectivityError(e.errno) : e.message,
error.errno ? getConnectivityError(error.errno) : error.message,
);
}
};
Expand Down Expand Up @@ -131,8 +133,9 @@ export const checkSwitchers = async (
throw e;
}

const error = e as { errno?: string; message: string };
throw new CriteriaError(
e.errno ? getConnectivityError(e.errno) : e.message,
error.errno ? getConnectivityError(error.errno) : error.message,
);
}
};
Expand All @@ -153,8 +156,9 @@ export const checkSnapshotVersion = async (

throw new Error(`[checkSnapshotVersion] failed with status ${response.status}`);
} catch (e) {
const error = e as { errno?: string; message: string };
throw new SnapshotServiceError(
e.errno ? getConnectivityError(e.errno) : e.message,
error.errno ? getConnectivityError(error.errno) : error.message,
);
}
};
Expand Down Expand Up @@ -193,8 +197,9 @@ export const resolveSnapshot = async (

throw new Error(`[resolveSnapshot] failed with status ${response.status}`);
} catch (e) {
const error = e as { errno?: string; message: string };
throw new SnapshotServiceError(
e.errno ? getConnectivityError(e.errno) : e.message,
error.errno ? getConnectivityError(error.errno) : error.message,
);
}
};
2 changes: 1 addition & 1 deletion src/lib/utils/snapshotAutoUpdater.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default class SnapshotAutoUpdater {
const updated = await checkSnapshot();
success(updated);
} catch (err) {
reject(err);
reject(err as Error);
}
}, interval * 1000);
}
Expand Down
6 changes: 3 additions & 3 deletions src/switcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ export class Switcher {
result = await this._executeRemoteCriteria();
}
} catch (err) {
this._notifyError(err);
this._notifyError(err as Error);

if (Client.options.silentMode) {
Auth.updateSilentToken();
Expand Down Expand Up @@ -220,7 +220,7 @@ export class Switcher {
this._showDetail,
);
} catch (err) {
responseCriteria = this.getDefaultResultOrThrow(err);
responseCriteria = this.getDefaultResultOrThrow(err as Error);
}

if (Client.options.logger && this._key) {
Expand Down Expand Up @@ -284,7 +284,7 @@ export class Switcher {
util.get(this._input, []),
);
} catch (err) {
response = this.getDefaultResultOrThrow(err);
response = this.getDefaultResultOrThrow(err as Error);
}

if (Client.options.logger) {
Expand Down
2 changes: 1 addition & 1 deletion test/deps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export {
assertNotEquals,
assertArrayIncludes
} from 'jsr:@std/assert@1.0.6';;
export { assertSpyCalls, spy } from 'jsr:@std/testing@1.0.1/mock';
export { assertSpyCalls, spy } from 'jsr:@std/testing@1.0.3/mock';
export {
describe,
it,
Expand Down

0 comments on commit a65eff9

Please sign in to comment.