hile-typeorm
1
总安装量
1
周安装量
#78725
全站排名
安装命令
npx skills add https://github.com/cevio/hile --skill hile-typeorm
Agent 安装分布
amp
1
cline
1
opencode
1
cursor
1
kimi-cli
1
codex
1
Skill 文档
@hile/typeorm
æ¬ææ¡£æ¯é¢å AI ç¼ç 模åå人类å¼åè ç 代ç çæè§èï¼é 读ååºè½æ£ç¡®å°ä½¿ç¨æ¬åºç¼åç¬¦åæ¶æè§åç代ç ã
1. æ¶ææ»è§
@hile/typeorm å¨ @hile/core ä¹ä¸æä¾ï¼
- é»è®¤å¯¼åºï¼ä¸ä¸ªéè¿
defineServiceå®ä¹ç TypeORM DataSource æå¡ï¼é ç½®æ¥èªç¯å¢åéï¼è¿ç¨éåºæ¶éè¿shutdown注åconnection.destroy()ã - transactionï¼äºå¡å°è£
彿°ï¼æ¥æ¶ DataSource ä¸åè°ï¼å¨åè°å
æä¾
QueryRunnerä¸rollback注åå¨ï¼æäº¤æååè¿åç»æï¼å¤±è´¥å忻并æ LIFO æ§è¡å·²æ³¨åç rollback åè°ã
ä¾èµï¼@hile/coreãtypeormãçæä»£ç æ¶å¿
é¡»éµå¾ª Hile çæå¡å®ä¹ä¸å è½½è§åï¼å¹¶æ£ç¡®ä½¿ç¨æ¬å
é»è®¤æå¡ä¸ transaction ç¾åã
2. ç±»åä¸ç¯å¢åé
2.1 ç¯å¢åéï¼DataSource é»è®¤æå¡ï¼
| åé | 说æ |
|---|---|
TYPEORM_TYPE |
æ°æ®åºç±»å |
TYPEORM_HOST |
ä¸»æº |
TYPEORM_USERNAME |
ç¨æ·å |
TYPEORM_PASSWORD |
å¯ç |
TYPEORM_DATABASE |
æ°æ®åºå |
TYPEORM_PORT |
端å£ï¼å符串ä¼è¢«è½¬ä¸ºæ°åï¼ |
TYPEORM_CHARSET |
æ°æ®åºå符é |
TYPEORM_ENTITY_PREFIX |
å®ä½è¡¨ååç¼ |
TYPEORM_ENTITIES |
å®ä½ç®å½ï¼åä¸è·¯å¾ï¼ä¼ä»¥åå ç´ æ°ç»ä¼ å ¥ DataSource.entitiesï¼ |
DataSource è¡ä¸ºï¼synchronize: trueï¼logging å¨ NODE_ENV === 'development' æ¶ä¸º trueãæªè®¾ç½® TYPEORM_ENTITIES æ¶ entities 为空æ°ç»ã
2.2 ç±»åï¼çæä»£ç æ¶é¡»éµå¾ªï¼
- 使ç¨
typeormçDataSourceãDataSourceOptionsãQueryRunnerã - transaction ç¾åï¼
function transaction<T>(
datasource: DataSource,
callback: (
runner: QueryRunner,
rollback: (roll: () => unknown | Promise<unknown>) => number
) => Promise<T>
): Promise<T>;
- é»è®¤æå¡ï¼
defineService(async (shutdown) => { ... return connection; })ï¼å¨connection.initialize()åshutdown(() => connection.destroy())ã
3. 代ç çææ¨¡æ¿ä¸è§å
3.1 使ç¨é»è®¤ DataSource æå¡
模æ¿ï¼
import { loadService } from '@hile/core'
import typeormService from '@hile/typeorm'
const ds = await loadService(typeormService)
// ä½¿ç¨ ds è¿è¡ TypeORM æä½
è§åï¼
- ä»
éè¿
loadService(é»è®¤å¯¼åº)è·å DataSourceï¼ä¸è¦èªè¡new DataSourceå¹¶æ´é²ä¸ºâå ¨å±æ°æ®æºâä¸ Hile å¹¶åã - ç¯å¢åéå¨åºç¨å¯å¨åå¿ é¡»é ç½®å®æ´ï¼å¦å DataSource åå§åå¯è½å¤±è´¥ã
3.2 å¨äºå¡ä¸æ§è¡å¹¶æ³¨ååæ»
模æ¿ï¼
import { loadService } from '@hile/core'
import { transaction } from '@hile/typeorm'
import typeormService from '@hile/typeorm'
const ds = await loadService(typeormService)
const result = await transaction(ds, async (runner, rollback) => {
// ä½¿ç¨ runner è¿è¡æ¥è¯¢/åå
¥
rollback(() => { /* ä¸å¡çº§åæ»é»è¾ï¼å¤±è´¥æ¶ LIFO æ§è¡ */ })
return value
})
è§åï¼
- 第ä¸ä¸ªåæ°å¿
é¡»æ¯
DataSourceå®ä¾ï¼é常æ¥èªloadService(typeormService)ï¼ã - åè°å
éè¦âäºå¡å¤±è´¥æ¶æ§è¡âçé»è¾éè¿
rollback(fn)注åï¼ä¸è¦ä¾èµå¨åè°å¤åæ§è¡æ¸ çã
3.3 ä¸ @hile/core ç约å®
- æ¬å
é»è®¤å¯¼åºæ¯ Hile æå¡ï¼
defineServiceï¼ï¼éµå¾ª core ç SKILLï¼æå¡å½æ°ä¸ºasync (shutdown)ï¼èµæºå建åç«å³shutdown(() => connection.destroy())ã - å
¶ä»æå¡è¥ä¾èµ DataSourceï¼åºå¨è¯¥æå¡å½æ°å
loadService(typeormService)è·åï¼ä¸è¦å¨æ¨¡åé¡¶å±ç¼å DataSourceã
3.4 忍¡å¼
- ä¸è¦å¨æªéè¿ Hile å è½½çæ
åµä¸ï¼å¤å¤èªè¡
new DataSource并䏿¬å é»è®¤æå¡æ··ç¨ã - ä¸è¦å¨
transactionåè°å¤ä¾èµâäºå¡æªæäº¤âçç¶æååç»é»è¾ï¼æäº¤/åæ»ç±transactionå é¨ç»ä¸å¤çã - ä¸è¦çç¥
shutdown(() => connection.destroy())æå°å ¶æ¾å¨initialize()ä¹åææ³¨åï¼åºå¨è¿æ¥åå§ååæ³¨åï¼ä¸æºç ä¸è´ï¼ã
4. API 鿥
| å¯¼åº | 说æ |
|---|---|
| é»è®¤å¯¼åº | defineService è¿åç DataSource æå¡ï¼ééè¿ loadService 使ç¨ï¼ |
transaction(datasource, callback) |
å¨ DataSource 䏿§è¡äºå¡ï¼åè°æ¥æ¶ (runner, rollback)ï¼è¿å Promise<T> |