@syntropix/database 0.0.6 → 0.1.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/README.md CHANGED
@@ -1,31 +1,31 @@
1
1
  # DB TypeScript SDK
2
2
 
3
- 一个类似于 Python ORM TypeScript SDK,用于数据库操作。
3
+ A TypeScript SDK for database operations, similar to a Python ORM.
4
4
 
5
- ## 安装
5
+ ## Installation
6
6
 
7
7
  ```bash
8
8
  yarn add reflect-metadata
9
9
  ```
10
10
 
11
- ## 功能特性
11
+ ## Features
12
12
 
13
- - 🎯 **装饰器支持** - 使用 TypeScript 装饰器定义模型
14
- - 🔑 **自动主键** - 如果未定义主键,自动创建 `id` 字段
15
- - 🔗 **外键关系** - 支持外键定义和关系
16
- - 📝 **完整的 CRUD** - 提供 create, read, update, delete 操作
17
- - 🔍 **高级查询** - 支持过滤、排序、聚合、连接等
18
- - 🚀 **批量操作** - 支持批量创建和更新
19
- - 🎨 **类型安全** - 完整的 TypeScript 类型支持
13
+ - 🎯 **Decorator Support** - Define models using TypeScript decorators
14
+ - 🔑 **Automatic Primary Keys** - `id` field is automatically created if not defined
15
+ - 🔗 **Foreign Key Relations** - Supports defining and handling foreign key relations
16
+ - 📝 **Full CRUD** - Create, read, update, and delete operations
17
+ - 🔍 **Advanced Queries** - Filtering, sorting, aggregation, joins, etc.
18
+ - 🚀 **Batch Operations** - Bulk create and update support
19
+ - 🎨 **Type Safety** - Full TypeScript types, type-safe models
20
20
 
21
- ## 快速开始
21
+ ## Quick Start
22
22
 
23
- ### 1. 定义模型
23
+ ### 1. Define Models
24
24
 
25
25
  ```typescript
26
26
  import { BaseModel, Column } from 'db-ts-sdk';
27
27
 
28
- // 基础审计模型
28
+ // Audited base model
29
29
  export class Audited extends BaseModel {
30
30
  @Column({ type: 'date', name: 'created_at' })
31
31
  createdAt!: Date;
@@ -34,7 +34,7 @@ export class Audited extends BaseModel {
34
34
  updatedAt!: Date;
35
35
  }
36
36
 
37
- // 用户模型
37
+ // User model
38
38
  export class User extends Audited {
39
39
  static tableName = 'users';
40
40
 
@@ -55,28 +55,28 @@ export class User extends Audited {
55
55
  }
56
56
  ```
57
57
 
58
- ### 2. 表操作
58
+ ### 2. Table Operations
59
59
 
60
60
  ```typescript
61
- // 创建表
61
+ // Create table
62
62
  await User.createTable();
63
63
 
64
- // 删除表
64
+ // Drop table
65
65
  await User.dropTable();
66
66
 
67
- // 重命名表
67
+ // Rename table
68
68
  await User.renameTable('new_users');
69
69
 
70
- // 清空表
70
+ // Truncate table
71
71
  await User.truncateTable();
72
72
  ```
73
73
 
74
- ### 3. 数据操作
74
+ ### 3. Data Operations
75
75
 
76
- #### 创建数据
76
+ #### Create Data
77
77
 
78
78
  ```typescript
79
- // 单条创建
79
+ // Single insert
80
80
  const user = await User.create({
81
81
  id: '1',
82
82
  email: 'user@example.com',
@@ -86,7 +86,7 @@ const user = await User.create({
86
86
  updatedAt: new Date(),
87
87
  });
88
88
 
89
- // 批量创建
89
+ // Bulk insert
90
90
  await User.bulkCreate(
91
91
  [
92
92
  {
@@ -106,19 +106,19 @@ await User.bulkCreate(
106
106
  updatedAt: new Date(),
107
107
  },
108
108
  ],
109
- 32,
110
- ); // 批次大小
109
+ 32, // Batch size
110
+ );
111
111
  ```
