@toiroakr/lines-db 0.1.0 → 0.1.2
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 +13 -0
- package/README.ja.md +272 -0
- package/README.md +272 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/cli.ts +1 -1
- package/LICENSE +0 -21
package/CHANGELOG.md
ADDED
package/README.ja.md
ADDED
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
# lines-db
|
|
2
|
+
|
|
3
|
+
JSONLファイルをテーブルとして扱うデータ管理ライブラリです。アプリケーションのシードデータ管理やテストに最適です。
|
|
4
|
+
|
|
5
|
+
## 機能
|
|
6
|
+
|
|
7
|
+
- 📝 JSONLファイルをデータベーステーブルとして読み込み
|
|
8
|
+
- ✅ **バリデーションとデータマイグレーションのためのCLIツール**
|
|
9
|
+
- 🔄 自動スキーマ推論
|
|
10
|
+
- 📦 **JSON型カラムサポート** - 自動シリアライズ/デシリアライズ
|
|
11
|
+
- ✅ StandardSchemaによる組み込みバリデーション(Valibot、Zodなど対応)
|
|
12
|
+
- 🎯 **テーブル名からの自動型推論**
|
|
13
|
+
- 🔄 **双方向スキーマ変換**
|
|
14
|
+
- 💾 **JSONLファイルへの自動同期**
|
|
15
|
+
- 🛡️ TypeScriptによる型安全性
|
|
16
|
+
- 🌐 **マルチランタイムサポート** - Node.js (22.5+)、Bun、Deno
|
|
17
|
+
|
|
18
|
+
## インストール
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install @toiroakr/lines-db
|
|
22
|
+
# または
|
|
23
|
+
pnpm add @toiroakr/lines-db
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## CLI の使い方
|
|
27
|
+
|
|
28
|
+
### スキーマの設定
|
|
29
|
+
|
|
30
|
+
JSONLファイルと同じ場所にスキーマファイルを作成します:
|
|
31
|
+
|
|
32
|
+
**ディレクトリ構造:**
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
data/
|
|
36
|
+
├── users.jsonl
|
|
37
|
+
├── users.schema.ts
|
|
38
|
+
├── products.jsonl
|
|
39
|
+
└── products.schema.ts
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**スキーマの例(users.schema.ts):**
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
import * as v from 'valibot';
|
|
46
|
+
import { defineSchema } from '@toiroakr/lines-db';
|
|
47
|
+
import type { InferOutput } from '@toiroakr/lines-db';
|
|
48
|
+
|
|
49
|
+
const userSchema = v.object({
|
|
50
|
+
id: v.pipe(v.number(), v.integer(), v.minValue(1)),
|
|
51
|
+
name: v.pipe(v.string(), v.minLength(1)),
|
|
52
|
+
age: v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(150)),
|
|
53
|
+
email: v.pipe(v.string(), v.email()),
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export const schema = defineSchema(userSchema);
|
|
57
|
+
export type User = InferOutput<typeof schema>;
|
|
58
|
+
export default schema;
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**サポートされているバリデーションライブラリ:**
|
|
62
|
+
|
|
63
|
+
- Valibot
|
|
64
|
+
- Zod(StandardSchemaサポート付き)
|
|
65
|
+
- Yup(StandardSchemaサポート付き)
|
|
66
|
+
- [StandardSchema](https://standardschema.dev/)を実装する任意のライブラリ
|
|
67
|
+
|
|
68
|
+
### JSONL ファイルのバリデーション
|
|
69
|
+
|
|
70
|
+
JSONLファイルをスキーマに対してバリデーションします:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npx lines-db validate <dataDir>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**例:**
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# ./dataディレクトリ内の全JSONLファイルをバリデーション
|
|
80
|
+
npx lines-db validate ./data
|
|
81
|
+
|
|
82
|
+
# 詳細出力
|
|
83
|
+
npx lines-db validate ./data --verbose
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
このコマンドは以下を実行します:
|
|
87
|
+
|
|
88
|
+
- ディレクトリ内の全ての `.jsonl` ファイルを検索
|
|
89
|
+
- 対応する `.schema.ts` ファイルを読み込み
|
|
90
|
+
- 各レコードをスキーマに対してバリデーション
|
|
91
|
+
- 詳細なメッセージとともにバリデーションエラーを報告
|
|
92
|
+
|
|
93
|
+
### データのマイグレーション
|
|
94
|
+
|
|
95
|
+
バリデーション付きでJSONLファイルのデータを変換します:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npx lines-db migrate <file> <transform> [options]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**例:**
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# 全ての年齢に1を加算
|
|
105
|
+
npx lines-db migrate ./data/users.jsonl "(row) => ({ ...row, age: row.age + 1 })"
|
|
106
|
+
|
|
107
|
+
# フィルター付きでマイグレーション
|
|
108
|
+
npx lines-db migrate ./data/users.jsonl "(row) => ({ ...row, active: true })" --filter "{ age: (age) => age > 18 }"
|
|
109
|
+
|
|
110
|
+
# エラー時に変換後のデータを保存
|
|
111
|
+
npx lines-db migrate ./data/users.jsonl "(row) => ({ ...row, age: row.age + 1 })" --errorOutput ./migrated.jsonl
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**オプション:**
|
|
115
|
+
|
|
116
|
+
- `--filter, -f <expr>` - 行を選択するフィルター式
|
|
117
|
+
- `--errorOutput, -e <path>` - マイグレーション失敗時に変換後のデータを保存するファイルパス
|
|
118
|
+
- `--verbose, -v` - 詳細なエラーメッセージを表示
|
|
119
|
+
|
|
120
|
+
マイグレーションはトランザクション内で実行され、コミット前に全ての変換後の行がバリデーションされます。
|
|
121
|
+
|
|
122
|
+
## TypeScript での使い方
|
|
123
|
+
|
|
124
|
+
### 型の生成
|
|
125
|
+
|
|
126
|
+
スキーマから型安全なデータベースアクセスのためのTypeScript型を生成します:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
npx lines-db generate <dataDir>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**例:**
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# 型を生成(デフォルトで ./data/db.ts を作成)
|
|
136
|
+
npx lines-db generate ./data
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**package.jsonに追加:**
|
|
140
|
+
|
|
141
|
+
```json
|
|
142
|
+
"scripts": {
|
|
143
|
+
"db:validate": "lines-db validate ./data",
|
|
144
|
+
"db:generate": "lines-db generate ./data"
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### クイックスタート
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
import { LinesDB } from '@toiroakr/lines-db';
|
|
152
|
+
|
|
153
|
+
const db = LinesDB.create({ dataDir: './data' });
|
|
154
|
+
await db.initialize();
|
|
155
|
+
|
|
156
|
+
const users = db.find('users');
|
|
157
|
+
const user = db.findOne('users', { id: 1 });
|
|
158
|
+
|
|
159
|
+
await db.close();
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### 生成された型の使用
|
|
163
|
+
|
|
164
|
+
`npx lines-db generate ./data` を実行後:
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
import { LinesDB } from '@toiroakr/lines-db';
|
|
168
|
+
import { config } from './data/db.js';
|
|
169
|
+
|
|
170
|
+
const db = LinesDB.create(config);
|
|
171
|
+
await db.initialize();
|
|
172
|
+
|
|
173
|
+
// ✨ 型は自動的に推論されます!
|
|
174
|
+
const users = db.find('users');
|
|
175
|
+
|
|
176
|
+
// ✨ 型安全な操作
|
|
177
|
+
db.insert('users', {
|
|
178
|
+
id: 10,
|
|
179
|
+
name: 'Alice',
|
|
180
|
+
age: 30,
|
|
181
|
+
email: 'alice@example.com',
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
await db.close();
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### コア API
|
|
188
|
+
|
|
189
|
+
クエリ: `find()`, `findOne()`, `query()` | 変更: `insert()`, `update()`, `delete()` | バッチ: `batchInsert()`, `batchUpdate()`, `batchDelete()` | トランザクション: `transaction()` | スキーマ: `getSchema()`, `getTableNames()`
|
|
190
|
+
|
|
191
|
+
### JSON型カラム
|
|
192
|
+
|
|
193
|
+
オブジェクトと配列は自動的にJSON型カラムとして処理されます:
|
|
194
|
+
|
|
195
|
+
```typescript
|
|
196
|
+
db.insert('orders', {
|
|
197
|
+
id: 1,
|
|
198
|
+
items: [{ name: 'Laptop', quantity: 1 }],
|
|
199
|
+
metadata: { source: 'web' },
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
const order = db.findOne('orders', { id: 1 });
|
|
203
|
+
console.log(order.items[0].name); // "Laptop"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### スキーマ変換
|
|
207
|
+
|
|
208
|
+
変換を含むスキーマ(例:string → Date)の場合、バックワード変換を提供します:
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
import * as v from 'valibot';
|
|
212
|
+
import { defineSchema } from '@toiroakr/lines-db';
|
|
213
|
+
|
|
214
|
+
const eventSchema = v.pipe(
|
|
215
|
+
v.object({
|
|
216
|
+
date: v.pipe(
|
|
217
|
+
v.string(),
|
|
218
|
+
v.isoDate(),
|
|
219
|
+
v.transform((str) => new Date(str)),
|
|
220
|
+
),
|
|
221
|
+
}),
|
|
222
|
+
);
|
|
223
|
+
|
|
224
|
+
export const schema = defineSchema(eventSchema, (output) => ({
|
|
225
|
+
...output,
|
|
226
|
+
date: output.date.toISOString(), // DateをStringに変換
|
|
227
|
+
}));
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### トランザクション
|
|
231
|
+
|
|
232
|
+
トランザクション外の操作は自動的に同期されます:
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
db.insert('users', { id: 10, name: 'Alice', age: 30 });
|
|
236
|
+
// ↑ 自動的に users.jsonl に同期
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
トランザクションでのバッチ操作:
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
await db.transaction(async (tx) => {
|
|
243
|
+
tx.insert('users', { id: 10, name: 'Alice', age: 30 });
|
|
244
|
+
tx.update('users', { age: 31 }, { id: 1 });
|
|
245
|
+
// コミット時に全ての変更がアトミックに同期
|
|
246
|
+
});
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## 設定
|
|
250
|
+
|
|
251
|
+
```typescript
|
|
252
|
+
interface DatabaseConfig {
|
|
253
|
+
dataDir: string; // JSONLファイルが含まれるディレクトリ
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
const db = LinesDB.create({ dataDir: './data' });
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## 型マッピング
|
|
260
|
+
|
|
261
|
+
| JSON型 | カラム型 | SQLiteストレージ |
|
|
262
|
+
| -------------------- | -------- | ---------------- |
|
|
263
|
+
| number(整数) | INTEGER | INTEGER |
|
|
264
|
+
| number(浮動小数点) | REAL | REAL |
|
|
265
|
+
| string | TEXT | TEXT |
|
|
266
|
+
| boolean | INTEGER | INTEGER |
|
|
267
|
+
| object | JSON | TEXT |
|
|
268
|
+
| array | JSON | TEXT |
|
|
269
|
+
|
|
270
|
+
## ライセンス
|
|
271
|
+
|
|
272
|
+
MIT
|
package/README.md
ADDED
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
# lines-db
|
|
2
|
+
|
|
3
|
+
A data management library that treats JSONL (JSON Lines) files as tables. Perfect for managing application seed data and testing.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 📝 Load JSONL files as database tables
|
|
8
|
+
- ✅ **CLI tools for validation and data migration**
|
|
9
|
+
- 🔄 Automatic schema inference
|
|
10
|
+
- 📦 **JSON column support** with automatic serialization/deserialization
|
|
11
|
+
- ✅ Built-in validation using StandardSchema (Valibot, Zod, etc.)
|
|
12
|
+
- 🎯 **Automatic type inference from table names**
|
|
13
|
+
- 🔄 **Bidirectional schema transformations**
|
|
14
|
+
- 💾 **Auto-sync to JSONL files**
|
|
15
|
+
- 🛡️ Type-safe with TypeScript
|
|
16
|
+
- 🌐 **Multi-runtime support** - Node.js (22.5+), Bun, Deno
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install @toiroakr/lines-db
|
|
22
|
+
# or
|
|
23
|
+
pnpm add @toiroakr/lines-db
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## CLI Usage
|
|
27
|
+
|
|
28
|
+
### Setting Up Schemas
|
|
29
|
+
|
|
30
|
+
Create schema files alongside your JSONL files:
|
|
31
|
+
|
|
32
|
+
**Directory structure:**
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
data/
|
|
36
|
+
├── users.jsonl
|
|
37
|
+
├── users.schema.ts
|
|
38
|
+
├── products.jsonl
|
|
39
|
+
└── products.schema.ts
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Example schema (users.schema.ts):**
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
import * as v from 'valibot';
|
|
46
|
+
import { defineSchema } from '@toiroakr/lines-db';
|
|
47
|
+
import type { InferOutput } from '@toiroakr/lines-db';
|
|
48
|
+
|
|
49
|
+
const userSchema = v.object({
|
|
50
|
+
id: v.pipe(v.number(), v.integer(), v.minValue(1)),
|
|
51
|
+
name: v.pipe(v.string(), v.minLength(1)),
|
|
52
|
+
age: v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(150)),
|
|
53
|
+
email: v.pipe(v.string(), v.email()),
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export const schema = defineSchema(userSchema);
|
|
57
|
+
export type User = InferOutput<typeof schema>;
|
|
58
|
+
export default schema;
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Supported validation libraries:**
|
|
62
|
+
|
|
63
|
+
- Valibot
|
|
64
|
+
- Zod (with StandardSchema support)
|
|
65
|
+
- Yup (with StandardSchema support)
|
|
66
|
+
- Any library implementing [StandardSchema](https://standardschema.dev/)
|
|
67
|
+
|
|
68
|
+
### Validate JSONL Files
|
|
69
|
+
|
|
70
|
+
Validate your JSONL files against their schemas:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npx lines-db validate <dataDir>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Example:**
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Validate all JSONL files in ./data directory
|
|
80
|
+
npx lines-db validate ./data
|
|
81
|
+
|
|
82
|
+
# Verbose output
|
|
83
|
+
npx lines-db validate ./data --verbose
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
This command will:
|
|
87
|
+
|
|
88
|
+
- Find all `.jsonl` files in the directory
|
|
89
|
+
- Load corresponding `.schema.ts` files
|
|
90
|
+
- Validate each record against the schema
|
|
91
|
+
- Report validation errors with detailed messages
|
|
92
|
+
|
|
93
|
+
### Migrate Data
|
|
94
|
+
|
|
95
|
+
Transform data in JSONL files with validation:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npx lines-db migrate <file> <transform> [options]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Example:**
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Update all ages by adding 1
|
|
105
|
+
npx lines-db migrate ./data/users.jsonl "(row) => ({ ...row, age: row.age + 1 })"
|
|
106
|
+
|
|
107
|
+
# Migrate with filter
|
|
108
|
+
npx lines-db migrate ./data/users.jsonl "(row) => ({ ...row, active: true })" --filter "{ age: (age) => age > 18 }"
|
|
109
|
+
|
|
110
|
+
# Save transformed data on error
|
|
111
|
+
npx lines-db migrate ./data/users.jsonl "(row) => ({ ...row, age: row.age + 1 })" --errorOutput ./migrated.jsonl
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Options:**
|
|
115
|
+
|
|
116
|
+
- `--filter, -f <expr>` - Filter expression to select rows
|
|
117
|
+
- `--errorOutput, -e <path>` - Save transformed data to file if migration fails
|
|
118
|
+
- `--verbose, -v` - Show detailed error messages
|
|
119
|
+
|
|
120
|
+
The migration runs in a transaction and validates all transformed rows before committing.
|
|
121
|
+
|
|
122
|
+
## TypeScript Usage
|
|
123
|
+
|
|
124
|
+
### Generate Types
|
|
125
|
+
|
|
126
|
+
Generate TypeScript types from your schemas for type-safe database access:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
npx lines-db generate <dataDir>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Example:**
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# Generate types (creates ./data/db.ts by default)
|
|
136
|
+
npx lines-db generate ./data
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Add to package.json:**
|
|
140
|
+
|
|
141
|
+
```json
|
|
142
|
+
"scripts": {
|
|
143
|
+
"db:validate": "lines-db validate ./data",
|
|
144
|
+
"db:generate": "lines-db generate ./data"
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Quick Start
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
import { LinesDB } from '@toiroakr/lines-db';
|
|
152
|
+
|
|
153
|
+
const db = LinesDB.create({ dataDir: './data' });
|
|
154
|
+
await db.initialize();
|
|
155
|
+
|
|
156
|
+
const users = db.find('users');
|
|
157
|
+
const user = db.findOne('users', { id: 1 });
|
|
158
|
+
|
|
159
|
+
await db.close();
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Using Generated Types
|
|
163
|
+
|
|
164
|
+
After running `npx lines-db generate ./data`:
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
import { LinesDB } from '@toiroakr/lines-db';
|
|
168
|
+
import { config } from './data/db.js';
|
|
169
|
+
|
|
170
|
+
const db = LinesDB.create(config);
|
|
171
|
+
await db.initialize();
|
|
172
|
+
|
|
173
|
+
// ✨ Type is automatically inferred!
|
|
174
|
+
const users = db.find('users');
|
|
175
|
+
|
|
176
|
+
// ✨ Type-safe operations
|
|
177
|
+
db.insert('users', {
|
|
178
|
+
id: 10,
|
|
179
|
+
name: 'Alice',
|
|
180
|
+
age: 30,
|
|
181
|
+
email: 'alice@example.com',
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
await db.close();
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Core API
|
|
188
|
+
|
|
189
|
+
Query: `find()`, `findOne()`, `query()` | Modify: `insert()`, `update()`, `delete()` | Batch: `batchInsert()`, `batchUpdate()`, `batchDelete()` | Transaction: `transaction()` | Schema: `getSchema()`, `getTableNames()`
|
|
190
|
+
|
|
191
|
+
### JSON Columns
|
|
192
|
+
|
|
193
|
+
Objects and arrays are automatically handled as JSON columns:
|
|
194
|
+
|
|
195
|
+
```typescript
|
|
196
|
+
db.insert('orders', {
|
|
197
|
+
id: 1,
|
|
198
|
+
items: [{ name: 'Laptop', quantity: 1 }],
|
|
199
|
+
metadata: { source: 'web' },
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
const order = db.findOne('orders', { id: 1 });
|
|
203
|
+
console.log(order.items[0].name); // "Laptop"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Schema Transformations
|
|
207
|
+
|
|
208
|
+
For schemas with transformations (e.g., string → Date), provide backward transformation:
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
import * as v from 'valibot';
|
|
212
|
+
import { defineSchema } from '@toiroakr/lines-db';
|
|
213
|
+
|
|
214
|
+
const eventSchema = v.pipe(
|
|
215
|
+
v.object({
|
|
216
|
+
date: v.pipe(
|
|
217
|
+
v.string(),
|
|
218
|
+
v.isoDate(),
|
|
219
|
+
v.transform((str) => new Date(str)),
|
|
220
|
+
),
|
|
221
|
+
}),
|
|
222
|
+
);
|
|
223
|
+
|
|
224
|
+
export const schema = defineSchema(eventSchema, (output) => ({
|
|
225
|
+
...output,
|
|
226
|
+
date: output.date.toISOString(), // Convert Date back to string
|
|
227
|
+
}));
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Transactions
|
|
231
|
+
|
|
232
|
+
Operations outside transactions are auto-synced:
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
db.insert('users', { id: 10, name: 'Alice', age: 30 });
|
|
236
|
+
// ↑ Automatically synced to users.jsonl
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Batch operations with transactions:
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
await db.transaction(async (tx) => {
|
|
243
|
+
tx.insert('users', { id: 10, name: 'Alice', age: 30 });
|
|
244
|
+
tx.update('users', { age: 31 }, { id: 1 });
|
|
245
|
+
// All changes synced atomically on commit
|
|
246
|
+
});
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Configuration
|
|
250
|
+
|
|
251
|
+
```typescript
|
|
252
|
+
interface DatabaseConfig {
|
|
253
|
+
dataDir: string; // Directory containing JSONL files
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
const db = LinesDB.create({ dataDir: './data' });
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## Type Mapping
|
|
260
|
+
|
|
261
|
+
| JSON Type | Column Type | SQLite Storage |
|
|
262
|
+
| ---------------- | ----------- | -------------- |
|
|
263
|
+
| number (integer) | INTEGER | INTEGER |
|
|
264
|
+
| number (float) | REAL | REAL |
|
|
265
|
+
| string | TEXT | TEXT |
|
|
266
|
+
| boolean | INTEGER | INTEGER |
|
|
267
|
+
| object | JSON | TEXT |
|
|
268
|
+
| array | JSON | TEXT |
|
|
269
|
+
|
|
270
|
+
## License
|
|
271
|
+
|
|
272
|
+
MIT
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/sqlite-adapter.ts","../src/types.ts","../src/database.ts","../src/jsonl-reader.ts","../src/jsonl-writer.ts","../src/schema-loader.ts","../src/directory-scanner.ts","../src/schema.ts","../src/type-generator.ts","../src/validator.ts","../src/jsonl-migration.ts","../src/runtime.ts"],"sourcesContent":[],"mappings":";;;;;;;AASA;AAMA;;UANiB,cAAA;wBACO;ECPZ,IAAA,CAAA,GAAK,EAAA,MAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/sqlite-adapter.ts","../src/types.ts","../src/database.ts","../src/jsonl-reader.ts","../src/jsonl-writer.ts","../src/schema-loader.ts","../src/directory-scanner.ts","../src/schema.ts","../src/type-generator.ts","../src/validator.ts","../src/jsonl-migration.ts","../src/runtime.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/sqlite-adapter.ts","../src/types.ts","../src/database.ts","../src/jsonl-reader.ts","../src/jsonl-writer.ts","../src/schema-loader.ts","../src/directory-scanner.ts","../src/schema.ts","../src/type-generator.ts","../src/validator.ts","../src/jsonl-migration.ts","../src/runtime.ts"],"sourcesContent":[],"mappings":";;;;;;;AASA;AAMA;;UANiB,cAAA;wBACO;ECPZ,IAAA,CAAA,GAAK,EAAA,MAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/sqlite-adapter.ts","../src/types.ts","../src/database.ts","../src/jsonl-reader.ts","../src/jsonl-writer.ts","../src/schema-loader.ts","../src/directory-scanner.ts","../src/schema.ts","../src/type-generator.ts","../src/validator.ts","../src/jsonl-migration.ts","../src/runtime.ts"],"sourcesContent":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toiroakr/lines-db",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "A database implementation that treats JSONL files as tables using SQLite",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -21,6 +21,11 @@
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsdown && cp dist/index.d.ts dist/index.d.cts",
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
|
+
"test": "vitest run"
|
|
28
|
+
},
|
|
24
29
|
"keywords": [
|
|
25
30
|
"database",
|
|
26
31
|
"jsonl",
|
|
@@ -55,10 +60,5 @@
|
|
|
55
60
|
"dependencies": {
|
|
56
61
|
"@standard-schema/spec": "^1.0.0",
|
|
57
62
|
"commander": "^14.0.2"
|
|
58
|
-
},
|
|
59
|
-
"scripts": {
|
|
60
|
-
"build": "tsdown && cp dist/index.d.ts dist/index.d.cts",
|
|
61
|
-
"typecheck": "tsc --noEmit",
|
|
62
|
-
"test": "vitest run"
|
|
63
63
|
}
|
|
64
|
-
}
|
|
64
|
+
}
|
package/src/cli.ts
CHANGED
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Akira HIGUCHI
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|