@chkit/codegen 0.1.1 → 0.1.2-beta.1
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/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -15,5 +15,22 @@ export interface GenerateArtifactsOutput {
|
|
|
15
15
|
sql: string;
|
|
16
16
|
snapshot: Snapshot;
|
|
17
17
|
}
|
|
18
|
+
export interface GenerateEmptyMigrationInput {
|
|
19
|
+
migrationsDir: string;
|
|
20
|
+
migrationName?: string;
|
|
21
|
+
migrationId?: string;
|
|
22
|
+
cliVersion?: string;
|
|
23
|
+
now?: Date;
|
|
24
|
+
}
|
|
25
|
+
export interface GenerateEmptyMigrationOutput {
|
|
26
|
+
migrationFile: string;
|
|
27
|
+
sql: string;
|
|
28
|
+
}
|
|
18
29
|
export declare function generateArtifacts(input: GenerateArtifactsInput): Promise<GenerateArtifactsOutput>;
|
|
30
|
+
/**
|
|
31
|
+
* Scaffold a blank manual migration file. Unlike {@link generateArtifacts},
|
|
32
|
+
* this performs no schema diff and does not touch the snapshot — it just writes
|
|
33
|
+
* a timestamped `.sql` stub for the user to hand-edit.
|
|
34
|
+
*/
|
|
35
|
+
export declare function generateEmptyMigration(input: GenerateEmptyMigrationInput): Promise<GenerateEmptyMigrationOutput>;
|
|
19
36
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACd,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,aAAa,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,IAAI,CAAA;CACX;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,QAAQ,CAAA;CACnB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACd,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,aAAa,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,IAAI,CAAA;CACX;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,IAAI,CAAA;CACX;AAED,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;CACZ;AAgHD,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAqCvG;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,4BAA4B,CAAC,CAsBvC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { createSnapshot, } from '@chkit/core';
|
|
4
|
+
const EMPTY_PLAN = {
|
|
5
|
+
operations: [],
|
|
6
|
+
renameSuggestions: [],
|
|
7
|
+
riskSummary: { safe: 0, caution: 0, danger: 0 },
|
|
8
|
+
};
|
|
4
9
|
function safeName(name) {
|
|
5
10
|
return name.replace(/[^a-zA-Z0-9_-]/g, '_').toLowerCase();
|
|
6
11
|
}
|
|
@@ -31,8 +36,8 @@ async function writeNewMigrationFile(input) {
|
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
38
|
}
|
|
34
|
-
function
|
|
35
|
-
|
|
39
|
+
function buildMigrationHeader(input) {
|
|
40
|
+
return [
|
|
36
41
|
'-- chkit-migration-format: v1',
|
|
37
42
|
`-- generated-at: ${input.generatedAt}`,
|
|
38
43
|
`-- cli-version: ${input.cliVersion}`,
|
|
@@ -41,6 +46,9 @@ function buildMigrationContent(input) {
|
|
|
41
46
|
`-- rename-suggestion-count: ${input.plan.renameSuggestions.length}`,
|
|
42
47
|
`-- risk-summary: safe=${input.plan.riskSummary.safe}, caution=${input.plan.riskSummary.caution}, danger=${input.plan.riskSummary.danger}`,
|
|
43
48
|
];
|
|
49
|
+
}
|
|
50
|
+
function buildMigrationContent(input) {
|
|
51
|
+
const header = buildMigrationHeader(input);
|
|
44
52
|
const renameHints = input.plan.renameSuggestions.map((suggestion) => `-- rename-suggestion: kind=${suggestion.kind} table=${suggestion.database}.${suggestion.table} from=${suggestion.from} to=${suggestion.to} confidence=${suggestion.confidence}`);
|
|
45
53
|
const body = input.plan.operations
|
|
46
54
|
.map((op) => [`-- operation: ${op.type} key=${op.key} risk=${op.risk}`, op.sql].join('\n'))
|
|
@@ -50,6 +58,19 @@ function buildMigrationContent(input) {
|
|
|
50
58
|
return `${withHints.join('\n')}\n`;
|
|
51
59
|
return `${withHints.join('\n')}\n\n${body}\n`;
|
|
52
60
|
}
|
|
61
|
+
function buildEmptyMigrationContent(input) {
|
|
62
|
+
const header = buildMigrationHeader({
|
|
63
|
+
generatedAt: input.generatedAt,
|
|
64
|
+
cliVersion: input.cliVersion,
|
|
65
|
+
definitionCount: 0,
|
|
66
|
+
plan: EMPTY_PLAN,
|
|
67
|
+
});
|
|
68
|
+
const placeholder = [
|
|
69
|
+
'-- Empty migration scaffold. Write your SQL statements below.',
|
|
70
|
+
'-- Statements run in order and are separated by semicolons.',
|
|
71
|
+
];
|
|
72
|
+
return `${header.join('\n')}\n\n${placeholder.join('\n')}\n`;
|
|
73
|
+
}
|
|
53
74
|
export async function generateArtifacts(input) {
|
|
54
75
|
const now = input.now ?? new Date();
|
|
55
76
|
const generatedTimestamp = now.toISOString().replace(/[-:TZ.]/g, '').slice(0, 14);
|
|
@@ -83,4 +104,28 @@ export async function generateArtifacts(input) {
|
|
|
83
104
|
snapshot,
|
|
84
105
|
};
|
|
85
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Scaffold a blank manual migration file. Unlike {@link generateArtifacts},
|
|
109
|
+
* this performs no schema diff and does not touch the snapshot — it just writes
|
|
110
|
+
* a timestamped `.sql` stub for the user to hand-edit.
|
|
111
|
+
*/
|
|
112
|
+
export async function generateEmptyMigration(input) {
|
|
113
|
+
const now = input.now ?? new Date();
|
|
114
|
+
const generatedTimestamp = now.toISOString().replace(/[-:TZ.]/g, '').slice(0, 14);
|
|
115
|
+
const customMigrationId = input.migrationId ? safeMigrationId(input.migrationId) : '';
|
|
116
|
+
const timestamp = customMigrationId || generatedTimestamp;
|
|
117
|
+
const migrationName = safeName(input.migrationName ?? 'manual');
|
|
118
|
+
await mkdir(input.migrationsDir, { recursive: true });
|
|
119
|
+
const sql = buildEmptyMigrationContent({
|
|
120
|
+
generatedAt: now.toISOString(),
|
|
121
|
+
cliVersion: input.cliVersion ?? '0.1.0',
|
|
122
|
+
});
|
|
123
|
+
const migrationFile = await writeNewMigrationFile({
|
|
124
|
+
migrationsDir: input.migrationsDir,
|
|
125
|
+
timestamp,
|
|
126
|
+
migrationName,
|
|
127
|
+
sql,
|
|
128
|
+
});
|
|
129
|
+
return { migrationFile, sql };
|
|
130
|
+
}
|
|
86
131
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EACL,cAAc,GAIf,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chkit/codegen",
|
|
3
|
-
"version": "0.1.1",
|
|
3
|
+
"version": "0.1.2-beta.1",
|
|
4
4
|
"description": "Migration artifact generator for chkit",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "ObsessionDB",
|
|
@@ -40,6 +40,6 @@
|
|
|
40
40
|
"clean": "rm -rf dist"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@chkit/core": "0.1.1"
|
|
43
|
+
"@chkit/core": "0.1.2-beta.1"
|
|
44
44
|
}
|
|
45
45
|
}
|