@deessejs/cli 0.6.23 → 0.6.25
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/commands/admin/create.d.ts.map +1 -1
- package/dist/commands/admin/create.js +14 -23
- package/dist/commands/admin/create.js.map +1 -1
- package/package.json +2 -1
- package/dist/commands/admin/create.d.ts +0 -14
- package/dist/commands/admin-create.d.ts +0 -16
- package/dist/commands/admin-create.d.ts.map +0 -1
- package/dist/commands/admin-create.js +0 -264
- package/dist/commands/admin-create.js.map +0 -1
- package/dist/commands/admin.d.ts +0 -29
- package/dist/commands/admin.d.ts.map +0 -1
- package/dist/commands/admin.js +0 -22
- package/dist/commands/admin.js.map +0 -1
- package/dist/commands/db/generate.d.ts +0 -11
- package/dist/commands/db/generate.d.ts.map +0 -1
- package/dist/commands/db/generate.js +0 -31
- package/dist/commands/db/generate.js.map +0 -1
- package/dist/commands/db/index.d.ts +0 -15
- package/dist/commands/db/index.d.ts.map +0 -1
- package/dist/commands/db/index.js +0 -100
- package/dist/commands/db/index.js.map +0 -1
- package/dist/commands/db/migrate.d.ts +0 -16
- package/dist/commands/db/migrate.d.ts.map +0 -1
- package/dist/commands/db/migrate.js +0 -75
- package/dist/commands/db/migrate.js.map +0 -1
- package/dist/commands/db/push.d.ts +0 -12
- package/dist/commands/db/push.d.ts.map +0 -1
- package/dist/commands/db/push.js +0 -39
- package/dist/commands/db/push.js.map +0 -1
- package/dist/commands/db-generate.d.ts +0 -14
- package/dist/commands/db-generate.d.ts.map +0 -1
- package/dist/commands/db-generate.js +0 -56
- package/dist/commands/db-generate.js.map +0 -1
- package/dist/commands/db-introspect.d.ts +0 -14
- package/dist/commands/db-introspect.d.ts.map +0 -1
- package/dist/commands/db-introspect.js +0 -34
- package/dist/commands/db-introspect.js.map +0 -1
- package/dist/commands/db-migrate.d.ts +0 -16
- package/dist/commands/db-migrate.d.ts.map +0 -1
- package/dist/commands/db-migrate.js +0 -75
- package/dist/commands/db-migrate.js.map +0 -1
- package/dist/commands/db-push.d.ts +0 -16
- package/dist/commands/db-push.d.ts.map +0 -1
- package/dist/commands/db-push.js +0 -67
- package/dist/commands/db-push.js.map +0 -1
- package/dist/commands/db-studio.d.ts +0 -15
- package/dist/commands/db-studio.d.ts.map +0 -1
- package/dist/commands/db-studio.js +0 -49
- package/dist/commands/db-studio.js.map +0 -1
- package/dist/commands/db.d.ts +0 -15
- package/dist/commands/db.d.ts.map +0 -1
- package/dist/commands/db.js +0 -100
- package/dist/commands/db.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -167
- package/dist/index.js.map +0 -1
- package/dist/lib/admin/create.d.ts +0 -33
- package/dist/lib/admin/create.d.ts.map +0 -1
- package/dist/lib/admin/create.js +0 -46
- package/dist/lib/admin/create.js.map +0 -1
- package/dist/lib/config/loader.d.ts +0 -77
- package/dist/lib/config/loader.d.ts.map +0 -1
- package/dist/lib/config/loader.js +0 -199
- package/dist/lib/config/loader.js.map +0 -1
- package/dist/lib/db/auth-schema.d.ts +0 -25
- package/dist/lib/db/auth-schema.d.ts.map +0 -1
- package/dist/lib/db/auth-schema.js +0 -111
- package/dist/lib/db/auth-schema.js.map +0 -1
- package/dist/lib/db/schema.d.ts +0 -43
- package/dist/lib/db/schema.d.ts.map +0 -1
- package/dist/lib/db/schema.js +0 -144
- package/dist/lib/db/schema.js.map +0 -1
- package/dist/lib/index.d.ts +0 -5
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -6
- package/dist/lib/index.js.map +0 -1
- package/dist/utils/config.d.ts +0 -15
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -47
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/dialect.d.ts +0 -23
- package/dist/utils/dialect.d.ts.map +0 -1
- package/dist/utils/dialect.js +0 -82
- package/dist/utils/dialect.js.map +0 -1
- package/dist/utils/schema-generator.d.ts +0 -25
- package/dist/utils/schema-generator.d.ts.map +0 -1
- package/dist/utils/schema-generator.js +0 -157
- package/dist/utils/schema-generator.js.map +0 -1
- package/dist/utils/schema-loader.d.ts +0 -16
- package/dist/utils/schema-loader.d.ts.map +0 -1
- package/dist/utils/schema-loader.js +0 -46
- package/dist/utils/schema-loader.js.map +0 -1
package/dist/utils/dialect.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dialect detection utility
|
|
3
|
-
*
|
|
4
|
-
* Detects the database dialect from a Drizzle database instance.
|
|
5
|
-
* Supports PostgreSQL, MySQL, and SQLite.
|
|
6
|
-
*/
|
|
7
|
-
export type Dialect = 'postgresql' | 'mysql' | 'sqlite';
|
|
8
|
-
/**
|
|
9
|
-
* Detect the database dialect from a Drizzle database instance
|
|
10
|
-
*/
|
|
11
|
-
export declare function detectDialect(db: unknown): Dialect;
|
|
12
|
-
/**
|
|
13
|
-
* Get connection credentials from a database instance
|
|
14
|
-
*/
|
|
15
|
-
export interface ConnectionCredentials {
|
|
16
|
-
host: string;
|
|
17
|
-
port: number;
|
|
18
|
-
user: string;
|
|
19
|
-
password: string;
|
|
20
|
-
database: string;
|
|
21
|
-
}
|
|
22
|
-
export declare function getConnectionCredentials(db: unknown): ConnectionCredentials;
|
|
23
|
-
//# sourceMappingURL=dialect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../src/utils/dialect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CA6ClD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,OAAO,GAAG,qBAAqB,CA6C3E"}
|
package/dist/utils/dialect.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dialect detection utility
|
|
3
|
-
*
|
|
4
|
-
* Detects the database dialect from a Drizzle database instance.
|
|
5
|
-
* Supports PostgreSQL, MySQL, and SQLite.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Detect the database dialect from a Drizzle database instance
|
|
9
|
-
*/
|
|
10
|
-
export function detectDialect(db) {
|
|
11
|
-
if (!db || typeof db !== 'object') {
|
|
12
|
-
throw new Error('Invalid database instance');
|
|
13
|
-
}
|
|
14
|
-
const dbObj = db;
|
|
15
|
-
const client = dbObj['$client'];
|
|
16
|
-
if (!client) {
|
|
17
|
-
throw new Error('Invalid database instance: no $client');
|
|
18
|
-
}
|
|
19
|
-
// For pg Pool - has query method
|
|
20
|
-
if (client['query'] !== undefined &&
|
|
21
|
-
typeof client['query'] === 'function') {
|
|
22
|
-
return 'postgresql';
|
|
23
|
-
}
|
|
24
|
-
// For postgres-js client - has options
|
|
25
|
-
if (client['options'] !== undefined) {
|
|
26
|
-
return 'postgresql';
|
|
27
|
-
}
|
|
28
|
-
// For mysql2 - has connection
|
|
29
|
-
if (client['connection'] !== undefined &&
|
|
30
|
-
client['query'] === undefined) {
|
|
31
|
-
return 'mysql';
|
|
32
|
-
}
|
|
33
|
-
// For SQLite (better-sqlite3 or libsql)
|
|
34
|
-
if (client['name'] === 'sqlite' ||
|
|
35
|
-
client['open'] !== undefined) {
|
|
36
|
-
return 'sqlite';
|
|
37
|
-
}
|
|
38
|
-
// Default to PostgreSQL as it's the most common
|
|
39
|
-
return 'postgresql';
|
|
40
|
-
}
|
|
41
|
-
export function getConnectionCredentials(db) {
|
|
42
|
-
const dbObj = db;
|
|
43
|
-
const client = dbObj['$client'];
|
|
44
|
-
if (!client) {
|
|
45
|
-
throw new Error('Cannot extract connection credentials: database instance has no $client');
|
|
46
|
-
}
|
|
47
|
-
// For pg Pool - has connectionParameters
|
|
48
|
-
if (client['connectionParameters']) {
|
|
49
|
-
const params = client['connectionParameters'];
|
|
50
|
-
return {
|
|
51
|
-
host: String(params['host'] ?? 'localhost'),
|
|
52
|
-
port: Number(params['port'] ?? 5432),
|
|
53
|
-
user: String(params['user'] ?? 'postgres'),
|
|
54
|
-
password: String(params['password'] ?? ''),
|
|
55
|
-
database: String(params['database'] ?? 'postgres'),
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
// For postgres-js
|
|
59
|
-
if (client['options']) {
|
|
60
|
-
const options = client['options'];
|
|
61
|
-
return {
|
|
62
|
-
host: String(options['host'] ?? 'localhost'),
|
|
63
|
-
port: Number(options['port'] ?? 5432),
|
|
64
|
-
user: String(options['user'] ?? 'postgres'),
|
|
65
|
-
password: String(options['password'] ?? ''),
|
|
66
|
-
database: String(options['database'] ?? 'postgres'),
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
// For mysql2
|
|
70
|
-
if (client['connection']) {
|
|
71
|
-
const conn = client['connection'];
|
|
72
|
-
return {
|
|
73
|
-
host: String(conn['host'] ?? 'localhost'),
|
|
74
|
-
port: Number(conn['port'] ?? 3306),
|
|
75
|
-
user: String(conn['user'] ?? 'root'),
|
|
76
|
-
password: String(conn['password'] ?? ''),
|
|
77
|
-
database: String(conn['database'] ?? 'mysql'),
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
throw new Error('Cannot determine connection credentials from database client');
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=dialect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../src/utils/dialect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema generator utility
|
|
3
|
-
*
|
|
4
|
-
* Converts introspected database schema JSON to TypeScript code.
|
|
5
|
-
* This is used by db:introspect to generate a schema.ts file.
|
|
6
|
-
*/
|
|
7
|
-
import type { Dialect } from './dialect.js';
|
|
8
|
-
interface IntrospectedTable {
|
|
9
|
-
name: string;
|
|
10
|
-
schema?: string;
|
|
11
|
-
columns: Array<{
|
|
12
|
-
name: string;
|
|
13
|
-
type: string;
|
|
14
|
-
isNullable: boolean;
|
|
15
|
-
isArray?: boolean;
|
|
16
|
-
default?: string | null;
|
|
17
|
-
primaryKey?: boolean;
|
|
18
|
-
unique?: boolean;
|
|
19
|
-
}>;
|
|
20
|
-
}
|
|
21
|
-
export declare function generateSchema(schema: {
|
|
22
|
-
tables?: IntrospectedTable[];
|
|
23
|
-
}, dialect: Dialect): string;
|
|
24
|
-
export {};
|
|
25
|
-
//# sourceMappingURL=schema-generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../src/utils/schema-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ;AA6JD,wBAAgB,cAAc,CAC5B,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAAE,EACxC,OAAO,EAAE,OAAO,GACf,MAAM,CAiCR"}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema generator utility
|
|
3
|
-
*
|
|
4
|
-
* Converts introspected database schema JSON to TypeScript code.
|
|
5
|
-
* This is used by db:introspect to generate a schema.ts file.
|
|
6
|
-
*/
|
|
7
|
-
// Mapping of PostgreSQL column types to Drizzle column types
|
|
8
|
-
const PG_TYPE_TO_DRIZZLE = {
|
|
9
|
-
// Numeric types
|
|
10
|
-
'integer': 'integer',
|
|
11
|
-
'bigint': 'bigint',
|
|
12
|
-
'smallint': 'smallint',
|
|
13
|
-
'numeric': 'numeric',
|
|
14
|
-
'decimal': 'decimal',
|
|
15
|
-
'real': 'real',
|
|
16
|
-
'double precision': 'doublePrecision',
|
|
17
|
-
'serial': 'serial',
|
|
18
|
-
'bigserial': 'bigserial',
|
|
19
|
-
'smallserial': 'smallserial',
|
|
20
|
-
// Character types
|
|
21
|
-
'character varying': 'varchar',
|
|
22
|
-
'varchar': 'varchar',
|
|
23
|
-
'character': 'char',
|
|
24
|
-
'char': 'char',
|
|
25
|
-
'text': 'text',
|
|
26
|
-
// Date/time types
|
|
27
|
-
'timestamp': 'timestamp',
|
|
28
|
-
'timestamp without time zone': 'timestamp',
|
|
29
|
-
'timestamp with time zone': 'timestamp',
|
|
30
|
-
'date': 'date',
|
|
31
|
-
'time': 'time',
|
|
32
|
-
'time without time zone': 'time',
|
|
33
|
-
'time with time zone': 'time',
|
|
34
|
-
'interval': 'interval',
|
|
35
|
-
// Boolean
|
|
36
|
-
'boolean': 'boolean',
|
|
37
|
-
// UUID
|
|
38
|
-
'uuid': 'uuid',
|
|
39
|
-
// JSON types
|
|
40
|
-
'json': 'json',
|
|
41
|
-
'jsonb': 'jsonb',
|
|
42
|
-
// Binary
|
|
43
|
-
'bytea': 'bytea',
|
|
44
|
-
// Array types (simplified)
|
|
45
|
-
'array': 'array',
|
|
46
|
-
// Network types
|
|
47
|
-
'inet': 'inet',
|
|
48
|
-
'cidr': 'cidr',
|
|
49
|
-
'macaddr': 'macaddr',
|
|
50
|
-
'macaddr8': 'macaddr8',
|
|
51
|
-
// Other
|
|
52
|
-
'money': 'money',
|
|
53
|
-
'bit': 'bit',
|
|
54
|
-
'bit varying': 'varbit',
|
|
55
|
-
'xml': 'xml',
|
|
56
|
-
'point': 'point',
|
|
57
|
-
'line': 'line',
|
|
58
|
-
'lseg': 'lseg',
|
|
59
|
-
'box': 'box',
|
|
60
|
-
'path': 'path',
|
|
61
|
-
'polygon': 'polygon',
|
|
62
|
-
'circle': 'circle',
|
|
63
|
-
};
|
|
64
|
-
function mapColumnType(pgType, isArray) {
|
|
65
|
-
let drizzleType = PG_TYPE_TO_DRIZZLE[pgType.toLowerCase()];
|
|
66
|
-
if (!drizzleType) {
|
|
67
|
-
// For unknown types, use a placeholder or the original type
|
|
68
|
-
console.warn(`Unknown PostgreSQL type: ${pgType}, using 'text' as fallback`);
|
|
69
|
-
drizzleType = 'text';
|
|
70
|
-
}
|
|
71
|
-
if (isArray) {
|
|
72
|
-
return `(${drizzleType}())`;
|
|
73
|
-
}
|
|
74
|
-
return drizzleType;
|
|
75
|
-
}
|
|
76
|
-
function generateColumn(column) {
|
|
77
|
-
const { name, type, isNullable, isArray, default: defaultValue, primaryKey, unique } = column;
|
|
78
|
-
const columnName = name.includes(' ') || name.includes('-')
|
|
79
|
-
? `"${name}"`
|
|
80
|
-
: `'${name}'`;
|
|
81
|
-
let line = ` ${name.includes(' ') || name.includes('-') ? `"${name}"` : name}: ${mapColumnType(type, isArray ?? false)}(${columnName})`;
|
|
82
|
-
if (!isNullable) {
|
|
83
|
-
line += '.notNull()';
|
|
84
|
-
}
|
|
85
|
-
if (defaultValue !== undefined && defaultValue !== null) {
|
|
86
|
-
// Handle different default value formats
|
|
87
|
-
if (defaultValue === 'now()' || defaultValue === 'CURRENT_TIMESTAMP') {
|
|
88
|
-
line += '.defaultNow()';
|
|
89
|
-
}
|
|
90
|
-
else if (defaultValue === 'true' || defaultValue === 'false') {
|
|
91
|
-
line += `.default(${defaultValue})`;
|
|
92
|
-
}
|
|
93
|
-
else if (!isNaN(Number(defaultValue))) {
|
|
94
|
-
line += `.default(${defaultValue})`;
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
line += `.default('${String(defaultValue).replace(/'/g, "\\'")}')`;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
if (primaryKey) {
|
|
101
|
-
line += '.primaryKey()';
|
|
102
|
-
}
|
|
103
|
-
if (unique && !primaryKey) {
|
|
104
|
-
line += '.unique()';
|
|
105
|
-
}
|
|
106
|
-
return line;
|
|
107
|
-
}
|
|
108
|
-
function generateTable(table) {
|
|
109
|
-
const lines = [];
|
|
110
|
-
// Determine table reference based on dialect
|
|
111
|
-
const tableRef = 'pgTable';
|
|
112
|
-
const importStatement = "import { pgTable } from 'drizzle-orm/pg-core';";
|
|
113
|
-
lines.push(importStatement);
|
|
114
|
-
lines.push('');
|
|
115
|
-
const tableName = table.name.includes(' ') || table.name.includes('-')
|
|
116
|
-
? `"${table.name}"`
|
|
117
|
-
: `'${table.name}'`;
|
|
118
|
-
lines.push(`export const ${table.name} = ${tableRef}(${tableName}, {`);
|
|
119
|
-
lines.push(' columns: {');
|
|
120
|
-
for (const column of table.columns) {
|
|
121
|
-
lines.push(generateColumn(column) + ',');
|
|
122
|
-
}
|
|
123
|
-
lines.push(' },');
|
|
124
|
-
lines.push('});');
|
|
125
|
-
return lines.join('\n');
|
|
126
|
-
}
|
|
127
|
-
export function generateSchema(schema, dialect) {
|
|
128
|
-
const lines = [];
|
|
129
|
-
// Add header
|
|
130
|
-
lines.push('/**');
|
|
131
|
-
lines.push(' * Auto-generated schema file');
|
|
132
|
-
lines.push(` * Dialect: ${dialect}`);
|
|
133
|
-
lines.push(` * Generated at: ${new Date().toISOString()}`);
|
|
134
|
-
lines.push(' */');
|
|
135
|
-
lines.push('');
|
|
136
|
-
// Add import
|
|
137
|
-
if (dialect === 'postgresql') {
|
|
138
|
-
lines.push("import { pgTable, text, integer, timestamp, boolean, uuid, jsonb, varchar } from 'drizzle-orm/pg-core';");
|
|
139
|
-
}
|
|
140
|
-
else if (dialect === 'mysql') {
|
|
141
|
-
lines.push("import { mysqlTable, text, int, timestamp, boolean, varchar } from 'drizzle-orm/mysql-core';");
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
lines.push("import { sqliteTable, text, integer, real } from 'drizzle-orm/sqlite-core';");
|
|
145
|
-
}
|
|
146
|
-
lines.push('');
|
|
147
|
-
// Generate tables
|
|
148
|
-
const tables = schema.tables ?? [];
|
|
149
|
-
for (let i = 0; i < tables.length; i++) {
|
|
150
|
-
lines.push(generateTable(tables[i]));
|
|
151
|
-
if (i < tables.length - 1) {
|
|
152
|
-
lines.push('');
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return lines.join('\n');
|
|
156
|
-
}
|
|
157
|
-
//# sourceMappingURL=schema-generator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../src/utils/schema-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema loader utility
|
|
3
|
-
*
|
|
4
|
-
* Dynamically imports the user's schema from ./src/db/schema.ts
|
|
5
|
-
* This is required because drizzle-kit's programmatic API takes schema objects,
|
|
6
|
-
* not file paths.
|
|
7
|
-
*/
|
|
8
|
-
declare const SCHEMA_PATH = "./src/db/schema.ts";
|
|
9
|
-
export { SCHEMA_PATH };
|
|
10
|
-
export interface SchemaLoaderResult {
|
|
11
|
-
schema: Record<string, unknown>;
|
|
12
|
-
schemaPath: string;
|
|
13
|
-
}
|
|
14
|
-
export declare function loadSchema(): Promise<SchemaLoaderResult>;
|
|
15
|
-
export declare function verifySchemaPath(): Promise<string>;
|
|
16
|
-
//# sourceMappingURL=schema-loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-loader.d.ts","sourceRoot":"","sources":["../../src/utils/schema-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,QAAA,MAAM,WAAW,uBAAuB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CA2B9D;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAaxD"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema loader utility
|
|
3
|
-
*
|
|
4
|
-
* Dynamically imports the user's schema from ./src/db/schema.ts
|
|
5
|
-
* This is required because drizzle-kit's programmatic API takes schema objects,
|
|
6
|
-
* not file paths.
|
|
7
|
-
*/
|
|
8
|
-
import * as path from 'node:path';
|
|
9
|
-
import { createRequire } from 'node:module';
|
|
10
|
-
const SCHEMA_PATH = './src/db/schema.ts';
|
|
11
|
-
export { SCHEMA_PATH };
|
|
12
|
-
export async function loadSchema() {
|
|
13
|
-
const schemaPath = path.resolve(process.cwd(), SCHEMA_PATH);
|
|
14
|
-
// Use createRequire to load the schema file
|
|
15
|
-
// This handles both ESM and CJS modules correctly
|
|
16
|
-
const require = createRequire(import.meta.url);
|
|
17
|
-
const schemaModule = require(schemaPath);
|
|
18
|
-
// Extract all exports that are schema objects (tables, etc.)
|
|
19
|
-
const schema = {};
|
|
20
|
-
for (const [key, value] of Object.entries(schemaModule)) {
|
|
21
|
-
// Skip non-schema exports (like imports, types, etc.)
|
|
22
|
-
if (key === '__esModule' || key === 'default')
|
|
23
|
-
continue;
|
|
24
|
-
if (typeof value !== 'object' && typeof value !== 'function')
|
|
25
|
-
continue;
|
|
26
|
-
schema[key] = value;
|
|
27
|
-
}
|
|
28
|
-
if (Object.keys(schema).length === 0) {
|
|
29
|
-
throw new Error(`No schema objects found in ${SCHEMA_PATH}.\n` +
|
|
30
|
-
`Please export your Drizzle tables from this file.`);
|
|
31
|
-
}
|
|
32
|
-
return { schema, schemaPath };
|
|
33
|
-
}
|
|
34
|
-
export async function verifySchemaPath() {
|
|
35
|
-
const { stat } = await import('node:fs/promises');
|
|
36
|
-
const schemaPath = path.resolve(process.cwd(), SCHEMA_PATH);
|
|
37
|
-
try {
|
|
38
|
-
await stat(schemaPath);
|
|
39
|
-
return schemaPath;
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
throw new Error(`Schema file not found: ${SCHEMA_PATH}\n` +
|
|
43
|
-
`Please create this file and export your Drizzle tables.`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=schema-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../../src/utils/schema-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,CAAC;AAOvB,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAE5D,4CAA4C;IAC5C,kDAAkD;IAClD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEzC,6DAA6D;IAC7D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,sDAAsD;QACtD,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,SAAS;QAEvE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,8BAA8B,WAAW,KAAK;YAC9C,mDAAmD,CACpD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,0BAA0B,WAAW,IAAI;YACzC,yDAAyD,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC"}
|