@t1mmen/srtd 0.2.2 → 0.4.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/README.md +170 -146
- package/dist/__tests__/vitest.setup.js +41 -25
- package/dist/__tests__/vitest.setup.js.map +1 -1
- package/dist/__tests__/watch.test.js +0 -1
- package/dist/__tests__/watch.test.js.map +1 -1
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/_app.js +31 -3
- package/dist/commands/_app.js.map +1 -1
- package/dist/commands/apply.d.ts +13 -1
- package/dist/commands/apply.js +19 -6
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/build.d.ts +13 -1
- package/dist/commands/build.js +14 -4
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/clear.d.ts +2 -0
- package/dist/commands/clear.js +45 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/index.js +25 -10
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/register.js +9 -6
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/watch.js +121 -117
- package/dist/commands/watch.js.map +1 -1
- package/dist/components/Branding.js +5 -4
- package/dist/components/Branding.js.map +1 -1
- package/dist/components/Quittable.d.ts +6 -0
- package/dist/components/Quittable.js +36 -0
- package/dist/components/Quittable.js.map +1 -0
- package/dist/hooks/useDatabaseConnection.d.ts +7 -0
- package/dist/hooks/useDatabaseConnection.js +68 -0
- package/dist/hooks/useDatabaseConnection.js.map +1 -0
- package/dist/hooks/useTemplateManager.d.ts +22 -0
- package/dist/hooks/useTemplateManager.js +124 -0
- package/dist/hooks/useTemplateManager.js.map +1 -0
- package/dist/lib/templateManager.d.ts +12 -5
- package/dist/lib/templateManager.js +166 -60
- package/dist/lib/templateManager.js.map +1 -1
- package/dist/lib/templateManager.test.js +452 -15
- package/dist/lib/templateManager.test.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/utils/config.d.ts +2 -0
- package/dist/utils/config.js +27 -40
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/databaseConnection.d.ts +5 -1
- package/dist/utils/databaseConnection.js +40 -9
- package/dist/utils/databaseConnection.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -0
- package/package.json +12 -7
- package/dist/commands/help.d.ts +0 -1
- package/dist/commands/help.js +0 -2
- package/dist/commands/help.js.map +0 -1
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { CLIConfig } from '../types.js';
|
|
2
2
|
export declare function getConfig(dir?: string): Promise<CLIConfig>;
|
|
3
3
|
export declare function saveConfig(baseDir: string, config: Partial<CLIConfig>): Promise<void>;
|
|
4
|
+
export declare function resetConfig(baseDir: string): Promise<void>;
|
|
5
|
+
export declare function clearBuildLogs(baseDir: string, type: 'local' | 'shared' | 'both'): Promise<void>;
|
package/dist/utils/config.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { CONFIG_FILE } from '../constants.js';
|
|
4
|
+
import { logger } from './logger.js';
|
|
4
5
|
const defaultConfig = {
|
|
5
6
|
wipIndicator: '.wip',
|
|
7
|
+
migrationPrefix: 'srtd',
|
|
6
8
|
filter: '**/*.sql',
|
|
7
9
|
banner: 'You very likely **DO NOT** want to manually edit this generated file.',
|
|
8
10
|
footer: '',
|
|
@@ -33,46 +35,31 @@ export async function getConfig(dir = process.cwd()) {
|
|
|
33
35
|
export async function saveConfig(baseDir, config) {
|
|
34
36
|
const configPath = path.join(baseDir, CONFIG_FILE);
|
|
35
37
|
const finalConfig = { ...defaultConfig, ...config };
|
|
36
|
-
await fs.writeFile(configPath, JSON.stringify(finalConfig, null, 2))
|
|
38
|
+
await fs.writeFile(configPath, JSON.stringify(finalConfig, null, 2)).catch(e => {
|
|
39
|
+
logger.error(`Failed to save config: ${e.message}`);
|
|
40
|
+
});
|
|
37
41
|
cachedConfig = finalConfig;
|
|
38
42
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// };
|
|
62
|
-
// export async function getConfig(dir?: string): Promise<CLIConfig> {
|
|
63
|
-
// const baseDir = dir || process.cwd();
|
|
64
|
-
// const configPath = path.join(baseDir, CONFIG_FILE);
|
|
65
|
-
// try {
|
|
66
|
-
// const content = await fs.readFile(configPath, 'utf-8');
|
|
67
|
-
// const userConfig = JSON.parse(content);
|
|
68
|
-
// return { ...defaultConfig, ...userConfig };
|
|
69
|
-
// } catch {
|
|
70
|
-
// return defaultConfig;
|
|
71
|
-
// }
|
|
72
|
-
// }
|
|
73
|
-
// export async function saveConfig(baseDir: string, config: Partial<CLIConfig>): Promise<void> {
|
|
74
|
-
// const configPath = path.join(baseDir, CONFIG_FILE);
|
|
75
|
-
// const finalConfig = { ...defaultConfig, ...config };
|
|
76
|
-
// await fs.writeFile(configPath, JSON.stringify(finalConfig, null, 2));
|
|
77
|
-
// }
|
|
43
|
+
export async function resetConfig(baseDir) {
|
|
44
|
+
cachedConfig = defaultConfig;
|
|
45
|
+
await fs.unlink(path.join(baseDir, CONFIG_FILE)).catch(() => {
|
|
46
|
+
/* ignore */
|
|
47
|
+
});
|
|
48
|
+
await saveConfig(baseDir, {});
|
|
49
|
+
}
|
|
50
|
+
export async function clearBuildLogs(baseDir, type) {
|
|
51
|
+
const config = cachedConfig || defaultConfig;
|
|
52
|
+
const ops = [];
|
|
53
|
+
if (type === 'local' || type === 'both') {
|
|
54
|
+
ops.push(fs.unlink(path.join(baseDir, config.localBuildLog)).catch(() => {
|
|
55
|
+
/* ignore */
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
if (type === 'shared' || type === 'both') {
|
|
59
|
+
ops.push(fs.unlink(path.join(baseDir, config.buildLog)).catch(() => {
|
|
60
|
+
/* ignore */
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
await Promise.all(ops);
|
|
64
|
+
}
|
|
78
65
|
//# sourceMappingURL=config.js.map
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import pg from 'pg';
|
|
2
|
-
export declare
|
|
2
|
+
export declare const RETRY_DELAY = 1000;
|
|
3
|
+
export declare function connect(params?: {
|
|
4
|
+
silent?: boolean;
|
|
5
|
+
}): Promise<pg.PoolClient>;
|
|
3
6
|
export declare function disconnect(): Promise<void>;
|
|
7
|
+
export declare function testConnection(): Promise<boolean>;
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
// utils/
|
|
1
|
+
// utils/databaseConnection.ts
|
|
2
2
|
import pg from 'pg';
|
|
3
3
|
import { getConfig } from './config.js';
|
|
4
4
|
import { logger } from './logger.js';
|
|
5
5
|
let pool;
|
|
6
6
|
let connectionAttempts = 0;
|
|
7
7
|
const MAX_RETRIES = 3;
|
|
8
|
-
const RETRY_DELAY = 1000;
|
|
8
|
+
export const RETRY_DELAY = 1000;
|
|
9
9
|
async function createPool() {
|
|
10
10
|
const config = await getConfig(process.cwd());
|
|
11
11
|
return new pg.Pool({
|
|
12
12
|
connectionString: config.pgConnection,
|
|
13
|
-
connectionTimeoutMillis:
|
|
13
|
+
connectionTimeoutMillis: 500,
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
async function retryConnection() {
|
|
16
|
+
async function retryConnection(params) {
|
|
17
|
+
const { silent = true } = params || {};
|
|
17
18
|
connectionAttempts++;
|
|
18
19
|
logger.debug(`Connection attempt ${connectionAttempts}`);
|
|
19
20
|
try {
|
|
@@ -23,23 +24,53 @@ async function retryConnection() {
|
|
|
23
24
|
}
|
|
24
25
|
catch (err) {
|
|
25
26
|
if (connectionAttempts < MAX_RETRIES) {
|
|
26
|
-
|
|
27
|
+
if (!silent) {
|
|
28
|
+
logger.warn(`Connection failed, retrying in ${RETRY_DELAY}ms...`);
|
|
29
|
+
}
|
|
27
30
|
await new Promise(resolve => setTimeout(resolve, RETRY_DELAY));
|
|
28
|
-
return retryConnection();
|
|
31
|
+
return retryConnection(params);
|
|
29
32
|
}
|
|
30
33
|
throw new Error(`Database connection failed after ${MAX_RETRIES} attempts: ${err}`);
|
|
31
34
|
}
|
|
32
35
|
}
|
|
33
|
-
export async function connect() {
|
|
36
|
+
export async function connect(params) {
|
|
34
37
|
connectionAttempts = 0;
|
|
35
|
-
return retryConnection();
|
|
38
|
+
return retryConnection(params);
|
|
36
39
|
}
|
|
37
40
|
export async function disconnect() {
|
|
38
41
|
if (pool) {
|
|
42
|
+
// Add poolPendingCount check to avoid hanging on
|
|
43
|
+
// pending queries during shutdown
|
|
44
|
+
if (pool.totalCount !== pool.idleCount) {
|
|
45
|
+
await new Promise(resolve => setTimeout(resolve, RETRY_DELAY));
|
|
46
|
+
}
|
|
39
47
|
await pool.end();
|
|
40
48
|
pool = undefined;
|
|
41
49
|
}
|
|
42
50
|
return;
|
|
43
51
|
}
|
|
44
|
-
|
|
52
|
+
export async function testConnection() {
|
|
53
|
+
try {
|
|
54
|
+
const client = await connect();
|
|
55
|
+
await client.query('SELECT 1');
|
|
56
|
+
client.release();
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function cleanup() {
|
|
64
|
+
// Sync disconnect since exit handlers must be synchronous
|
|
65
|
+
try {
|
|
66
|
+
void disconnect();
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
logger.error(`Error disconnecting from database: ${String(e)}`);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
process.exit(0);
|
|
73
|
+
}
|
|
74
|
+
process.on('SIGTERM', cleanup);
|
|
75
|
+
process.on('SIGINT', cleanup);
|
|
45
76
|
//# sourceMappingURL=databaseConnection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"databaseConnection.js","sourceRoot":"","sources":["../../src/utils/databaseConnection.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"databaseConnection.js","sourceRoot":"","sources":["../../src/utils/databaseConnection.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/logger.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@t1mmen/srtd",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Supabase Repeatable Template Definitions (srtd): 🪄 Live-reloading SQL templates for Supabase DX. Make your database changes reviewable and migrations maintainable! 🚀",
|
|
6
6
|
"bin": {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"node": ">=20"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
|
+
"clean": "rm -rf dist; rm -rf build; rm -rf coverage; npm run supabase:stop",
|
|
14
15
|
"changeset": "changeset",
|
|
15
16
|
"version": "changeset version",
|
|
16
17
|
"release": "npm run build && changeset publish",
|
|
@@ -20,9 +21,11 @@
|
|
|
20
21
|
"format": "biome format . --write",
|
|
21
22
|
"dev": "tsc --watch",
|
|
22
23
|
"test": "vitest",
|
|
23
|
-
"test:coverage": "vitest run --coverage",
|
|
24
|
-
"start": "
|
|
25
|
-
"repomix": "npx repomix"
|
|
24
|
+
"test:coverage": "vitest run --coverage --reporter=junit --outputFile=test-report.junit.xml",
|
|
25
|
+
"start": "tsx src/cli.tsx",
|
|
26
|
+
"repomix": "mkdir build; npx repomix",
|
|
27
|
+
"supabase:start": "npx supabase start",
|
|
28
|
+
"supabase:stop": "npx supabase stop"
|
|
26
29
|
},
|
|
27
30
|
"files": [
|
|
28
31
|
"dist"
|
|
@@ -70,22 +73,24 @@
|
|
|
70
73
|
"pastel": "^3.0.0",
|
|
71
74
|
"pg": "^8.13.1",
|
|
72
75
|
"react": "^18.3.0",
|
|
76
|
+
"update-notifier": "^7.3.1",
|
|
73
77
|
"zod": "^3.24.1"
|
|
74
78
|
},
|
|
75
79
|
"devDependencies": {
|
|
76
80
|
"@biomejs/biome": "1.9.4",
|
|
77
81
|
"@changesets/cli": "^2.27.11",
|
|
78
82
|
"@sindresorhus/tsconfig": "^7.0.0",
|
|
83
|
+
"@types/glob": "^8.1.0",
|
|
84
|
+
"@types/node": "^20.17.10",
|
|
79
85
|
"@types/pg": "^8.11.10",
|
|
80
86
|
"@types/react": "^18.3.0",
|
|
87
|
+
"@types/update-notifier": "^6.0.8",
|
|
81
88
|
"@vitest/coverage-v8": "^2.1.8",
|
|
82
89
|
"chalk": "^5.4.1",
|
|
83
90
|
"ink-testing-library": "^4.0.0",
|
|
84
91
|
"lefthook": "^1.10.1",
|
|
85
92
|
"tsx": "^4.19.2",
|
|
86
93
|
"typescript": "^5.7.2",
|
|
87
|
-
"vitest": "^2.1.8"
|
|
88
|
-
"@types/glob": "^8.1.0",
|
|
89
|
-
"@types/node": "^20.17.10"
|
|
94
|
+
"vitest": "^2.1.8"
|
|
90
95
|
}
|
|
91
96
|
}
|
package/dist/commands/help.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/commands/help.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.tsx"],"names":[],"mappings":""}
|