git-slot-machine 1.3.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +16 -0
- package/CHANGELOG.md +24 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +5 -1
- package/dist/api.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/patterns.js +14 -14
- package/dist/patterns.js.map +1 -1
- package/dist/utils/fetch-polyfill.d.ts +2 -0
- package/dist/utils/fetch-polyfill.d.ts.map +1 -0
- package/dist/utils/fetch-polyfill.js +12 -0
- package/dist/utils/fetch-polyfill.js.map +1 -0
- package/package.json +6 -4
- package/src/api.ts +5 -1
- package/src/patterns.ts +14 -14
- package/src/utils/fetch-polyfill.ts +13 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(npm run build:*)",
|
|
5
|
+
"Bash(git add:*)",
|
|
6
|
+
"Bash(git commit:*)",
|
|
7
|
+
"Bash(git push)",
|
|
8
|
+
"Bash(git push:*)",
|
|
9
|
+
"Bash(npm publish)",
|
|
10
|
+
"Bash(npm config set:*)",
|
|
11
|
+
"Read(//Users/than/Sites/gitslotmachine.com/**)"
|
|
12
|
+
],
|
|
13
|
+
"deny": [],
|
|
14
|
+
"ask": []
|
|
15
|
+
}
|
|
16
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.0.0] - 2025-10-17
|
|
9
|
+
|
|
10
|
+
### Breaking Changes
|
|
11
|
+
- **Complete payout rebalancing** based on actual probabilities
|
|
12
|
+
- Patterns now ordered by rarity (rarest first)
|
|
13
|
+
- Top-tier payouts massively increased:
|
|
14
|
+
- JACKPOT: 10K → 100K
|
|
15
|
+
- LUCKY SEVEN: 2.5K → 50K
|
|
16
|
+
- BIG STRAIGHT: 500 → 25K
|
|
17
|
+
- Mid-tier balanced:
|
|
18
|
+
- HEXTET: 5K → 10K
|
|
19
|
+
- FULLEST HOUSE: 2K → 5K
|
|
20
|
+
- STRAIGHT: 200 → 2.5K
|
|
21
|
+
- FIVE OF A KIND: 1K → 2K
|
|
22
|
+
- Common patterns remain profitable:
|
|
23
|
+
- THREE OF A KIND: 50 → 100
|
|
24
|
+
- TWO PAIR: 50 → 25
|
|
25
|
+
- ALL NUMBERS: 10 (unchanged, break-even)
|
|
26
|
+
- ~99% return rate for sustainable long-term play
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
- Payout curve now properly reflects mathematical probabilities
|
|
30
|
+
- Rare patterns properly rewarded relative to their actual odds
|
|
31
|
+
|
|
8
32
|
## [1.3.2] - 2025-01-16
|
|
9
33
|
|
|
10
34
|
### Added
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkBD,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkCD,wBAAsB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAuBhF;AAGD,wBAAsB,UAAU,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAoBlE;AAGD,wBAAsB,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBhF;AAGD,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAejE;AAGD,wBAAsB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAe/C"}
|
package/dist/api.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getApiUrl, getApiToken, isSyncEnabled } from './config.js';
|
|
2
|
+
import { getFetch } from './utils/fetch-polyfill.js';
|
|
2
3
|
// Fallback domains to try in order (if primary fails)
|
|
3
4
|
const FALLBACK_DOMAINS = [
|
|
4
5
|
'https://gitslotmachinecom-main-vilmm1.laravel.cloud',
|
|
@@ -22,6 +23,7 @@ export function isApiAvailable() {
|
|
|
22
23
|
// Helper to try API call with fallback domains
|
|
23
24
|
async function fetchWithFallback(endpoint, options) {
|
|
24
25
|
const configuredUrl = getApiUrl();
|
|
26
|
+
const fetchFn = await getFetch();
|
|
25
27
|
// Build list of URLs to try: configured URL first, then fallbacks (excluding duplicates)
|
|
26
28
|
const urlsToTry = [
|
|
27
29
|
configuredUrl,
|
|
@@ -30,7 +32,7 @@ async function fetchWithFallback(endpoint, options) {
|
|
|
30
32
|
for (const baseUrl of urlsToTry) {
|
|
31
33
|
try {
|
|
32
34
|
const url = `${baseUrl.replace(/\/api$/, '')}/api${endpoint}`;
|
|
33
|
-
const response = await
|
|
35
|
+
const response = await fetchFn(url, options);
|
|
34
36
|
if (response.ok) {
|
|
35
37
|
return response;
|
|
36
38
|
}
|
|
@@ -101,12 +103,14 @@ export async function createToken(githubUsername) {
|
|
|
101
103
|
}),
|
|
102
104
|
});
|
|
103
105
|
if (!response) {
|
|
106
|
+
console.error('Failed to reach API server. Please check your network connection.');
|
|
104
107
|
return null;
|
|
105
108
|
}
|
|
106
109
|
const result = await response.json();
|
|
107
110
|
return result.data?.token || null;
|
|
108
111
|
}
|
|
109
112
|
catch (error) {
|
|
113
|
+
console.error('API request failed:', error.message);
|
|
110
114
|
return null;
|
|
111
115
|
}
|
|
112
116
|
}
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
File without changes
|
package/dist/patterns.js
CHANGED
|
@@ -18,20 +18,20 @@ export var PatternType;
|
|
|
18
18
|
PatternType["NO_WIN"] = "NO_WIN";
|
|
19
19
|
})(PatternType || (PatternType = {}));
|
|
20
20
|
const PAYOUTS = {
|
|
21
|
-
[PatternType.ALL_SAME]: { name: 'JACKPOT', payout:
|
|
22
|
-
[PatternType.
|
|
23
|
-
[PatternType.
|
|
24
|
-
[PatternType.
|
|
25
|
-
[PatternType.
|
|
26
|
-
[PatternType.
|
|
27
|
-
[PatternType.
|
|
28
|
-
[PatternType.
|
|
29
|
-
[PatternType.
|
|
30
|
-
[PatternType.
|
|
31
|
-
[PatternType.
|
|
32
|
-
[PatternType.
|
|
33
|
-
[PatternType.THREE_OF_KIND]: { name: 'THREE OF A KIND', payout:
|
|
34
|
-
[PatternType.TWO_PAIR]: { name: 'TWO PAIR', payout:
|
|
21
|
+
[PatternType.ALL_SAME]: { name: 'JACKPOT', payout: 100000, description: 'All same character' },
|
|
22
|
+
[PatternType.STRAIGHT_7]: { name: 'LUCKY SEVEN', payout: 50000, description: 'Seven in a row' },
|
|
23
|
+
[PatternType.STRAIGHT_6]: { name: 'BIG STRAIGHT', payout: 25000, description: 'Six in a row' },
|
|
24
|
+
[PatternType.SIX_OF_KIND]: { name: 'HEXTET', payout: 10000, description: 'Six of a kind' },
|
|
25
|
+
[PatternType.FULLEST_HOUSE]: { name: 'FULLEST HOUSE', payout: 5000, description: '4 + 3 of a kind' },
|
|
26
|
+
[PatternType.STRAIGHT_5]: { name: 'STRAIGHT', payout: 2500, description: 'Five in a row' },
|
|
27
|
+
[PatternType.FIVE_OF_KIND]: { name: 'FIVE OF A KIND', payout: 2000, description: 'Five of a kind' },
|
|
28
|
+
[PatternType.THREE_OF_KIND_PLUS_THREE]: { name: 'DOUBLE TRIPLE', payout: 1000, description: 'Two three of a kinds' },
|
|
29
|
+
[PatternType.THREE_PAIR]: { name: 'THREE PAIR', payout: 500, description: 'Three pairs' },
|
|
30
|
+
[PatternType.FULL_HOUSE]: { name: 'FULL HOUSE', payout: 300, description: 'Three and two of a kind' },
|
|
31
|
+
[PatternType.ALL_LETTERS]: { name: 'ALPHABET SOUP', payout: 250, description: 'Only letters (a-f)' },
|
|
32
|
+
[PatternType.FOUR_OF_KIND]: { name: 'FOUR OF A KIND', payout: 200, description: 'Four of a kind' },
|
|
33
|
+
[PatternType.THREE_OF_KIND]: { name: 'THREE OF A KIND', payout: 100, description: 'Three of a kind' },
|
|
34
|
+
[PatternType.TWO_PAIR]: { name: 'TWO PAIR', payout: 25, description: 'Two pairs' },
|
|
35
35
|
[PatternType.ALL_NUMBERS]: { name: 'ALL NUMBERS', payout: 10, description: 'Only numbers (0-9)' },
|
|
36
36
|
[PatternType.NO_WIN]: { name: 'NO WIN', payout: 0, description: 'No winning pattern' }
|
|
37
37
|
};
|
package/dist/patterns.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAiBX;AAjBD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,0CAA2B,CAAA;IAC3B,wCAAyB,CAAA;IACzB,8CAA+B,CAAA;IAC/B,4CAA6B,CAAA;IAC7B,wCAAyB,CAAA;IACzB,4CAA6B,CAAA;IAC7B,0CAA2B,CAAA;IAC3B,wCAAyB,CAAA;IACzB,oEAAqD,CAAA;IACrD,wCAAyB,CAAA;IACzB,wCAAyB,CAAA;IACzB,8CAA+B,CAAA;IAC/B,oCAAqB,CAAA;IACrB,0CAA2B,CAAA;IAC3B,gCAAiB,CAAA;AACnB,CAAC,EAjBW,WAAW,KAAX,WAAW,QAiBtB;AAUD,MAAM,OAAO,GAA+E;IAC1F,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-polyfill.d.ts","sourceRoot":"","sources":["../../src/utils/fetch-polyfill.ts"],"names":[],"mappings":"AAGA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,CAStD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Polyfill fetch for Node.js < 18
|
|
2
|
+
// Node 18+ has native fetch, older versions need node-fetch
|
|
3
|
+
export async function getFetch() {
|
|
4
|
+
// Check if native fetch exists (Node 18+)
|
|
5
|
+
if (typeof globalThis.fetch !== 'undefined') {
|
|
6
|
+
return globalThis.fetch;
|
|
7
|
+
}
|
|
8
|
+
// Fall back to node-fetch for Node < 18
|
|
9
|
+
const nodeFetch = await import('node-fetch');
|
|
10
|
+
return nodeFetch.default;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=fetch-polyfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-polyfill.js","sourceRoot":"","sources":["../../src/utils/fetch-polyfill.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,4DAA4D;AAE5D,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,0CAA0C;IAC1C,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,wCAAwC;IACxC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAC7C,OAAO,SAAS,CAAC,OAAkC,CAAC;AACtD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "git-slot-machine",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Turn your git commits into a slot machine game! CLI tool with global leaderboards and win streaks.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"git-slot-machine": "
|
|
8
|
+
"git-slot-machine": "dist/index.js"
|
|
9
9
|
},
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/than/git-slot-machine.git"
|
|
12
|
+
"url": "git+https://github.com/than/git-slot-machine.git"
|
|
13
13
|
},
|
|
14
14
|
"homepage": "https://gitslotmachine.com",
|
|
15
15
|
"bugs": {
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/jest": "^30.0.0",
|
|
40
40
|
"@types/node": "^20.0.0",
|
|
41
|
+
"@types/node-fetch": "^2.6.11",
|
|
41
42
|
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
42
43
|
"@typescript-eslint/parser": "^6.0.0",
|
|
43
44
|
"eslint": "^8.0.0",
|
|
@@ -47,6 +48,7 @@
|
|
|
47
48
|
},
|
|
48
49
|
"dependencies": {
|
|
49
50
|
"chalk": "^5.3.0",
|
|
50
|
-
"commander": "^11.0.0"
|
|
51
|
+
"commander": "^11.0.0",
|
|
52
|
+
"node-fetch": "^3.3.2"
|
|
51
53
|
}
|
|
52
54
|
}
|
package/src/api.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getApiUrl, getApiToken, isSyncEnabled } from './config.js';
|
|
2
|
+
import { getFetch } from './utils/fetch-polyfill.js';
|
|
2
3
|
|
|
3
4
|
// Fallback domains to try in order (if primary fails)
|
|
4
5
|
const FALLBACK_DOMAINS = [
|
|
@@ -65,6 +66,7 @@ export interface PlayResponse {
|
|
|
65
66
|
// Helper to try API call with fallback domains
|
|
66
67
|
async function fetchWithFallback(endpoint: string, options: RequestInit): Promise<Response | null> {
|
|
67
68
|
const configuredUrl = getApiUrl();
|
|
69
|
+
const fetchFn = await getFetch();
|
|
68
70
|
|
|
69
71
|
// Build list of URLs to try: configured URL first, then fallbacks (excluding duplicates)
|
|
70
72
|
const urlsToTry = [
|
|
@@ -75,7 +77,7 @@ async function fetchWithFallback(endpoint: string, options: RequestInit): Promis
|
|
|
75
77
|
for (const baseUrl of urlsToTry) {
|
|
76
78
|
try {
|
|
77
79
|
const url = `${baseUrl.replace(/\/api$/, '')}/api${endpoint}`;
|
|
78
|
-
const response = await
|
|
80
|
+
const response = await fetchFn(url, options);
|
|
79
81
|
|
|
80
82
|
if (response.ok) {
|
|
81
83
|
return response;
|
|
@@ -156,12 +158,14 @@ export async function createToken(githubUsername: string): Promise<string | null
|
|
|
156
158
|
});
|
|
157
159
|
|
|
158
160
|
if (!response) {
|
|
161
|
+
console.error('Failed to reach API server. Please check your network connection.');
|
|
159
162
|
return null;
|
|
160
163
|
}
|
|
161
164
|
|
|
162
165
|
const result = await response.json() as ApiResponse<{ token: string }>;
|
|
163
166
|
return result.data?.token || null;
|
|
164
167
|
} catch (error) {
|
|
168
|
+
console.error('API request failed:', (error as Error).message);
|
|
165
169
|
return null;
|
|
166
170
|
}
|
|
167
171
|
}
|
package/src/patterns.ts
CHANGED
|
@@ -26,20 +26,20 @@ export interface PatternResult {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
const PAYOUTS: Record<PatternType, { name: string; payout: number; description: string }> = {
|
|
29
|
-
[PatternType.ALL_SAME]: { name: 'JACKPOT', payout:
|
|
30
|
-
[PatternType.
|
|
31
|
-
[PatternType.
|
|
32
|
-
[PatternType.
|
|
33
|
-
[PatternType.
|
|
34
|
-
[PatternType.
|
|
35
|
-
[PatternType.
|
|
36
|
-
[PatternType.
|
|
37
|
-
[PatternType.
|
|
38
|
-
[PatternType.
|
|
39
|
-
[PatternType.
|
|
40
|
-
[PatternType.
|
|
41
|
-
[PatternType.THREE_OF_KIND]: { name: 'THREE OF A KIND', payout:
|
|
42
|
-
[PatternType.TWO_PAIR]: { name: 'TWO PAIR', payout:
|
|
29
|
+
[PatternType.ALL_SAME]: { name: 'JACKPOT', payout: 100000, description: 'All same character' },
|
|
30
|
+
[PatternType.STRAIGHT_7]: { name: 'LUCKY SEVEN', payout: 50000, description: 'Seven in a row' },
|
|
31
|
+
[PatternType.STRAIGHT_6]: { name: 'BIG STRAIGHT', payout: 25000, description: 'Six in a row' },
|
|
32
|
+
[PatternType.SIX_OF_KIND]: { name: 'HEXTET', payout: 10000, description: 'Six of a kind' },
|
|
33
|
+
[PatternType.FULLEST_HOUSE]: { name: 'FULLEST HOUSE', payout: 5000, description: '4 + 3 of a kind' },
|
|
34
|
+
[PatternType.STRAIGHT_5]: { name: 'STRAIGHT', payout: 2500, description: 'Five in a row' },
|
|
35
|
+
[PatternType.FIVE_OF_KIND]: { name: 'FIVE OF A KIND', payout: 2000, description: 'Five of a kind' },
|
|
36
|
+
[PatternType.THREE_OF_KIND_PLUS_THREE]: { name: 'DOUBLE TRIPLE', payout: 1000, description: 'Two three of a kinds' },
|
|
37
|
+
[PatternType.THREE_PAIR]: { name: 'THREE PAIR', payout: 500, description: 'Three pairs' },
|
|
38
|
+
[PatternType.FULL_HOUSE]: { name: 'FULL HOUSE', payout: 300, description: 'Three and two of a kind' },
|
|
39
|
+
[PatternType.ALL_LETTERS]: { name: 'ALPHABET SOUP', payout: 250, description: 'Only letters (a-f)' },
|
|
40
|
+
[PatternType.FOUR_OF_KIND]: { name: 'FOUR OF A KIND', payout: 200, description: 'Four of a kind' },
|
|
41
|
+
[PatternType.THREE_OF_KIND]: { name: 'THREE OF A KIND', payout: 100, description: 'Three of a kind' },
|
|
42
|
+
[PatternType.TWO_PAIR]: { name: 'TWO PAIR', payout: 25, description: 'Two pairs' },
|
|
43
43
|
[PatternType.ALL_NUMBERS]: { name: 'ALL NUMBERS', payout: 10, description: 'Only numbers (0-9)' },
|
|
44
44
|
[PatternType.NO_WIN]: { name: 'NO WIN', payout: 0, description: 'No winning pattern' }
|
|
45
45
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Polyfill fetch for Node.js < 18
|
|
2
|
+
// Node 18+ has native fetch, older versions need node-fetch
|
|
3
|
+
|
|
4
|
+
export async function getFetch(): Promise<typeof fetch> {
|
|
5
|
+
// Check if native fetch exists (Node 18+)
|
|
6
|
+
if (typeof globalThis.fetch !== 'undefined') {
|
|
7
|
+
return globalThis.fetch;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Fall back to node-fetch for Node < 18
|
|
11
|
+
const nodeFetch = await import('node-fetch');
|
|
12
|
+
return nodeFetch.default as unknown as typeof fetch;
|
|
13
|
+
}
|