Skip to content

Commit 39a79dd

Browse files
committed
versions
1 parent 08cdcd1 commit 39a79dd

File tree

7 files changed

+104
-11
lines changed

7 files changed

+104
-11
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
"build:enums": "node scripts/build-enums.js",
1818
"prepare:enums": "node scripts/prepare-enums.js",
1919
"publish:types": "node scripts/publish-types.js",
20-
"publish:enums": "node scripts/publish-enums.js"
20+
"publish:enums": "node scripts/publish-enums.js",
21+
"update:versions-types": "node scripts/update-versions-types.js"
2122
},
2223
"devDependencies": {
2324
"@types/node": "^20.0.0",

scripts/update-versions-types.js

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
#!/usr/bin/env node
2+
3+
const fs = require('fs');
4+
const path = require('path');
5+
const { execSync } = require('child_process');
6+
7+
console.log('🔄 Updating @pgsql/types versions in versions/* packages...\n');
8+
9+
// Fetch dist-tags for @pgsql/types from npm
10+
console.log('📡 Fetching latest @pgsql/types versions from npm dist-tags...');
11+
let distTags;
12+
try {
13+
const npmOutput = execSync('npm view @pgsql/types dist-tags --json', { encoding: 'utf8' });
14+
distTags = JSON.parse(npmOutput);
15+
} catch (error) {
16+
console.error('❌ Failed to fetch npm data:', error.message);
17+
process.exit(1);
18+
}
19+
20+
// Extract versions for PostgreSQL 13-17
21+
const typeVersions = {};
22+
for (let pgVersion = 13; pgVersion <= 17; pgVersion++) {
23+
const tag = `pg${pgVersion}`;
24+
if (distTags[tag]) {
25+
typeVersions[pgVersion.toString()] = distTags[tag];
26+
}
27+
}
28+
29+
console.log('\n📦 Found latest versions from npm:');
30+
Object.entries(typeVersions).sort(([a], [b]) => parseInt(a) - parseInt(b)).forEach(([major, version]) => {
31+
console.log(` PostgreSQL ${major} → @pgsql/types@${version}`);
32+
});
33+
console.log();
34+
35+
// Get all version directories
36+
const versionsDir = path.join(__dirname, '..', 'versions');
37+
const versionDirs = fs.readdirSync(versionsDir)
38+
.filter(dir => /^\d+$/.test(dir))
39+
.sort((a, b) => parseInt(a) - parseInt(b));
40+
41+
let updatedCount = 0;
42+
43+
versionDirs.forEach(version => {
44+
const packageJsonPath = path.join(versionsDir, version, 'package.json');
45+
46+
if (!fs.existsSync(packageJsonPath)) {
47+
console.log(`⚠️ No package.json found for version ${version}`);
48+
return;
49+
}
50+
51+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
52+
const targetTypeVersion = typeVersions[version];
53+
54+
if (!targetTypeVersion) {
55+
console.log(`⚠️ No type version mapping found for PostgreSQL ${version}`);
56+
return;
57+
}
58+
59+
const currentTypeVersion = packageJson.dependencies?.['@pgsql/types'];
60+
const expectedTypeVersion = `^${targetTypeVersion}`;
61+
62+
if (currentTypeVersion === expectedTypeVersion) {
63+
console.log(`✅ Version ${version}: @pgsql/types already up to date (${currentTypeVersion})`);
64+
return;
65+
}
66+
67+
// Update the dependency
68+
if (!packageJson.dependencies) {
69+
packageJson.dependencies = {};
70+
}
71+
72+
packageJson.dependencies['@pgsql/types'] = expectedTypeVersion;
73+
74+
// Write back the updated package.json
75+
fs.writeFileSync(
76+
packageJsonPath,
77+
JSON.stringify(packageJson, null, 2) + '\n',
78+
'utf8'
79+
);
80+
81+
console.log(`📦 Version ${version}: Updated @pgsql/types from ${currentTypeVersion || 'none'} to ${expectedTypeVersion}`);
82+
updatedCount++;
83+
});
84+
85+
console.log(`\n✨ Updated ${updatedCount} package(s)`);
86+
87+
if (updatedCount > 0) {
88+
console.log('\n💡 Next steps:');
89+
console.log(' 1. Run "pnpm install" to update lockfile');
90+
console.log(' 2. Test the changes');
91+
console.log(' 3. Commit the updates');
92+
}

versions/13/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
},
3939
"devDependencies": {},
4040
"dependencies": {
41-
"@pgsql/types": "^13.10.0"
41+
"@pgsql/types": "^13.11.0"
4242
},
4343
"keywords": [
4444
"sql",
@@ -49,4 +49,4 @@
4949
"plpgsql",
5050
"database"
5151
]
52-
}
52+
}

versions/14/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
},
3939
"devDependencies": {},
4040
"dependencies": {
41-
"@pgsql/types": "^14.0.0"
41+
"@pgsql/types": "^14.1.0"
4242
},
4343
"keywords": [
4444
"sql",
@@ -49,4 +49,4 @@
4949
"plpgsql",
5050
"database"
5151
]
52-
}
52+
}

versions/15/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
},
3939
"devDependencies": {},
4040
"dependencies": {
41-
"@pgsql/types": "^15.0.2"
41+
"@pgsql/types": "^15.1.0"
4242
},
4343
"keywords": [
4444
"sql",
@@ -49,4 +49,4 @@
4949
"plpgsql",
5050
"database"
5151
]
52-
}
52+
}

versions/16/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
},
3939
"devDependencies": {},
4040
"dependencies": {
41-
"@pgsql/types": "^16.0.0"
41+
"@pgsql/types": "^16.1.0"
4242
},
4343
"keywords": [
4444
"sql",
@@ -49,4 +49,4 @@
4949
"plpgsql",
5050
"database"
5151
]
52-
}
52+
}

versions/17/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
},
3939
"devDependencies": {},
4040
"dependencies": {
41-
"@pgsql/types": "^17.4.2"
41+
"@pgsql/types": "^17.6.0"
4242
},
4343
"keywords": [
4444
"sql",
@@ -49,4 +49,4 @@
4949
"plpgsql",
5050
"database"
5151
]
52-
}
52+
}

0 commit comments

Comments
 (0)