Skip to content

Commit 1653ae6

Browse files
committed
chore: create script for generating deno.json file
1 parent 66135de commit 1653ae6

File tree

7 files changed

+66
-15
lines changed

7 files changed

+66
-15
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ jobs:
9595
9696
- name: Run Deno tests
9797
run: |
98-
cd test/deno && npm test || npm test
98+
cd test/deno
99+
npm run setup-deps
100+
npm test || npm test
99101
100102
- name: Stop Supabase
101103
run: |

package-lock.json

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"@sebbo2002/semantic-release-jsr": "^1.0.0",
5555
"@solana/wallet-standard-features": "^1.3.0",
5656
"@types/jest": "^29.2.5",
57-
"husky": "^4.3.0",
57+
"husky": "^4.3.8",
5858
"jest": "^29.3.1",
5959
"npm-run-all": "^4.1.5",
6060
"prettier": "^2.5.1",

test/deno/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
deno.json

test/deno/deno.json

Lines changed: 0 additions & 11 deletions
This file was deleted.

test/deno/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"name": "test-deno",
33
"private": true,
44
"scripts": {
5-
"test": "deno test --allow-all --unstable-sloppy-imports integration.test.ts"
5+
"test": "deno test --allow-all --unstable-sloppy-imports integration.test.ts",
6+
"setup-deps": "node setup-deps.js"
67
},
78
"dependencies": {
89
"@supabase/supabase-js": "file:../../"

test/deno/setup-deps.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/usr/bin/env node
2+
3+
const fs = require('node:fs')
4+
const path = require('node:path')
5+
6+
// Get the directory of the script
7+
const scriptDir = __dirname
8+
const projectRoot = path.dirname(path.dirname(scriptDir))
9+
10+
// Read package-lock.json
11+
const packageLockPath = path.join(projectRoot, 'package-lock.json')
12+
const packageLock = JSON.parse(fs.readFileSync(packageLockPath, 'utf8'))
13+
14+
// Extract versions from package-lock.json
15+
const getVersion = (packageName) => {
16+
const packagePath = `node_modules/${packageName}`
17+
return packageLock.packages[packagePath]?.version
18+
}
19+
20+
const versions = {
21+
realtime: getVersion('@supabase/realtime-js'),
22+
functions: getVersion('@supabase/functions-js'),
23+
postgrest: getVersion('@supabase/postgrest-js'),
24+
auth: getVersion('@supabase/auth-js'),
25+
storage: getVersion('@supabase/storage-js'),
26+
node_fetch: getVersion('@supabase/node-fetch'),
27+
}
28+
29+
// Read or create deno.json
30+
const denoJsonPath = path.join(scriptDir, 'deno.json')
31+
let denoJson = {
32+
lock: false,
33+
imports: {},
34+
}
35+
36+
try {
37+
if (fs.existsSync(denoJsonPath)) {
38+
denoJson = JSON.parse(fs.readFileSync(denoJsonPath, 'utf8'))
39+
}
40+
} catch (error) {
41+
console.warn('Warning: Could not read existing deno.json, creating new one')
42+
}
43+
44+
// Update imports in deno.json
45+
denoJson.imports = {
46+
'@supabase/realtime-js': `npm:@supabase/realtime-js@${versions.realtime}`,
47+
'@supabase/functions-js': `npm:@supabase/functions-js@${versions.functions}`,
48+
'@supabase/postgrest-js': `npm:@supabase/postgrest-js@${versions.postgrest}`,
49+
'@supabase/auth-js': `npm:@supabase/auth-js@${versions.auth}`,
50+
'@supabase/storage-js': `npm:@supabase/storage-js@${versions.storage}`,
51+
'@supabase/node-fetch': `npm:@supabase/node-fetch@${versions.node_fetch}`,
52+
}
53+
54+
// Write updated deno.json
55+
fs.writeFileSync(denoJsonPath, JSON.stringify(denoJson, null, 2) + '\n')
56+
57+
console.log('Updated deno.json with versions from package-lock.json')

0 commit comments

Comments
 (0)