Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6a38242

Browse files
authoredApr 17, 2024··
Merge pull request #146 from shelfio/feature/remove-client-reference
2 parents 7c66d01 + c9e80a3 commit 6a38242

34 files changed

+92
-104
lines changed
 

‎.circleci/config.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@ orbs:
66
parameters:
77
node_version:
88
type: string
9-
default: '16.15.1'
9+
default: '20.11.1'
1010

1111
commands:
1212
install_deps:
1313
steps:
1414
- run: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> .npmrc
1515
- node/install-packages:
1616
pkg-manager: yarn
17-
cache-version: v1-all
18-
cache-only-lockfile: true
17+
with-cache: false
1918
app-dir: ~/repo
2019
override-ci-command: yarn install --pure-lockfile --no-progress
2120

@@ -29,5 +28,5 @@ jobs:
2928
- checkout
3029
- install_deps
3130
- run: yarn test
32-
- run: yarn type-check
31+
- run: yarn build
3332
- run: yarn lint:ci

‎.husky/pre-commit

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
yarn lint-staged

‎jest.config.js

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/** @type {import("ts-jest").JestConfigWithTsJest} */
2+
const config = {
3+
transform: {
4+
'^.+\\.(t|j)sx?$': ['@swc/jest'],
5+
},
6+
resolver: 'ts-jest-resolver',
7+
};
8+
export default config;

‎package.json

