Skip to content

Commit 2dbf726

Browse files
authored
Merge pull request #270 from drizzle-team/116-add-view-support
2 parents e874a18 + 95bacd5 commit 2dbf726

File tree

227 files changed

+6926
-2044
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

227 files changed

+6926
-2044
lines changed

.eslintignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules
2+
dist

.eslintrc.cjs

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module.exports = {
2+
root: true,
3+
extends: ['plugin:@typescript-eslint/base'],
4+
parser: '@typescript-eslint/parser',
5+
plugins: ['import'],
6+
rules: {
7+
'@typescript-eslint/consistent-type-imports': [
8+
'error',
9+
{
10+
disallowTypeAnnotations: false,
11+
},
12+
],
13+
'import/no-cycle': 'error',
14+
'import/no-self-import': 'error',
15+
},
16+
};

changelogs/drizzle-orm/0.22.0.md

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
- 🎉 Introduced a standalone query builder that can be used without a DB connection:
2+
3+
```ts
4+
import { queryBuilder as qb } from 'drizzle-orm/pg-core';
5+
6+
const query = qb.select().from(users).where(eq(users.name, 'Dan'));
7+
const { sql, params } = query.toSQL();
8+
```
9+
10+
- 🎉 Improved `WITH ... SELECT` subquery creation syntax to more resemble SQL:
11+
12+
**Before**:
13+
14+
```ts
15+
const regionalSales = db
16+
.select({
17+
region: orders.region,
18+
totalSales: sql`sum(${orders.amount})`.as<number>('total_sales'),
19+
})
20+
.from(orders)
21+
.groupBy(orders.region)
22+
.prepareWithSubquery('regional_sales');
23+
24+
await db.with(regionalSales).select(...).from(...);
25+
```
26+
27+
**After**:
28+
29+
```ts
30+
const regionalSales = db
31+
.$with('regional_sales')
32+
.as(
33+
db
34+
.select({
35+
region: orders.region,
36+
totalSales: sql<number>`sum(${orders.amount})`.as('total_sales'),
37+
})
38+
.from(orders)
39+
.groupBy(orders.region),
40+
);
41+
42+
await db.with(regionalSales).select(...).from(...);
43+
```

drizzle-orm/package.json

