Skip to content

Commit acb31a2

Browse files
committed
refactor(consts): extract USER_AGENT string into constant
Replace hard-coded 'stackone-ai-node' User-Agent string with a shared constant to improve maintainability and ensure consistency across the codebase. Changes: - Add USER_AGENT constant to src/consts.ts - Update requestBuilder.ts to use USER_AGENT constant - Update rpc-client.ts to use USER_AGENT constant - Update utils/errors.ts to use USER_AGENT constant - Update requestBuilder.test.ts to use USER_AGENT constant This centralises the User-Agent value, making future updates simpler and reducing the risk of inconsistent values across different modules.
1 parent 6373cfe commit acb31a2

5 files changed

Lines changed: 15 additions & 7 deletions

File tree

src/consts.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/**
2+
* Package name used as User-Agent header
3+
*/
4+
export const USER_AGENT = 'stackone-ai-node';
5+
16
/**
27
* Default base URL for StackOne API
38
*/

src/requestBuilder.test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { http, HttpResponse } from 'msw';
22
import { server } from '../mocks/node';
3+
import { USER_AGENT } from './consts';
4+
import { RequestBuilder } from './requestBuilder';
35
import { type HttpExecuteConfig, ParameterLocation } from './types';
46
import { StackOneAPIError } from './utils/errors';
5-
import { RequestBuilder } from './requestBuilder';
67

78
describe('RequestBuilder', () => {
89
let builder: RequestBuilder;
@@ -79,7 +80,7 @@ describe('RequestBuilder', () => {
7980
const headers = builder.prepareHeaders();
8081

8182
expect(headers).toEqual({
82-
'User-Agent': 'stackone-ai-node',
83+
'User-Agent': USER_AGENT,
8384
'Initial-Header': 'test',
8485
'Custom-Header': 'value',
8586
});
@@ -170,7 +171,7 @@ describe('RequestBuilder', () => {
170171
url: 'https://api.example.com/test/path-value',
171172
method: 'GET',
172173
headers: {
173-
'User-Agent': 'stackone-ai-node',
174+
'User-Agent': USER_AGENT,
174175
'Initial-Header': 'test',
175176
},
176177
body: undefined,

src/requestBuilder.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { USER_AGENT } from './consts';
12
import {
23
type ExecuteOptions,
34
type HttpBodyType,
@@ -57,7 +58,7 @@ export class RequestBuilder {
5758
*/
5859
prepareHeaders(): Record<string, string> {
5960
return {
60-
'User-Agent': 'stackone-ai-node',
61+
'User-Agent': USER_AGENT,
6162
...this.headers,
6263
};
6364
}

src/rpc-client.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { USER_AGENT } from './consts';
12
import { STACKONE_HEADER_KEYS } from './headers';
23
import {
34
type RpcActionRequest,
@@ -68,7 +69,7 @@ export class RpcClient {
6869
const httpHeaders = {
6970
'Content-Type': 'application/json',
7071
Authorization: this.authHeader,
71-
'User-Agent': 'stackone-ai-node',
72+
'User-Agent': USER_AGENT,
7273
...forwardedHeaders,
7374
} satisfies Record<string, string>;
7475

src/utils/errors.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Type aliases for common types
1+
import { USER_AGENT } from '../consts';
22

33
/**
44
* Base exception for StackOne errors
@@ -73,7 +73,7 @@ export class StackOneAPIError extends StackOneError {
7373
// Add request headers information (for debugging)
7474
errorMessage += '\n\nRequest Headers:';
7575
errorMessage += '\n- Authorization: [REDACTED]';
76-
errorMessage += '\n- User-Agent: stackone-ai-node';
76+
errorMessage += `\n- User-Agent: ${USER_AGENT}`;
7777

7878
// Add request body information if available
7979
if (this.requestBody) {

0 commit comments

Comments
 (0)