supalite 0.1.9 → 0.1.10

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.10] - 2025-03-02
4
+
5
+ ### Fixed
6
+ - order 메서드를 수정하여 컬럼 이름만 전달하는 경우에도 기본적으로 오름차순 정렬이 적용되도록 개선
7
+ - Supabase와의 호환성 개선 (.order('post_index') 형식 지원)
8
+ - order 메서드 사용 예제 추가
9
+
3
10
  ## [0.1.9] - 2025-03-02
4
11
 
5
12
  ### Fixed
@@ -1,5 +1,46 @@
1
1
  # 변경 작업 보고서
2
2
 
3
+ ## [2025-03-02] order 메서드 수정을 통한 Supabase 호환성 개선
4
+
5
+ ### 작업 내용
6
+
7
+ 1. **문제 분석**:
8
+ - Supabase 클라이언트를 사용하는 코드를 Supalite로 변경했을 때 `.order('post_index')` 형식의 쿼리가 동작하지 않는 문제가 있었습니다.
9
+ - 기존 `order` 메서드는 `column`과 `{ ascending: boolean }` 객체를 필수 매개변수로 받고 있어, 컬럼 이름만 전달하는 경우에는 사용할 수 없었습니다.
10
+ - 사용자가 요청한 형식인 `.order('post_index')`와 같이 컬럼 이름만 전달하는 경우에도 기본적으로 오름차순 정렬이 적용되도록 수정이 필요했습니다.
11
+
12
+ 2. **해결 방법**:
13
+ - `query-builder.ts` 파일에서 `order` 메서드의 시그니처를 변경하여 두 번째 매개변수를 선택적(optional)으로 만들었습니다.
14
+ - `options?.ascending !== false` 조건을 사용하여 `ascending` 매개변수가 `undefined`나 `true`인 경우에는 오름차순 정렬이 적용되도록 했습니다.
15
+ - 이를 통해 `.order('post_index')`와 같이 컬럼 이름만 전달하는 경우에도 기본적으로 오름차순 정렬이 적용되도록 했습니다.
16
+
17
+ 3. **Supabase 호환성 개선**:
18
+ - 이번 수정을 통해 Supabase 클라이언트를 사용하는 코드를 Supalite로 변경할 때 발생하는 호환성 문제를 해결했습니다.
19
+ - Supabase 클라이언트에서는 `.order('post_index')`와 같이 컬럼 이름만 전달하는 경우에도 오름차순 정렬이 적용되므로, Supalite도 동일한 동작을 하도록 수정했습니다.
20
+
21
+ 4. **예제 코드 작성**:
22
+ - `order` 메서드를 사용하는 예제 파일 `examples/tests/order-method.ts`를 작성했습니다.
23
+ - 예제 코드에는 다음과 같은 내용이 포함되어 있습니다:
24
+ - 컬럼 이름만 전달하는 경우 (오름차순)
25
+ - 오름차순을 명시적으로 지정하는 경우
26
+ - 내림차순을 지정하는 경우
27
+ - Supabase 스타일 쿼리 테스트
28
+
29
+ 5. **문서화**:
30
+ - CHANGELOG.md 파일을 업데이트하여 변경 사항을 문서화했습니다.
31
+ - 버전을 0.1.10으로 업데이트했습니다.
32
+
33
+ ### 변경된 파일
34
+
35
+ 1. `src/query-builder.ts`: `order` 메서드의 시그니처를 변경하여 두 번째 매개변수를 선택적으로 만들었습니다.
36
+ 2. `examples/tests/order-method.ts`: `order` 메서드를 사용하는 예제 파일을 작성했습니다.
37
+ 3. `CHANGELOG.md`: 변경 사항을 문서화하고 버전을 0.1.10으로 업데이트했습니다.
38
+ 4. `CHANGE_REPORT_LOG.md`: 변경 작업 보고서를 추가했습니다.
39
+
40
+ ### 결론
41
+
42
+ 이번 작업을 통해 Supalite 라이브러리의 Supabase 호환성을 개선했습니다. 이제 Supabase 클라이언트를 사용하는 코드를 Supalite로 변경할 때 `.order('post_index')` 형식의 쿼리도 그대로 사용할 수 있게 되었습니다.
43
+
3
44
  ## [2025-03-02] single() 메서드 반환 타입 수정을 통한 Supabase 호환성 개선
4
45
 
5
46
  ### 작업 내용
@@ -34,8 +34,8 @@ export declare class QueryBuilder<T extends DatabaseSchema, S extends SchemaName
34
34
  in(column: string, values: any[]): this;
35
35
  gte(column: string, value: any): this;
36
36
  lte(column: string, value: any): this;
37
- order(column: string, { ascending }: {
38
- ascending: boolean;
37
+ order(column: string, options?: {
38
+ ascending?: boolean;
39
39
  }): this;
40
40
  limit(value: number): this;
41
41
  offset(value: number): this;
@@ -77,7 +77,8 @@ class QueryBuilder {
77
77
  this.whereValues.push(value);
78
78
  return this;
79
79
  }
80
- order(column, { ascending = true }) {
80
+ order(column, options) {
81
+ const ascending = options?.ascending !== false; // undefined나 true면 오름차순, false만 내림차순
81
82
  this.orderByColumns.push(`"${column}" ${ascending ? 'ASC' : 'DESC'}`);
82
83
  return this;
83
84
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "supalite",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "A lightweight TypeScript PostgreSQL client with Supabase-style API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",