+19-32
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@
88
"email": "vlad@shelf.io",
99
"url": "https://shelf.io"
1010
},
11-
"main": "lib",
11+
"type": "module",
12+
"exports": "./lib/index.js",
1213
"types": "lib/index.d.ts",
1314
"files": [
1415
"lib"
1516
],
1617
"scripts": {
17-
"build": "rm -rf lib/ && yarn build:types && yarn build:code",
18-
"build:code": "babel src --out-dir lib --ignore '**/*.test.ts' --extensions '.ts' && find ./lib -name '*.test.d.ts' -delete",
19-
"build:types": "tsc --emitDeclarationOnly --declaration --isolatedModules false --declarationDir lib",
18+
"build": "rm -rf lib/ && tsc",
2019
"coverage": "jest --coverage",
2120
"lint": "eslint . --ext .js,.ts,.json --fix",
2221
"lint:ci": "eslint . --ext .js,.ts,.json",
@@ -25,46 +24,34 @@
2524
"type-check": "tsc --noEmit",
2625
"type-check:watch": "npm run type-check -- --watch"
2726
},
28-
"husky": {
29-
"hooks": {
30-
"pre-commit": "lint-staged"
31-
}
32-
},
3327
"lint-staged": {
34-
"*.{html,json,md,yml}": [
35-
"prettier --write"
36-
],
37-
"*.{js,ts}": [
38-
"eslint --fix"
39-
]
40-
},
41-
"babel": {
42-
"extends": "@shelf/babel-config/backend"
28+
"*.{html,json,md,yml}": "prettier --write",
29+
"*.{js,ts}": "eslint --fix"
4330
},
4431
"prettier": "@shelf/prettier-config",
4532
"dependencies": {
46-
"@octokit/rest": "19.0.5",
33+
"@octokit/rest": "20.1.0",
4734
"lodash": "4.17.21"
4835
},
4936
"devDependencies": {
50-
"@babel/cli": "7.23.4",
51-
"@babel/core": "7.23.7",
52-
"@shelf/babel-config": "1.2.0",
53-
"@shelf/eslint-config": "2.26.0",
37+
"@shelf/eslint-config": "3.15.1",
5438
"@shelf/prettier-config": "1.0.0",
55-
"@shelf/tsconfig": "0.0.9",
56-
"@types/jest": "29.5.11",
57-
"@types/lodash": "4.14.202",
58-
"@types/node": "16",
39+
"@shelf/tsconfig": "0.1.0",
40+
"@swc/core": "1.4.14",
41+
"@swc/jest": "0.2.36",
42+
"@types/jest": "29.5.12",
43+
"@types/lodash": "4.17.0",
44+
"@types/node": "20.12.7",
5945
"eslint": "8.56.0",
60-
"husky": "8.0.3",
46+
"husky": "9.0.11",
6147
"jest": "29.7.0",
62-
"lint-staged": "13.3.0",
63-
"prettier": "2.8.8",
64-
"typescript": "5.1.6"
48+
"lint-staged": "15.2.2",
49+
"prettier": "3.2.5",
50+
"ts-jest-resolver": "2.0.1",
51+
"typescript": "5.4.5"
6552
},
6653
"engines": {
67-
"node": ">=16"
54+
"node": ">=18"
6855
},
6956
"publishConfig": {
7057
"access": "public"

‎src/index.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
export * from './prs';
2-
export * from './repos';
3-
export * from './misc';
1+
export * from './prs/index.js';
2+
export * from './repos/index.js';
3+
export * from './misc/index.js';
4+
export * from './rest-client.js';

‎src/misc/get-orgs.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
jest.mock('../rest-client');
22

3-
import {getClient} from '../rest-client';
4-
import {getUserOrgs} from './get-orgs';
3+
import {getClient} from '../rest-client.js';
4+
import {getUserOrgs} from './get-orgs.js';
55

66
const listForAuthenticatedUserMock = jest
77
.fn()

‎src/misc/get-orgs.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {getClient} from '../rest-client';
1+
import {getClient} from '../rest-client.js';
22

33
export async function getUserOrgs(): Promise<string[]> {
44
const gh = getClient();

‎src/misc/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export * from './get-orgs';
1+
export * from './get-orgs.js';

‎src/prs/approve.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
jest.mock('../rest-client');
22

3-
import {getClient} from '../rest-client';
4-
import {approvePR} from './approve';
3+
import {getClient} from '../rest-client.js';
4+
import {approvePR} from './approve.js';
55

66
const createReviewMock = jest.fn().mockResolvedValue({data: {a: 1}});
77

‎src/prs/approve.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods';
2-
import {getClient} from '../rest-client';
2+
import {getClient} from '../rest-client.js';
33

44
type ApprovePRParams = {
55
owner: string;

‎src/prs/create-release-pr.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
jest.mock('../rest-client');
22

3-
import {getClient} from '../rest-client';
4-
import {createReleasePR} from './create-release-pr';
3+
import {getClient} from '../rest-client.js';
4+
import {createReleasePR} from './create-release-pr.js';
55

66
const owner = 'repo-owner-name';
77
const repo = 'some-repo-name';

‎src/prs/create-release-pr.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types';
2-
import {getClient} from '../rest-client';
1+
import {getClient} from '../rest-client.js';
32

43
export async function createReleasePR({
54
owner,
@@ -11,7 +10,7 @@ export async function createReleasePR({
1110
repo: string;
1211
version: string;
1312
releaseTitle: string;
14-
}): Promise<RestEndpointMethodTypes['pulls']['create']['response']['data']> {
13+
}) {
1514
const gh = getClient();
1615
const tagName = `v${version}`;
1716
const branch = `release/${tagName}`;

‎src/prs/extract-repo-name.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {extractRepoNameFromURL} from './extract-repo-name';
1+
import {extractRepoNameFromURL} from './extract-repo-name.js';
22

33
it('should parse API repo url', () => {
44
const repoName = extractRepoNameFromURL('https://api.github.com/repos/shelfio/gh-sdk');

‎src/prs/get-pr.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods';
2-
import {getClient} from '../rest-client';
2+
import {getClient} from '../rest-client.js';
33

44
export async function getPR({
55
repo,

‎src/prs/index.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
export * from './approve';
2-
export * from './create-release-pr';
3-
export * from './extract-repo-name';
4-
export * from './get-pr';
5-
export * from './list-prs';
6-
export * from './merge';
1+
export * from './approve.js';
2+
export * from './create-release-pr.js';
3+
export * from './extract-repo-name.js';
4+
export * from './get-pr.js';
5+
export * from './list-prs.js';
6+
export * from './merge.js';

‎src/prs/list-prs.ts

+3-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods';
2-
import {getClient} from '../rest-client';
2+
import {getClient} from '../rest-client.js';
33

44
type ListOpenPRsParams = {
55
owner: string;
@@ -16,7 +16,7 @@ export function listPrs(params: ListOpenPRsParams): ReturnType<typeof getPRs> {
1616
return getPRs({...params, prStatus: 'open'});
1717
}
1818

19-
export async function getOpenRepoPRsFromHuman(owner: string, repo: string): Promise<any[]> {
19+
export async function getOpenRepoPRsFromHuman(owner: string, repo: string) {
2020
const gh = getClient();
2121

2222
const {data} = await gh.pulls.list({
@@ -28,11 +28,7 @@ export async function getOpenRepoPRsFromHuman(owner: string, repo: string): Prom
2828
return data.filter(pr => !pr?.user?.login.endsWith('[bot]') && !pr.draft);
2929
}
3030

31-
export async function getCommitChecks(
32-
owner: string,
33-
repo: string,
34-
commitRef: string
35-
): Promise<any[]> {
31+
export async function getCommitChecks(owner: string, repo: string, commitRef: string) {
3632
const gh = getClient();
3733

3834
const {data} = await gh.request({

‎src/prs/merge.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
jest.mock('../rest-client');
22

3-
import {getClient} from '../rest-client';
4-
import {mergePR} from './merge';
3+
import {getClient} from '../rest-client.js';
4+
import {mergePR} from './merge.js';
55

66
const mergeMock = jest.fn().mockResolvedValue({data: {a: 1}});
77

‎src/prs/merge.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods';
2-
import {getClient} from '../rest-client';
2+
import {getClient} from '../rest-client.js';
33

44
type MergePRParams = {
55
owner: string;

‎src/repos/create-release-branch.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
jest.mock('../rest-client');
22

3-
import {getClient} from '../rest-client';
4-
import {createReleaseBranch} from './create-release-branch';
3+
import {getClient} from '../rest-client.js';
4+
import {createReleaseBranch} from './create-release-branch.js';
55

66
const owner = 'some-owner-name';
77
const repo = 'some-repo-name';

‎src/repos/create-release-branch.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods';
2-
import {getClient} from '../rest-client';
2+
import {getClient} from '../rest-client.js';
33

44
export async function createReleaseBranch({
55
owner,

‎src/repos/delete-branch.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
jest.mock('./delete-branch');
22

3-
import {deleteBranch} from './delete-branch';
3+
import {deleteBranch} from './delete-branch.js';
44

55
it('deleteBranch should be called w/ correct arguments', async () => {
66
const owner = 'some-repo-owner';

‎src/repos/delete-branch.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods';
2-
import {getClient} from '../rest-client';
2+
import {getClient} from '../rest-client.js';
33

44
export async function deleteBranch({
55
owner,

‎src/repos/get-latest-branch-commit.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
jest.mock('../rest-client');
22

3-
import {getClient} from '../rest-client';
3+
import {getClient} from '../rest-client.js';
44
import {
55
getLatestBranchCommit,
66
getLatestDevelopCommit,
77
getLatestDevelopCommitSHA,
8-
} from './get-latest-branch-commit';
8+
} from './get-latest-branch-commit.js';
99

1010
const commit = {
1111
author: {id: 123, login: 'some-login-string', url: 'some-author-url'},

‎src/repos/get-latest-branch-commit.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods';
2-
import {getRepoBranch} from './get-repo-branches';
2+
import {getRepoBranch} from './get-repo-branches.js';
33

44
type LatestBranchCommit =
55
| RestEndpointMethodTypes['repos']['getBranch']['response']['data']['commit']

‎src/repos/get-repo-branches.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
jest.mock('../rest-client');
22

3-
import {getClient} from '../rest-client';
4-
import {getRepoBranch, getRepoBranches, getRepoBranchesNames} from './get-repo-branches';
3+
import {getClient} from '../rest-client.js';
4+
import {getRepoBranch, getRepoBranches, getRepoBranchesNames} from './get-repo-branches.js';
55

66
const branchOne = {
77
_links: {html: 'some-html'},

‎src/repos/get-repo-branches.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods';
2-
import {getClient} from '../rest-client';
2+
import {getClient} from '../rest-client.js';
33

44
export async function getRepoBranch({
55
owner,

‎src/repos/get-repo-merge-strategies.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable camelcase */
2-
import {getClient} from '../rest-client';
2+
import {getClient} from '../rest-client.js';
33

44
export async function getRepoMergeStrategies(owner: string, repo: string) {
55
const gh = getClient();

‎src/repos/index.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
export * from './create-release-branch';
2-
export * from './delete-branch';
3-
export * from './get-latest-branch-commit';
4-
export * from './get-repo-branches';
5-
export * from './get-repo-merge-strategies';
6-
export * from './labels';
7-
export * from './list-org-repos';
8-
export * from './update-repo-merge-strategies';
1+
export * from './create-release-branch.js';
2+
export * from './delete-branch.js';
3+
export * from './get-latest-branch-commit.js';
4+
export * from './get-repo-branches.js';
5+
export * from './get-repo-merge-strategies.js';
6+
export * from './labels.js';
7+
export * from './list-org-repos.js';
8+
export * from './update-repo-merge-strategies.js';

‎src/repos/labels.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {getClient} from '../rest-client';
1+
import {getClient} from '../rest-client.js';
22

33
export async function getRepoLabels(owner: string, repo: string): Promise<string[]> {
44
const client = getClient();

‎src/repos/list-org-repos.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
jest.mock('../rest-client');
22

3-
import {getClient} from '../rest-client';
4-
import {listOrgRepos} from './list-org-repos';
3+
import {getClient} from '../rest-client.js';
4+
import {listOrgRepos} from './list-org-repos.js';
55

66
const listForOrgMock = jest.fn().mockResolvedValue({
77
data: [{a: 1}],

‎src/repos/list-org-repos.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods';
2-
import {getClient} from '../rest-client';
2+
import {getClient} from '../rest-client.js';
33

44
type RepoType = RestEndpointMethodTypes['repos']['listForOrg']['parameters']['type'];
55

‎src/repos/update-repo-merge-strategies.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable camelcase */
2-
import {getClient} from '../rest-client';
2+
import {getClient} from '../rest-client.js';
33

44
type UpdateRepoMergeStrategiesParams = {
55
owner: string;

‎src/rest-client.ts

+1-9
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,7 @@
11
import {Octokit} from '@octokit/rest';
22

3-
let client: Octokit;
4-
53
export function getClient(): Octokit {
6-
if (client) {
7-
return client;
8-
}
9-
10-
client = new Octokit({
4+
return new Octokit({
115
auth: process.env.GITHUB_TOKEN,
126
});
13-
14-
return client;
157
}

‎tsconfig.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
{
22
"extends": "@shelf/tsconfig/backend",
33
"compilerOptions": {
4-
"strict": true
4+
"strict": true,
5+
"declaration": true,
6+
"noEmit": false,
7+
"outDir": "lib",
8+
"moduleResolution": "nodenext",
9+
"module": "Node16"
510
},
611
"exclude": ["node_modules"],
712
"include": ["src"]

0 commit comments

Comments
 (0)
Please sign in to comment.