112
112
 
113
- #### 查询数据
113
+ #### Query Data
114
114
 
115
115
  ```typescript
116
116
  import { AND, EQ, OR, GTE } from 'db-ts-sdk';
117
117
 
118
- // 获取单个记录
118
+ // Get a single record
119
119
  const user = await User.get(OR(AND(EQ('email', 'user@example.com'))));
120
120
 
121
- // 过滤查询
121
+ // Filter query
122
122
  const activeUsers = await User.filter({
123
123
  filter: OR(AND(EQ('is_active', true))),
124
124
  limit: 10,
@@ -126,38 +126,38 @@ const activeUsers = await User.filter({
126
126
  sort: { column: 'created_at', order: 'DESC' },
127
127
  });
128
128
 
129
- // 统计数量
129
+ // Count records
130
130
  const count = await User.count({
131
131
  filter: OR(AND(EQ('is_active', true))),
132
132
  });
133
133
  ```
134
134
 
135
- #### 更新数据
135
+ #### Update Data
136
136
 
137
137
  ```typescript
138
- // 实例更新
138
+ // Instance update
139
139
  const user = await User.get(OR(AND(EQ('id', '1'))));
140
140
  user.fullName = 'Jane Doe';
141
141
  await user.save();
142
142
 
143
- // 批量更新
143
+ // Bulk update
144
144
  await User.update(OR(AND(EQ('is_active', false))), { isActive: true });
145
145
  ```
146
146
 
147
- #### 删除数据
147
+ #### Delete Data
148
148
 
149
149
  ```typescript
150
- // 实例删除
150
+ // Instance delete
151
151
  const user = await User.get(OR(AND(EQ('id', '1'))));
152
152
  await user.remove();
153
153
 
154
- // 批量删除
154
+ // Bulk delete
155
155
  await User.delete(OR(AND(EQ('is_active', false))));
156
156
  ```
157
157
 
158
- ## 字段类型
158
+ ## Field Types
159
159
 
160
- SDK 支持多种字段类型:
160
+ The SDK supports various field types:
161
161
 
162
162
  ```typescript
163
163
  import {
@@ -180,22 +180,22 @@ import {
180
180
  } from 'db-ts-sdk';
181
181
  ```
182
182
 
183
- ### 使用装饰器
183
+ ### Using Decorators
184
184
 
185
185
  ```typescript
186
186
  @Column({
187
- type: 'string', // 字段类型
188
- name: 'column_name', // 数据库列名(可选)
189
- description: 'desc', // 描述(可选)
190
- primary: false, // 是否主键(可选)
191
- nullable: false, // 是否可为空(可选)
192
- auto_increment: false, // 是否自增(可选)
193
- default: null // 默认值(可选)
187
+ type: 'string', // Field type
188
+ name: 'column_name', // Database column name (optional)
189
+ description: 'desc', // Description (optional)
190
+ primary: false, // Is primary key (optional)
191
+ nullable: false, // Nullable (optional)
192
+ auto_increment: false, // Auto increment (optional)
193
+ default: null // Default value (optional)
194
194
  })
195
195
  fieldName!: string;
196
196
  ```
197
197
 
198
- ### 外键字段
198
+ ### Foreign Key Fields
199
199
 
200
200
  ```typescript
201
201
  import { ForeignKey } from 'db-ts-sdk';
@@ -208,42 +208,42 @@ import { ForeignKey } from 'db-ts-sdk';
208
208
  userId!: number;
209
209
  ```
210
210
 
211
- ## 过滤器构建
211
+ ## Filter Builder
212
212
 
