원클릭으로
dali-orm
DaliORM patterns, type-safe query builders, schema definitions, migrations, and SurrealDB integration
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
DaliORM patterns, type-safe query builders, schema definitions, migrations, and SurrealDB integration
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Commit, push, branch, and manage version control with GitButler. Use for: commit my changes, check what changed, create a PR, push my branch, view diff, create branches, stage files, edit commit history, squash commits, amend commits, undo commits, pull requests, merge, stash work. Replaces git - use 'but' instead of git commit, git status, git push, git checkout, git add, git diff, git branch, git rebase, git stash, git merge. Covers all git, version control, and source control operations.
Implements advanced TypeScript type systems, creates custom type guards, utility types, and branded types, and configures tRPC for end-to-end type safety. Use when building TypeScript applications requiring advanced generics, conditional or mapped types, discriminated unions, monorepo setup, or full-stack type safety with tRPC.
Use when writing unit/integration tests for Vite projects - configure vitest.config.ts, write test suites with describe/it, create mock implementations with vi.fn and vi.mock, set up code coverage thresholds, and run tests in parallel
Internal logic and data flow philosophy (The 5 Laws of Elegant Defense). Understand deeply to ensure code guides data naturally and prevents errors.
Comprehensive code review methodology with severity classification and confidence thresholds
Visual & UI philosophy (The 5 Pillars of Intentional UI). Understand deeply to avoid "AI slop" and create distinctive, memorable interfaces.
| name | dali-orm |
| description | DaliORM patterns, type-safe query builders, schema definitions, migrations, and SurrealDB integration |
| license | MIT |
Type-safe TypeScript ORM for SurrealDB. Provides fluent query builders, schema definitions, migration system, and database function wrappers.
src/
index.ts — Main entry: DaliORM, OrmSchema, connect, types
sdk/
dali-orm.ts — DaliORM class (connect, CRUD, query, execute)
orm-schema.ts — OrmSchema container (tables, access, variables, functions)
table.ts — defineTable, defineRelationTable, ColumnBuilder
schema.ts — AccessConfig definitions, accessToSQL
driver/ — SurrealDriver, NodeDriver, EmbeddedDriver, config, auth
functions/ — SurrealDB function wrappers (math, string, vector, etc.)
schema/column/ — Column builders (string, int, bool, datetime, record, etc.)
query/
index.ts — Query builder exports (select, insert, update, delete_, etc.)
select.ts — SelectBuilder + WhereBuilder
insert.ts — InsertBuilder
update.ts — UpdateBuilder
delete.ts — DeleteBuilder
relate.ts — RelateBuilder + GraphPath
upsert.ts — UpsertBuilder
create.ts — CreateBuilder
live.ts — LiveQueryBuilder
conditions.ts — Condition DSL (eq, ne, gt, contains, and, or, etc.)
types.ts — InferSelectResult, InferInsertInput, ColumnRef, etc.
binding.ts — bindTable, TableBinding
migration/
api.ts — Programmatic migration API (migrateToDatabase, rollbackMigrations, etc.)
config.ts — Migration config loading (supports shadow ns/db)
cli.ts — CLI entry (dali-orm generate|migrate|pull)
cli/ — CLI command implementations (migrate dev/deploy)
core/ — Runner, generator, snapshot, diff
core/shadow.ts — Shadow DB pre-validation (validate before apply)
ddl/ — Introspect, diff, types, journal
import { DaliORM, createOrmSchema, defineTable } from '@woss/dali-orm';
import { string, datetime, bool } from '@woss/dali-orm/sdk/schema/column/simple-builders';
import { record } from '@woss/dali-orm/sdk/schema/column/record';
import { select, insert } from '@woss/dali-orm/query';
// 1. Define schema
const usersTable = defineTable('users', {
name: string('name'),
email: string('email'),
verified: bool('verified'),
created_at: datetime('created_at').defaultNow(),
});
const schema = createOrmSchema({ tables: { users: usersTable } });
// 2. Connect
const orm = await DaliORM.connect({
nodeDriver: {
url: 'ws://localhost:10101',
namespace: 'test',
database: 'test',
auth: { username: 'root', password: 'root' },
},
schema,
});
// 3. Query with builders (type-safe)
const driver = orm.getDriver();
const results = await select(driver, usersTable)
.where((w) => w.eq('verified', true))
.limit(10)
.execute();
// results: InferSelectResult<typeof usersTable>[]
// 4. Insert
const [newUser] = await insert(driver, usersTable)
.one({ name: 'Alice', email: 'alice@example.com', verified: false })
.execute();
// 5. Raw SQL for complex queries
await orm.query('SELECT * FROM users WHERE email = $email', { email: 'a@b.com' });
| Task | File |
|---|---|
| Column builders, defineTable, OrmSchema | references/schema-definition.md |
| DaliORM class, connect, CRUD operations | references/dali-orm-class.md |
| Query builders (select/insert/update/etc) | references/query-builders.md |
| Conditions DSL (eq/ne/gt/and/or/isNull) | references/conditions.md |
| Migration system (CLI + programmatic) | references/migrations.md |
| Database function wrappers | references/functions.md |
| Type inference utilities | references/type-inference.md |
| Driver configuration | references/driver-config.md |
Load reference files based on task:
| Import Path | Exports |
|---|---|
@woss/dali-orm | DaliORM, OrmSchema, createOrmSchema, connect, SurrealDriver, TableDefinition, ColumnDefinition |
@woss/dali-orm/query | select, insert, update, delete_, upsert, create, relate, live, bindTable, all condition helpers, InferSelectResult, InferInsertInput, ColumnRef |
@woss/dali-orm/query/select | SelectBuilder, WhereBuilder, select |
@woss/dali-orm/query/insert | InsertBuilder, insert |
@woss/dali-orm/query/update | UpdateBuilder, update |
@woss/dali-orm/query/delete | DeleteBuilder, delete_ |
@woss/dali-orm/query/relate | RelateBuilder, GraphPath, relate, graphPath |
@woss/dali-orm/query/conditions | eq, ne, gt, gte, lt, lte, and, or, not, isNull, raw, etc. |
@woss/dali-orm/query/types | InferSelectResult, InferInsertInput, InferUpdateInput, ColumnRef, InferTypedRecord |
@woss/dali-orm/query/binding | bindTable, TableBinding |
@woss/dali-orm/migration/api | migrateToDatabase, rollbackMigrations, getMigrationStatus, generateAndApplyMigration, pushSchemaFromTableDefs |
@woss/dali-orm/migration/core/shadow | connectToShadow, destroyShadow, validateWithShadow, ShadowConfig, ShadowValidationResult |
@woss/dali-orm/sdk/table | defineTable, defineRelationTable, TableDefinition, ColumnBuilder, IndexDefinition |
@woss/dali-orm/sdk/schema/column/simple-builders | string, int, float, bool, datetime, duration, decimal, array, object, uuid, createBuilder |
@woss/dali-orm/sdk/schema/column/record | record |
@woss/dali-orm/sdk/schema/column/base | BaseColumnBuilder |
@woss/dali-orm/sdk/dali-orm | DaliORM, DaliORMConfig, DaliORMTransaction |
@woss/dali-orm/sdk/orm-schema | OrmSchema, createOrmSchema, OrmSchemaConfig |
@woss/dali-orm/sdk/driver/types | SurrealDriver, DriverConfig, EmbeddedConfig, AuthType, ReconnectOptions |
typescript-pro skill for advanced type patternsvitest skill for writing tests