Skip to content

Commit 8a35d5a

Browse files
committed
[README]
1 parent aab154f commit 8a35d5a

3 files changed

Lines changed: 72 additions & 14 deletions

File tree

README.ko.md

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,59 @@ main().catch(console.error);
162162
- `mode: 'force'`: 스키마와 일치하지 않는 기존 시트를 덮어쓰므로 데이터가 손실될 수 있습니다.
163163
- `mode: 'clean'`: 모든 데이터를 지우고 스키마 헤더만 새로 씁니다.
164164

165-
### 쿼리 빌더 (`client.query()`)
165+
### 쿼리 빌더 (`client.queryBuilder`)
166+
167+
`client.queryBuilder` 메소드는 `SELECT`, `INSERT`, `UPDATE`, `DELETE` 작업을 위한 유창한 쿼리 빌더에 접근할 수 있도록 합니다. SQL과 유사한 직접 쿼리 기능(`client.query("SELECT ...")`)은 현재 구현되지 않은 플레이스홀더임을 참고해 주세요.
168+
169+
쿼리 빌더는 데이터 조작을 위한 유창한(fluent) API를 제공합니다.
170+
171+
- **SELECT**:
172+
```typescript
173+
// 모든 컬럼 선택
174+
await client.queryBuilder.select().from("Users").execute();
175+
176+
// 특정 컬럼 선택 및 필터 적용
177+
await client.queryBuilder
178+
.select(["name", "email"])
179+
.from("Users")
180+
.where(row => Number(row[3]) > 30) // age(3번째 컬럼이라 가정)로 필터링
181+
.execute();
182+
```
183+
184+
- **INSERT**:
185+
```typescript
186+
const newRow = ["3", "Peter Jones", "peter@example.com", 42];
187+
await client.queryBuilder.insert(newRow).into("Users").execute();
188+
```
189+
190+
- **UPDATE**:
191+
```typescript
192+
const updatedData = ["Peter Jones Jr.", "peter.jr@example.com", 43];
193+
await client.queryBuilder
194+
.update(updatedData)
195+
.from("Users")
196+
.where(row => row[1] === "3") // id가 "3"인 행 대상
197+
.execute();
198+
```
199+
200+
- **DELETE**:
201+
```typescript
202+
await client.queryBuilder
203+
.delete()
204+
.from("Users")
205+
.where(row => row[2] === "peter.jr@example.com") // 이메일이 일치하는 행 대상
206+
.execute();
207+
```
208+
209+
- **쿼리 연결 (`and`)**:
210+
여러 작업을 하나의 배치(batch) 요청으로 연결하여 성능을 향상시킬 수 있습니다.
211+
```typescript
212+
await client.queryBuilder
213+
.insert(["4", "Alice", "alice@example.com"]).into("Users")
214+
.and()
215+
.insert(["p1", "My First Post", "...", "4"]).into("Posts")
216+
.execute();
217+
```
166218

167219
쿼리 빌더는 데이터 조작을 위한 유창한(fluent) API를 제공합니다.
168220

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -108,17 +108,17 @@ async function main() {
108108

109109
// Use the query builder for CRUD operations
110110
console.log("Inserting new users...");
111-
await client.query()
111+
await client.queryBuilder
112112
.insert(["1", "John Doe", "john@example.com", 30]).into("Users")
113113
.and(["2", "Jane Smith", "jane@example.com"]).into("Users") // Chain inserts with and()
114114
.execute();
115115

116116
console.log("Fetching users...");
117-
const allUsers = await client.query().select().from("Users").execute();
117+
const allUsers = await client.queryBuilder.select().from("Users").execute();
118118
console.log("All Users:", allUsers);
119119

120120
console.log("Fetching users older than 25...");
121-
const filteredUsers = await client.query()
121+
const filteredUsers = await client.queryBuilder
122122
.select(["name", "email"])
123123
.from("Users")
124124
.where((row) => {
@@ -162,17 +162,17 @@ The `schemaManager` ensures your spreadsheet structure matches your code definit
162162
- `mode: 'force'`: Overwrites existing sheets that don't match the schema, potentially causing data loss.
163163
- `mode: 'clean'`: Wipes all data and writes only the schema headers.
164164

165-
### Query Builder (`client.query()`)
165+
### Query Builder (`client.queryBuilder`)
166166

167167
The query builder provides a fluent API for data manipulation.
168168

169169
- **SELECT**:
170170
```typescript
171171
// Select all columns
172-
await client.query().select().from("Users").execute();
172+
await client.queryBuilder.select().from("Users").execute();
173173

174174
// Select specific columns and apply a filter
175-
await client.query()
175+
await client.queryBuilder
176176
.select(["name", "email"])
177177
.from("Users")
178178
.where(row => Number(row[3]) > 30) // filter by age (assuming age is the 3rd column)
@@ -182,13 +182,13 @@ The query builder provides a fluent API for data manipulation.
182182
- **INSERT**:
183183
```typescript
184184
const newRow = ["3", "Peter Jones", "peter@example.com", 42];
185-
await client.query().insert(newRow).into("Users").execute();
185+
await client.queryBuilder.insert(newRow).into("Users").execute();
186186
```
187187

188188
- **UPDATE**:
189189
```typescript
190190
const updatedData = ["Peter Jones Jr.", "peter.jr@example.com", 43];
191-
await client.query()
191+
await client.queryBuilder
192192
.update(updatedData)
193193
.from("Users")
194194
.where(row => row[1] === "3") // where id is "3"
@@ -197,7 +197,7 @@ The query builder provides a fluent API for data manipulation.
197197

198198
- **DELETE**:
199199
```typescript
200-
await client.query()
200+
await client.queryBuilder
201201
.delete()
202202
.from("Users")
203203
.where(row => row[2] === "peter.jr@example.com") // where email matches
@@ -207,7 +207,7 @@ The query builder provides a fluent API for data manipulation.
207207
- **Chaining Queries (`and`)**:
208208
You can chain multiple operations into a single batch request for better performance.
209209
```typescript
210-
await client.query()
210+
await client.queryBuilder
211211
.insert(["4", "Alice", "alice@example.com"]).into("Users")
212212
.and()
213213
.insert(["p1", "My First Post", "...", "4"]).into("Posts")

packages/main/src/index.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,16 @@ import createSpreadsheetClient from './client/createSpreadsheetClient';
22
export default createSpreadsheetClient
33
export {createSpreadsheetClient}
44

5-
export { default as defineTable,fieldBuilder } from "./core/DDL/defineTable"
6-
export { default as Configs } from "./config/Configs"
7-
// Types
5+
export { default as defineTable,fieldBuilder, type InferTableType } from "./core/DDL/defineTable"
6+
export { default as Configs, type ClinetOptions } from "./config/Configs"
7+
export { default as SpreadsheetClient } from './client/SpreadsheetClient';
8+
export { default as QueryBuilder } from './core/DML/QueryBuilder';
9+
export { default as SchemaManager, type SyncModeType, type SyncOptions, type SyncResult } from "./core/DDL/SchemaManager";
10+
11+
// Core Types
812
export type { SpreadsheetConfigOptions } from './config/SpreadConfig';
913
export type { DataTypes } from "./core/DDL/abstracts/BaseFieldBuilder"
1014
export type { Credentials } from "./types/Credentials.ts"
1115
export type { FieldBuilder } from "./core/DDL/defineTable"
16+
export type { default as Schema } from "./core/DDL/implements/Schema";
17+
export type { Executable } from "./core/DML/abstracts/BaseBuilder";

0 commit comments

Comments
 (0)