213
213
  ```typescript
214
214
  import { AND, OR, EQ, NE, GT, GTE, LT, LTE, IN, LIKE } from 'db-ts-sdk';
215
215
 
216
- // 等于
216
+ // Equals
217
217
  EQ('field', value);
218
218
 
219
- // 不等于
219
+ // Not equals
220
220
  NE('field', value);
221
221
 
222
- // 大于
222
+ // Greater than
223
223
  GT('field', value);
224
224
 
225
- // 大于等于
225
+ // Greater than or equal
226
226
  GTE('field', value);
227
227
 
228
- // 小于
228
+ // Less than
229
229
  LT('field', value);
230
230
 
231
- // 小于等于
231
+ // Less than or equal
232
232
  LTE('field', value);
233
233
 
234
- // 包含
234
+ // In array
235
235
  IN('field', [value1, value2]);
236
236
 
237
- // 模糊匹配
237
+ // Pattern matching (LIKE)
238
238
  LIKE('field', '%pattern%');
239
239
 
240
- // 组合条件
240
+ // Combine conditions
241
241
  OR(AND(EQ('status', 'active'), GTE('age', 18)), AND(EQ('status', 'pending')));
242
242
  ```
243
243
 
244
- ## 高级查询
244
+ ## Advanced Queries
245
245
 
246
- ### 聚合查询
246
+ ### Aggregate Query
247
247
 
248
248
  ```typescript
249
249
  import { AggregateFunction } from 'db-ts-sdk';
@@ -261,7 +261,7 @@ const results = await User.filter({
261
261
  });
262
262
  ```
263
263
 
264
- ### 连接查询
264
+ ### Join Query
265
265
 
266
266
  ```typescript
267
267
  const results = await User.filter({
@@ -274,9 +274,9 @@ const results = await User.filter({
274
274
  });
275
275
  ```
276
276
 
277
- ## 配置
277
+ ## Configuration
278
278
 
279
- `tsconfig.json` 中确保启用装饰器支持:
279
+ In your `tsconfig.json`, make sure to enable decorator support:
280
280
 
281
281
  ```json
282
282
  {
@@ -287,34 +287,34 @@ const results = await User.filter({
287
287
  }
288
288
  ```
289
289
 
290
- 在应用入口导入 reflect-metadata
290
+ And at the entrypoint of your app, import reflect-metadata:
291
291
 
292
292
  ```typescript
293
293
  import 'reflect-metadata';
294
294
  ```
295
295
 
296
- ## API 参考
296
+ ## API Reference
297
297
 
298
- ### BaseModel 静态方法
298
+ ### BaseModel Static Methods
299
299
 
300
- - `createTable()` - 创建表
301
- - `dropTable()` - 删除表
302
- - `renameTable(newName)` - 重命名表
303
- - `truncateTable()` - 清空表
304
- - `create(data)` - 创建记录
305
- - `bulkCreate(datas, batchSize)` - 批量创建
306
- - `get(filter, select?)` - 获取单个记录
307
- - `filter(options)` - 过滤查询
308
- - `update(filter, data)` - 批量更新
309
- - `delete(filter)` - 批量删除
310
- - `count(options)` - 统计数量
300
+ - `createTable()` - Create table
301
+ - `dropTable()` - Drop table
302
+ - `renameTable(newName)` - Rename table
303
+ - `truncateTable()` - Truncate table
304
+ - `create(data)` - Create a record
305
+ - `bulkCreate(datas, batchSize)` - Create records in bulk
306
+ - `get(filter, select?)` - Get a single record
307
+ - `filter(options)` - Filter query
308
+ - `update(filter, data)` - Bulk update
309
+ - `delete(filter)` - Bulk delete
310
+ - `count(options)` - Count records
311
311
 
312
- ### BaseModel 实例方法
312
+ ### BaseModel Instance Methods
313
313
 
314
- - `save()` - 保存实例(创建或更新)
315
- - `remove(filter?)` - 删除实例
316
- - `toString()` - 转换为字符串
317
- - `toJSON()` - 转换为 JSON 对象
314
+ - `save()` - Save instance (create or update)
315
+ - `remove(filter?)` - Remove instance
316
+ - `toString()` - Convert to string
317
+ - `toJSON()` - Convert to JSON object
318
318
 
319
319
  ## License
320
320