diff --git a/package.json b/package.json index b652681..295da3f 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "access": "public" }, "scripts": { - "build": "pnpm codegen:github && tsc --noEmit && tsdown", + "build": "pnpm codegen:github && tsc && tsdown", "codegen:github": "graphql-codegen --config src/github/codegen.ts", "format": "oxfmt --check", "format:fix": "oxfmt", @@ -66,6 +66,7 @@ "@graphql-codegen/cli": "^7.0.0", "@octokit/core": "^6.1.2", "@octokit/graphql": "^8.1.1", + "@tsconfig/node22": "^22.0.5", "@types/node": "^20.11.24", "dotenv": "^16.4.5", "oxfmt": "^0.51.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82b556c..5f10247 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,6 +31,9 @@ importers: '@octokit/graphql': specifier: ^8.1.1 version: 8.1.1 + '@tsconfig/node22': + specifier: ^22.0.5 + version: 22.0.5 '@types/node': specifier: ^20.11.24 version: 20.14.10 @@ -1206,6 +1209,9 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@tsconfig/node22@22.0.5': + resolution: {integrity: sha512-hLf2ld+sYN/BtOJjHUWOk568dvjFQkHnLNa6zce25GIH+vxKfvTgm3qpaH6ToF5tu/NN0IH66s+Bb5wElHrLcw==} + '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} @@ -4234,6 +4240,8 @@ snapshots: '@standard-schema/spec@1.1.0': {} + '@tsconfig/node22@22.0.5': {} + '@tybys/wasm-util@0.10.2': dependencies: tslib: 2.8.1 diff --git a/src/core.ts b/src/core.ts index 69a70cc..f669cde 100644 --- a/src/core.ts +++ b/src/core.ts @@ -1,14 +1,14 @@ import type { GetRepositoryMetadataQuery } from "./github/graphql/generated/operations.js"; -import { CommitMessage } from "./github/graphql/generated/types.js"; +import type { CommitMessage } from "./github/graphql/generated/types.ts"; import { createCommitOnBranchQuery, getRepositoryMetadata, -} from "./github/graphql/queries.js"; -import { +} from "./github/graphql/queries.ts"; +import type { CommitFilesFromBase64Args, CommitFilesResult, GitBase, -} from "./interface.js"; +} from "./interface.ts"; const getBaseRef = (base: GitBase): string => { if ("branch" in base) { diff --git a/src/fs.ts b/src/fs.ts index 1df5456..6dc0c1d 100644 --- a/src/fs.ts +++ b/src/fs.ts @@ -1,11 +1,11 @@ import { promises as fs } from "fs"; import * as path from "path"; -import type { FileAddition } from "./github/graphql/generated/types.js"; -import { +import type { FileAddition } from "./github/graphql/generated/types.ts"; +import type { CommitFilesFromDirectoryArgs, CommitFilesResult, -} from "./interface.js"; -import { commitFilesFromBuffers } from "./node.js"; +} from "./interface.ts"; +import { commitFilesFromBuffers } from "./node.ts"; export const commitFilesFromDirectory = async ({ cwd, diff --git a/src/git.ts b/src/git.ts index c9bbd00..01fe080 100644 --- a/src/git.ts +++ b/src/git.ts @@ -1,12 +1,12 @@ import { promises as fs } from "fs"; import { relative, resolve } from "path"; import git from "isomorphic-git"; -import { +import type { CommitChangesFromRepoArgs, CommitFilesFromBuffersArgs, CommitFilesResult, -} from "./interface"; -import { commitFilesFromBuffers } from "./node"; +} from "./interface.ts"; +import { commitFilesFromBuffers } from "./node.ts"; /** * @see https://isomorphic-git.org/docs/en/walk#walkerentry-mode diff --git a/src/github/codegen.ts b/src/github/codegen.ts index b7eb803..62741b4 100644 --- a/src/github/codegen.ts +++ b/src/github/codegen.ts @@ -26,6 +26,7 @@ const config: CodegenConfig = { config: { // TODO: Look into adding stricter types or use `unknown` defaultScalarType: "any", + enumsAsTypes: true, }, }, "src/github/graphql/generated/operations.ts": { @@ -34,6 +35,7 @@ const config: CodegenConfig = { // TODO: Look into adding stricter types or use `unknown` defaultScalarType: "any", importSchemaTypesFrom: "src/github/graphql/generated/types.ts", + importExtension: ".ts", }, }, }, diff --git a/src/index.ts b/src/index.ts index 41cdeb7..67c1b4f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -export * as queries from "./github/graphql/queries.js"; -export { commitFilesFromBase64 } from "./core.js"; -export { commitChangesFromRepo } from "./git.js"; -export { commitFilesFromDirectory } from "./fs.js"; +export * as queries from "./github/graphql/queries.ts"; +export { commitFilesFromBase64 } from "./core.ts"; +export { commitChangesFromRepo } from "./git.ts"; +export { commitFilesFromDirectory } from "./fs.ts"; diff --git a/src/interface.ts b/src/interface.ts index a162b48..0bbafe3 100644 --- a/src/interface.ts +++ b/src/interface.ts @@ -1,9 +1,9 @@ import type { CommitMessage, FileChanges, -} from "./github/graphql/generated/types.js"; -import type { GitHubClient } from "./github/graphql/queries.js"; -import type { Logger } from "./logging.js"; +} from "./github/graphql/generated/types.ts"; +import type { GitHubClient } from "./github/graphql/queries.ts"; +import type { Logger } from "./logging.ts"; export type CommitFilesResult = { refId: string | null; diff --git a/src/node.ts b/src/node.ts index 565d0ea..b87f065 100644 --- a/src/node.ts +++ b/src/node.ts @@ -1,5 +1,8 @@ import { commitFilesFromBase64 } from "./core.js"; -import { CommitFilesFromBuffersArgs, CommitFilesResult } from "./interface.js"; +import type { + CommitFilesFromBuffersArgs, + CommitFilesResult, +} from "./interface.ts"; export const commitFilesFromBuffers = async ({ fileChanges, diff --git a/tests/integration/fs.test.ts b/tests/integration/fs.test.ts index 668651a..708a261 100644 --- a/tests/integration/fs.test.ts +++ b/tests/integration/fs.test.ts @@ -2,15 +2,15 @@ import { promises as fs } from "fs"; import * as path from "path"; import { getOctokit } from "@actions/github"; import { afterAll, describe, it } from "vitest"; -import { commitFilesFromDirectory } from "../../src/fs.js"; +import { commitFilesFromDirectory } from "../../src/fs.ts"; import { ENV, REPO, ROOT_TEMP_DIRECTORY, ROOT_TEST_BRANCH_PREFIX, log, -} from "./env.js"; -import { deleteBranches } from "./util.js"; +} from "./env.ts"; +import { deleteBranches } from "./util.ts"; const octokit = getOctokit(ENV.GITHUB_TOKEN); diff --git a/tests/integration/git.test.ts b/tests/integration/git.test.ts index f50039c..f96ff6b 100644 --- a/tests/integration/git.test.ts +++ b/tests/integration/git.test.ts @@ -4,16 +4,16 @@ import path from "path"; import { getOctokit } from "@actions/github"; import git from "isomorphic-git"; import { afterAll, describe, expect, it, vi } from "vitest"; -import { commitChangesFromRepo } from "../../src/git"; -import { getRefTreeQuery } from "../../src/github/graphql/queries"; +import { commitChangesFromRepo } from "../../src/git.ts"; +import { getRefTreeQuery } from "../../src/github/graphql/queries.ts"; import { ENV, REPO, ROOT_TEMP_DIRECTORY, ROOT_TEST_BRANCH_PREFIX, log, -} from "./env"; -import { deleteBranches, waitForGitHubToBeReady } from "./util"; +} from "./env.ts"; +import { deleteBranches, waitForGitHubToBeReady } from "./util.ts"; const octokit = getOctokit(ENV.GITHUB_TOKEN); diff --git a/tests/integration/node.test.ts b/tests/integration/node.test.ts index 88d7859..1d0aacc 100644 --- a/tests/integration/node.test.ts +++ b/tests/integration/node.test.ts @@ -2,15 +2,15 @@ import { promises as fs } from "fs"; import { getOctokit } from "@actions/github"; import git from "isomorphic-git"; import { afterAll, beforeAll, describe, expect, it, vi } from "vitest"; -import { CommitMessage } from "../../src/github/graphql/generated/types.js"; +import type { CommitMessage } from "../../src/github/graphql/generated/types.ts"; import { createRefMutation, getRefTreeQuery, getRepositoryMetadata, -} from "../../src/github/graphql/queries.js"; -import { commitFilesFromBuffers } from "../../src/node.js"; -import { ENV, REPO, ROOT_TEST_BRANCH_PREFIX, log } from "./env.js"; -import { deleteBranches, waitForGitHubToBeReady } from "./util.js"; +} from "../../src/github/graphql/queries.ts"; +import { commitFilesFromBuffers } from "../../src/node.ts"; +import { ENV, REPO, ROOT_TEST_BRANCH_PREFIX, log } from "./env.ts"; +import { deleteBranches, waitForGitHubToBeReady } from "./util.ts"; // TODO: re-enable strict tree tests when GitHub have addressed the createRef // bug that's currently used in integration tests diff --git a/tests/integration/util.ts b/tests/integration/util.ts index 3ba84d8..4b7a52f 100644 --- a/tests/integration/util.ts +++ b/tests/integration/util.ts @@ -1,7 +1,7 @@ import { deleteRefMutation, getRepositoryMetadata, - GitHubClient, + type GitHubClient, } from "../../src/github/graphql/queries.js"; import { REPO } from "./env.js"; diff --git a/tsconfig.base.json b/tsconfig.base.json deleted file mode 100644 index 5e98224..0000000 --- a/tsconfig.base.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "display": "Default", - "compilerOptions": { - "declaration": true, - "declarationMap": true, - "esModuleInterop": true, - "incremental": false, - "isolatedModules": true, - "lib": ["es2022", "DOM", "DOM.Iterable"], - "module": "ESNext", - "moduleDetection": "force", - "moduleResolution": "Bundler", - "noUncheckedIndexedAccess": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "strict": true, - "target": "ES2022", - "noUnusedLocals": true, - "noUnusedParameters": true - } -} diff --git a/tsconfig.json b/tsconfig.json index fa266dc..4541472 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,19 @@ { - "extends": "./tsconfig.base.json", + "extends": "@tsconfig/node22/tsconfig.json", "compilerOptions": { - "types": ["node"], - "rootDir": ".", - "outDir": "dist" + "allowImportingTsExtensions": true, + "erasableSyntaxOnly": true, + "verbatimModuleSyntax": true, + "strict": true, + "noEmit": true, + "lib": [ + "ES2024", + "ES2025.Promise", + "ESNext.Array", + "ESNext.Collection", + "ESNext.Iterator" + ], + "types": ["node"] }, - "include": ["src"], - "exclude": ["node_modules", "dist"] + "include": ["./"] } diff --git a/tsconfig.lint.json b/tsconfig.lint.json deleted file mode 100644 index f0d9c7b..0000000 --- a/tsconfig.lint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src", "turbo", "tsdown.config.ts"], - "exclude": ["node_modules", "dist"] -}