+110-110
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,112 @@
11
{
2-
"name": "drizzle-orm",
3-
"version": "0.21.1",
4-
"description": "Drizzle ORM package for SQL databases",
5-
"scripts": {
6-
"build": "tsc && resolve-tspaths && cp ../README.md package.json dist/",
7-
"test:types": "cd tests && tsc",
8-
"pack": "cp package.json dist/ && (cd dist && npm pack --pack-destination ..) && rm -f package.tgz && mv *.tgz package.tgz",
9-
"publish": "npm publish package.tgz"
10-
},
11-
"repository": {
12-
"type": "git",
13-
"url": "git+https://github.com/drizzle-team/drizzle-orm.git"
14-
},
15-
"keywords": [
16-
"drizzle",
17-
"orm",
18-
"pg",
19-
"mysql",
20-
"postgresql",
21-
"postgres",
22-
"sqlite",
23-
"database",
24-
"sql",
25-
"typescript",
26-
"ts",
27-
"drizzle-orm"
28-
],
29-
"author": "Drizzle Team",
30-
"license": "Apache-2.0",
31-
"bugs": {
32-
"url": "https://github.com/drizzle-team/drizzle-orm/issues"
33-
},
34-
"homepage": "https://github.com/drizzle-team/drizzle-orm#readme",
35-
"peerDependencies": {
36-
"@aws-sdk/client-rds-data": ">=3 <4",
37-
"@cloudflare/workers-types": ">=3",
38-
"@neondatabase/serverless": ">=0.1 <0.2",
39-
"@types/better-sqlite3": "*",
40-
"@types/pg": "*",
41-
"@types/sql.js": "*",
42-
"better-sqlite3": ">=7 <9",
43-
"bun-types": "*",
44-
"mysql2": ">=2 <3",
45-
"pg": ">=8 <9",
46-
"postgres": ">=3 <4",
47-
"sql.js": ">=1 <2",
48-
"sqlite3": ">=5 <6",
49-
"@planetscale/database": ">=1 <2"
50-
},
51-
"peerDependenciesMeta": {
52-
"mysql2": {
53-
"optional": true
54-
},
55-
"better-sqlite3": {
56-
"optional": true
57-
},
58-
"@types/better-sqlite3": {
59-
"optional": true
60-
},
61-
"sqlite3": {
62-
"optional": true
63-
},
64-
"sql.js": {
65-
"optional": true
66-
},
67-
"@types/sql.js": {
68-
"optional": true
69-
},
70-
"@cloudflare/workers-types": {
71-
"optional": true
72-
},
73-
"pg": {
74-
"optional": true
75-
},
76-
"@types/pg": {
77-
"optional": true
78-
},
79-
"postgres": {
80-
"optional": true
81-
},
82-
"@neondatabase/serverless": {
83-
"optional": true
84-
},
85-
"bun-types": {
86-
"optional": true
87-
},
88-
"@aws-sdk/client-rds-data": {
89-
"optional": true
90-
},
91-
"@planetscale/database": {
92-
"optional": true
93-
}
94-
},
95-
"devDependencies": {
96-
"@aws-sdk/client-rds-data": "^3.257.0",
97-
"@cloudflare/workers-types": "^3.18.0",
98-
"@neondatabase/serverless": "^0.1.13",
99-
"@planetscale/database": "^1.5.0",
100-
"@types/better-sqlite3": "^7.6.2",
101-
"@types/node": "^18.11.9",
102-
"@types/pg": "^8.6.5",
103-
"@types/sql.js": "^1.4.4",
104-
"better-sqlite3": "^7.6.2",
105-
"bun-types": "^0.5.0",
106-
"mysql2": "^2.3.3",
107-
"pg": "^8.8.0",
108-
"postgres": "^3.3.3",
109-
"sql.js": "^1.8.0",
110-
"sqlite3": "^5.1.2"
111-
}
2+
"name": "drizzle-orm",
3+
"version": "0.22.0",
4+
"description": "Drizzle ORM package for SQL databases",
5+
"scripts": {
6+
"build": "tsc && resolve-tspaths && cp ../README.md package.json dist/",
7+
"test:types": "cd tests && tsc",
8+
"pack": "cp package.json dist/ && (cd dist && npm pack --pack-destination ..) && rm -f package.tgz && mv *.tgz package.tgz",
9+
"publish": "npm publish package.tgz"
10+
},
11+
"repository": {
12+
"type": "git",
13+
"url": "git+https://github.com/drizzle-team/drizzle-orm.git"
14+
},
15+
"keywords": [
16+
"drizzle",
17+
"orm",
18+
"pg",
19+
"mysql",
20+
"postgresql",
21+
"postgres",
22+
"sqlite",
23+
"database",
24+
"sql",
25+
"typescript",
26+
"ts",
27+
"drizzle-orm"
28+
],
29+
"author": "Drizzle Team",
30+
"license": "Apache-2.0",
31+
"bugs": {
32+
"url": "https://github.com/drizzle-team/drizzle-orm/issues"
33+
},
34+
"homepage": "https://github.com/drizzle-team/drizzle-orm#readme",
35+
"peerDependencies": {
36+
"@aws-sdk/client-rds-data": ">=3 <4",
37+
"@cloudflare/workers-types": ">=3",
38+
"@neondatabase/serverless": ">=0.1 <0.2",
39+
"@types/better-sqlite3": "*",
40+
"@types/pg": "*",
41+
"@types/sql.js": "*",
42+
"better-sqlite3": ">=7 <9",
43+
"bun-types": "*",
44+
"mysql2": ">=2 <3",
45+
"pg": ">=8 <9",
46+
"postgres": ">=3 <4",
47+
"sql.js": ">=1 <2",
48+
"sqlite3": ">=5 <6",
49+
"@planetscale/database": ">=1 <2"
50+
},
51+
"peerDependenciesMeta": {
52+
"mysql2": {
53+
"optional": true
54+
},
55+
"better-sqlite3": {
56+
"optional": true
57+
},
58+
"@types/better-sqlite3": {
59+
"optional": true
60+
},
61+
"sqlite3": {
62+
"optional": true
63+
},
64+
"sql.js": {
65+
"optional": true
66+
},
67+
"@types/sql.js": {
68+
"optional": true
69+
},
70+
"@cloudflare/workers-types": {
71+
"optional": true
72+
},
73+
"pg": {
74+
"optional": true
75+
},
76+
"@types/pg": {
77+
"optional": true
78+
},
79+
"postgres": {
80+
"optional": true
81+
},
82+
"@neondatabase/serverless": {
83+
"optional": true
84+
},
85+
"bun-types": {
86+
"optional": true
87+
},
88+
"@aws-sdk/client-rds-data": {
89+
"optional": true
90+
},
91+
"@planetscale/database": {
92+
"optional": true
93+
}
94+
},
95+
"devDependencies": {
96+
"@aws-sdk/client-rds-data": "^3.257.0",
97+
"@cloudflare/workers-types": "^3.18.0",
98+
"@neondatabase/serverless": "^0.1.13",
99+
"@planetscale/database": "^1.5.0",
100+
"@types/better-sqlite3": "^7.6.2",
101+
"@types/node": "^18.11.9",
102+
"@types/pg": "^8.6.5",
103+
"@types/sql.js": "^1.4.4",
104+
"better-sqlite3": "^7.6.2",
105+
"bun-types": "^0.5.0",
106+
"mysql2": "^2.3.3",
107+
"pg": "^8.8.0",
108+
"postgres": "^3.3.3",
109+
"sql.js": "^1.8.0",
110+
"sqlite3": "^5.1.2"
111+
}
112112
}

drizzle-orm/src/alias.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { AnyColumn, Column } from './column';
1+
import type { AnyColumn} from './column';
2+
import { Column } from './column';
23
import { Table } from './table';
34

45
export class ColumnAliasProxyHandler<TColumn extends AnyColumn> implements ProxyHandler<TColumn> {

0 commit comments

Comments
 (0)