Skip to content

Commit 8252501

Browse files
committed
chore: Improved isolation of js-utils package
1 parent d85cd0e commit 8252501

11 files changed

+184
-429
lines changed

packages/js-utils/package.json

+10-3
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,25 @@
3838
"scripts": {
3939
"dev": "vite build --watch",
4040
"build": "vite build",
41-
"types": "tsc --noEmit"
41+
"types": "tsc --noEmit",
42+
"test": "vitest run --coverage"
4243
},
4344
"peerDependencies": {
44-
"@modyfi/vite-plugin-yaml": "1.1.0"
45+
"@modyfi/vite-plugin-yaml": "^1.1.0"
4546
},
4647
"peerDependenciesMeta": {
4748
"@modyfi/vite-plugin-yaml": {
4849
"optional": true
4950
}
5051
},
5152
"devDependencies": {
53+
"@modyfi/vite-plugin-yaml": "1.1.0",
5254
"@types/axios": "^0.14.4",
53-
"axios": "1.7.7"
55+
"axios": "1.7.7",
56+
"msw": "2.6.0",
57+
"vite": "5.4.8",
58+
"vite-plugin-dts": "4.2.1",
59+
"vite-tsconfig-paths": "5.1.2",
60+
"vitest": "2.0.5"
5461
}
5562
}

packages/js-utils/src/services/http-client-mixin/http-client.service-mixin.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, it, vi } from 'vitest';
12
import axios, { type AxiosResponse } from 'axios';
23
import { defineEndpoint, HttpClientMixin } from './http-client.service-mixin';
34
import { HttpClientOptions, HttpError } from './types';

packages/js-utils/src/services/http-client-mixin/http-client.service-mixin.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ export function HttpClientMixin<TEndpoints extends Endpoints>(
120120
if (error instanceof HttpError) {
121121
httpError = error;
122122
} else if ((error as AxiosError).name === 'AxiosError') {
123-
const axiosError = error as AxiosError;
123+
const axiosError = error as AxiosError<object>;
124124
httpError = new HttpError({
125125
name: 'AxiosError',
126126
status: axiosError.response?.status ?? axiosError.status,

packages/js-utils/src/services/http-client-mixin/http-client.utils.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { describe, expect, it } from 'vitest';
12
import { transformFetchJson } from './http-client.utils';
23

34
describe('HttpClientUtils', () => {
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { vi } from 'vitest';
2+
import { createMockServer } from 'tests/msw/create-mock-server';
3+
import { chuckNorrisJokesHandlers } from 'tests/msw/handlers/chuck-norris-jokes.handlers';
4+
5+
createMockServer([...chuckNorrisJokesHandlers]);
6+
7+
afterEach(() => {
8+
vi.unstubAllEnvs();
9+
vi.unstubAllGlobals();
10+
});

packages/js-utils/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
{
2-
"extends": "../../tsconfig.bundler.json",
32
"include": ["./src"],
43
"compilerOptions": {
5-
/* Bundler mode */
4+
"module": "ESNext",
65
"moduleResolution": "bundler",
76
"allowImportingTsExtensions": true,
87
"resolveJsonModule": true,

packages/js-utils/vite.config.ts

+36-14
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,41 @@
11
/// <reference types="vitest" />
2-
import baseConfig from '../../vite.config';
3-
import { mergeConfig, defineConfig } from 'vite';
2+
import { defineConfig } from 'vite';
43
import { resolve } from 'path';
4+
import dts from 'vite-plugin-dts';
5+
import tsconfigPaths from 'vite-tsconfig-paths';
56

6-
export default mergeConfig(
7-
baseConfig,
8-
defineConfig({
9-
build: {
10-
lib: {
11-
entry: {
12-
main: resolve(__dirname, 'src/main.ts'),
13-
},
14-
name: '@spuxx/js-utils',
15-
formats: ['es'],
7+
export default defineConfig({
8+
plugins: [
9+
dts({
10+
include: ['src/**/*'],
11+
exclude: ['*.{test,spec}.*'],
12+
tsconfigPath: './tsconfig.json',
13+
rollupTypes: true,
14+
}),
15+
tsconfigPaths(),
16+
],
17+
build: {
18+
lib: {
19+
entry: {
20+
main: resolve(__dirname, 'src/main.ts'),
1621
},
22+
name: '@spuxx/js-utils',
23+
formats: ['es', 'cjs'],
1724
},
18-
}),
19-
);
25+
},
26+
test: {
27+
environment: 'node',
28+
globals: true,
29+
silent: true,
30+
setupFiles: './tests/vitest.setup.ts',
31+
reporters: ['default', 'junit'],
32+
outputFile: 'reports/junit/junit.xml',
33+
coverage: {
34+
provider: 'v8',
35+
all: true,
36+
include: ['**/*.ts'],
37+
reportsDirectory: 'reports/coverage',
38+
reporter: ['text', 'cobertura'],
39+
},
40+
},
41+
});

0 commit comments

Comments
 (0)