UNPKG

lemon-devkit

Version:

Lemon Serverless Micro-Service Platform for local development

31 lines (30 loc) 1.48 kB
import type { GenOptions, GenResult, RegistryEntry } from './types'; export type { GenOptions, GenResult, RegistryEntry } from './types'; export type { FieldRegistryMeta } from './types'; /** * entry 목록에서 checksum 입력용 canonical string을 만든다. * * JSON 직렬화로 구분자 충돌(field 이름에 `,`·`|` 포함 시)을 방지한다. * runtime validator의 `canonicalFromLiveRegistry`와 동일한 규칙이어야 한다. */ export declare const canonicalEntries: (entries: RegistryEntry[]) => string; /** bootstrap stub 파일 내용을 생성 */ export declare const bootstrapStub: () => string; /** * registry entry 목록에서 생성 파일 내용을 만든다. * * 파일 시스템 scan 순서가 바뀌어도 diff가 흔들리지 않도록 registry key 기준으로 정렬한다. */ export declare const renderRegistry: (entries: RegistryEntry[]) => string; /** * consumer project의 concrete field registry를 생성한다. * * **처리 순서** * 1. `tsconfig`로 consumer TypeScript project를 로드한다. * 2. migrate 된 `fieldKeys.<name><T>()`와 optional legacy 호출을 스캔한다. * 3. TypeScript checker로 `<T>`의 field를 해석한다. * 4. 결정적인 registry 내용을 render하고 변경 여부를 반환한다. */ export declare const runGen: (opts: GenOptions) => GenResult; /** 생성 파일과 parent directory를 함께 기록 */ export declare const writeRegistry: (outAbs: string, content: string) => void;