create-absolutejs 0.3.21 → 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.
|
@@ -46,13 +46,13 @@ declare const driverConfigurations: {
|
|
|
46
46
|
readonly queries: QueryOperations;
|
|
47
47
|
};
|
|
48
48
|
readonly 'postgresql:drizzle:local': {
|
|
49
|
-
readonly dbType: "
|
|
49
|
+
readonly dbType: "NodePgDatabase<SchemaType>";
|
|
50
50
|
readonly importLines: "\nimport { eq } from 'drizzle-orm'\nimport { BunSQLDatabase } from 'drizzle-orm/bun-sql'\nimport { schema, type SchemaType } from '../../../db/schema'";
|
|
51
51
|
readonly queries: QueryOperations;
|
|
52
52
|
};
|
|
53
53
|
readonly 'postgresql:drizzle:neon': {
|
|
54
|
-
readonly dbType: "
|
|
55
|
-
readonly importLines: "\nimport { eq } from 'drizzle-orm'\nimport {
|
|
54
|
+
readonly dbType: "NeonDatabase<SchemaType>";
|
|
55
|
+
readonly importLines: "\nimport { eq } from 'drizzle-orm'\nimport { NeonDatabase } from 'drizzle-orm/neon-serverless'\nimport { schema, type SchemaType } from '../../../db/schema'";
|
|
56
56
|
readonly queries: QueryOperations;
|
|
57
57
|
};
|
|
58
58
|
readonly 'postgresql:sql:local': {
|
|
@@ -309,7 +309,7 @@ import { schema, type SchemaType } from '../../../db/schema'`,
|
|
|
309
309
|
queries: mysqlSqlQueryOperations
|
|
310
310
|
},
|
|
311
311
|
'postgresql:drizzle:local': {
|
|
312
|
-
dbType: '
|
|
312
|
+
dbType: 'NodePgDatabase<SchemaType>',
|
|
313
313
|
importLines: `
|
|
314
314
|
import { eq } from 'drizzle-orm'
|
|
315
315
|
import { BunSQLDatabase } from 'drizzle-orm/bun-sql'
|
|
@@ -317,10 +317,10 @@ import { schema, type SchemaType } from '../../../db/schema'`,
|
|
|
317
317
|
queries: drizzleQueryOperations
|
|
318
318
|
},
|
|
319
319
|
'postgresql:drizzle:neon': {
|
|
320
|
-
dbType: '
|
|
320
|
+
dbType: 'NeonDatabase<SchemaType>',
|
|
321
321
|
importLines: `
|
|
322
322
|
import { eq } from 'drizzle-orm'
|
|
323
|
-
import {
|
|
323
|
+
import { NeonDatabase } from 'drizzle-orm/neon-serverless'
|
|
324
324
|
import { schema, type SchemaType } from '../../../db/schema'`,
|
|
325
325
|
queries: drizzleQueryOperations
|
|
326
326
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { availableDrizzleDialects } from '../../data';
|
|
2
2
|
const connectionMap = {
|
|
3
3
|
cockroachdb: {
|
|
4
|
-
none: {
|
|
4
|
+
none: { expr: 'new Pool({ connectionString: getEnv("DATABASE_URL") })' }
|
|
5
5
|
},
|
|
6
6
|
gel: {
|
|
7
7
|
none: { expr: 'gelClient({ url: getEnv("DATABASE_URL") })' }
|
|
@@ -10,18 +10,20 @@ const connectionMap = {
|
|
|
10
10
|
none: { expr: 'createPool(getEnv("DATABASE_URL"))' }
|
|
11
11
|
},
|
|
12
12
|
mongodb: {
|
|
13
|
-
none: { expr: 'new MongoClient(getEnv("DATABASE_URL"))' }
|
|
13
|
+
none: { expr: 'new MongoClient(getEnv("DATABASE_URL") })' }
|
|
14
14
|
},
|
|
15
15
|
mssql: {
|
|
16
|
-
none: { expr: 'connect(getEnv("DATABASE_URL"))' }
|
|
16
|
+
none: { expr: 'await connect(getEnv("DATABASE_URL"))' }
|
|
17
17
|
},
|
|
18
18
|
mysql: {
|
|
19
19
|
none: { expr: 'createPool(getEnv("DATABASE_URL"))' },
|
|
20
20
|
planetscale: { expr: 'connect({ url: getEnv("DATABASE_URL") })' }
|
|
21
21
|
},
|
|
22
22
|
postgresql: {
|
|
23
|
-
neon: {
|
|
24
|
-
|
|
23
|
+
neon: {
|
|
24
|
+
expr: 'new Pool({ connectionString: getEnv("DATABASE_URL") })'
|
|
25
|
+
},
|
|
26
|
+
none: { expr: 'new Pool({ connectionString: getEnv("DATABASE_URL") })' }
|
|
25
27
|
},
|
|
26
28
|
singlestore: {
|
|
27
29
|
none: { expr: 'createClient({ url: getEnv("DATABASE_URL") })' }
|
|
@@ -32,7 +34,7 @@ const connectionMap = {
|
|
|
32
34
|
}
|
|
33
35
|
};
|
|
34
36
|
const remoteDrizzleInit = {
|
|
35
|
-
neon: '
|
|
37
|
+
neon: 'new Pool({ connectionString: getEnv("DATABASE_URL") })',
|
|
36
38
|
planetscale: 'connect({ url: getEnv("DATABASE_URL") })',
|
|
37
39
|
turso: 'createClient({ url: getEnv("DATABASE_URL") })'
|
|
38
40
|
};
|
|
@@ -50,8 +52,8 @@ export const generateDBBlock = ({ databaseEngine, orm, databaseHost }) => {
|
|
|
50
52
|
if (!hostCfg)
|
|
51
53
|
return '';
|
|
52
54
|
return `
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
+
const pool = ${hostCfg.expr}
|
|
56
|
+
`;
|
|
55
57
|
}
|
|
56
58
|
if (!drizzleDialectSet.has(databaseEngine))
|
|
57
59
|
return '';
|
|
@@ -61,12 +63,18 @@ ${hostCfg.connect ? 'await db.connect();\n' : ''}`;
|
|
|
61
63
|
if (databaseEngine === 'mysql') {
|
|
62
64
|
const mode = databaseHost === 'planetscale' ? 'planetscale' : 'default';
|
|
63
65
|
return `
|
|
64
|
-
const
|
|
65
|
-
const db = drizzle(
|
|
66
|
+
const pool = ${expr}
|
|
67
|
+
const db = drizzle(pool, { schema, mode: '${mode}' })
|
|
68
|
+
`;
|
|
69
|
+
}
|
|
70
|
+
if (databaseEngine === 'sqlite') {
|
|
71
|
+
return `
|
|
72
|
+
const pool = ${expr}
|
|
73
|
+
const db = drizzle(pool, { schema })
|
|
66
74
|
`;
|
|
67
75
|
}
|
|
68
76
|
return `
|
|
69
|
-
const
|
|
70
|
-
const db = drizzle(
|
|
77
|
+
const pool = ${expr}
|
|
78
|
+
const db = drizzle(pool, { schema })
|
|
71
79
|
`;
|
|
72
80
|
};
|
|
@@ -37,16 +37,16 @@ export const generateImportsBlock = ({ backendDirectory, deps, flags, orm, authP
|
|
|
37
37
|
if (flags.requiresVue && !flags.requiresSvelte && vueDir !== undefined)
|
|
38
38
|
rawImports.push(`import VueExample from '${buildExamplePath(vueDir, 'VueExample.vue')}'`);
|
|
39
39
|
const connectorImports = {
|
|
40
|
-
neon: [
|
|
41
|
-
planetscale: [
|
|
42
|
-
turso: [
|
|
40
|
+
neon: [`import { Pool } from '@neondatabase/serverless'`],
|
|
41
|
+
planetscale: [`import { connect } from '@planetscale/database'`],
|
|
42
|
+
turso: [`import { createClient } from '@libsql/client'`]
|
|
43
43
|
};
|
|
44
44
|
const dialectImports = {
|
|
45
|
-
neon: [
|
|
45
|
+
neon: [`import { drizzle } from 'drizzle-orm/node-postgres'`],
|
|
46
46
|
planetscale: [
|
|
47
|
-
|
|
47
|
+
`import { drizzle } from 'drizzle-orm/planetscale-serverless'`
|
|
48
48
|
],
|
|
49
|
-
turso: [
|
|
49
|
+
turso: [`import { drizzle } from 'drizzle-orm/libsql'`]
|
|
50
50
|
};
|
|
51
51
|
const isRemoteHost = databaseHost !== undefined && databaseHost !== 'none';
|
|
52
52
|
const hasDatabase = databaseEngine !== undefined && databaseEngine !== 'none';
|
|
@@ -56,7 +56,7 @@ export const generateImportsBlock = ({ backendDirectory, deps, flags, orm, authP
|
|
|
56
56
|
rawImports.push(...connectorImports[key], ...dialectImports[key]);
|
|
57
57
|
}
|
|
58
58
|
if (orm === 'drizzle' && !isRemoteHost && databaseEngine === 'postgresql')
|
|
59
|
-
rawImports.push(`import {
|
|
59
|
+
rawImports.push(`import { Pool } from 'pg'`, `import { drizzle } from 'drizzle-orm/node-postgres'`);
|
|
60
60
|
if (orm === 'drizzle' && databaseEngine === 'sqlite' && !isRemoteHost)
|
|
61
61
|
rawImports.push(`import { Database } from 'bun:sqlite'`, `import { drizzle } from 'drizzle-orm/bun-sqlite'`);
|
|
62
62
|
if (noOrm && databaseEngine === 'sqlite')
|
|
@@ -67,21 +67,22 @@ export const generateImportsBlock = ({ backendDirectory, deps, flags, orm, authP
|
|
|
67
67
|
]
|
|
68
68
|
: [`import { Database } from 'bun:sqlite'`]));
|
|
69
69
|
if (databaseEngine === 'mysql' && isRemoteHost) {
|
|
70
|
-
|
|
70
|
+
const key = databaseHost;
|
|
71
|
+
rawImports.push(...connectorImports[key]);
|
|
71
72
|
}
|
|
72
73
|
if (databaseEngine === 'mysql' && !isRemoteHost) {
|
|
73
|
-
rawImports.push(
|
|
74
|
+
rawImports.push(`import { createPool } from 'mysql2/promise'`);
|
|
74
75
|
}
|
|
75
76
|
if (databaseEngine === 'mysql' && orm === 'drizzle') {
|
|
76
|
-
rawImports.push(
|
|
77
|
+
rawImports.push(`import { drizzle } from 'drizzle-orm/mysql2'`);
|
|
77
78
|
}
|
|
78
79
|
if (databaseEngine === 'mysql') {
|
|
79
|
-
rawImports.push(
|
|
80
|
+
rawImports.push(`import { getEnv } from '@absolutejs/absolute'`);
|
|
80
81
|
}
|
|
81
82
|
if (noOrm && databaseEngine === 'postgresql')
|
|
82
83
|
rawImports.push(...(isRemoteHost
|
|
83
84
|
? connectorImports[databaseHost]
|
|
84
|
-
: [`import {
|
|
85
|
+
: [`import { Pool } from 'pg'`]), `import { getEnv } from '@absolutejs/absolute'`);
|
|
85
86
|
if (orm === 'drizzle') {
|
|
86
87
|
rawImports.push(`import { Elysia } from 'elysia'`, ...(databaseEngine === 'sqlite' && !isRemoteHost
|
|
87
88
|
? []
|
package/package.json
CHANGED