UNPKG

lemon-devkit

Version:

Lemon Serverless Micro-Service Platform for local development

91 lines (64 loc) 3.09 kB
# lemon-devkit local develop kit for [lemon-core](https://github.com/lemoncloud-io/lemon-core) ## Usage - required to install seperately `lemon-core` in advance. (recommended to use `4.2.x` version) ```sh # STEP.1 install `lemon-devkit` npm i --save-dev lemon-devkit ``` ---------------- ## lemon-fields `ts-transformer-keys``keys<T>()`를 generated registry 방식으로 교체하는 CLI 도구이다. - `migrate`: 기존 `keys<T>()` 호출을 `fieldKeys.<name><T>()`로 변환 - `gen`: TypeScript checker로 field 목록을 읽고 `src/generated/field-registry.ts` 생성 - `--check`: generated registry가 source와 같은지 확인 - `guard-common`: transformer spec의 `checkAllKeys` 안에 공통 모델 필드 검증 자동 삽입/갱신 ### 적용 순서 #### 1. project `package.json`에 script 추가 ```json { "scripts": { "fields:migrate": "lemon-fields migrate --report --update-tsconfig", "fields:gen": "lemon-fields gen --report", "fields:check": "lemon-fields --check", "fields:guard-common": "lemon-fields guard-common --report" } } ``` #### 2. migration 명령어 실행 ```sh npm i --save-dev lemon-devkit@0.2.0 npm run fields:migrate npm run fields:gen npm run fields:guard-common ``` - `npm i --save-dev lemon-devkit@0.2.0`: project에 `lemon-devkit` 0.2.0를 dev dependency로 설치 - `npm run fields:migrate`: 기존 `keys<T>()` 호출을 `fieldKeys.<name><T>()`로 변환하고 `ts-transformer-keys` transformer plugin 제거 - `npm run fields:gen`: TypeScript checker로 field 목록을 읽어 `src/generated/field-registry.ts` 생성 - `npm run fields:guard-common`: transformer spec의 `checkAllKeys`에 공통 모델 필드 검증 삽입/갱신 #### 3. test와 build에 추가 기존 project의 `build``test:watch`가 이미 있으면 명령 전체를 바꾸지 말고 앞에 `npm run fields:gen &&` 또는 `npm run fields:guard-common &&`만 붙인다. ```json { "scripts": { "build": "npm run fields:gen && tsc", "test:watch": "npm run fields:guard-common && LS=1 jest --config=jest.config.json --watchAll" } } ``` CI에는 `npm run fields:check`를 추가하는 것을 권장한다. `src/generated/field-registry.ts`는 source가 직접 import하는 파일이므로 commit 대상이다. 자세한 사용법은 [lemon-fields README](src/fields/README.md)를 참고한다. ---------------- ## Proxy `lemon-devkit@0.2.0`부터 install/upgrade 시 consumer project의 `docs/proxy-implementation-guide.md``README.md`에 proxy 구현 가이드를 자동 반영한다. Proxy 기능을 추가하거나 변경할 때는 [proxy implementation guide](docs/proxy-implementation-guide.md)를 먼저 확인한다. `BackendProxy`, `ManagerProxy`, `guardProxy()` 계열 동작과 프로젝트 적용 절차를 이 문서 기준으로 맞춘다. ---------------- ## VERSION INFO | Version | Description |-- |-- | 0.2.0 | optimized with `lemon-core@4.2.x`. | 0.2.0 | added proxy development documentation. | 0.0.6 | optimized `loadProfile()` w/o async. | 0.0.4 | initial release.