kysely-codegen
Version:
`kysely-codegen` generates Kysely type definitions from your database. That's it.
51 lines (50 loc) • 1.74 kB
TypeScript
import type { ExpressionNode } from '../ast/expression-node';
import type { LiteralNode } from '../ast/literal-node';
import type { ModuleReferenceNode } from '../ast/module-reference-node';
import type { RuntimeEnumDeclarationNode } from '../ast/runtime-enum-declaration-node';
import type { TemplateNode } from '../ast/template-node';
import { IdentifierStyle } from './identifier-style';
export type SymbolEntry = [id: string, symbol: SymbolNode];
type SymbolMap = Record<string, SymbolNode | undefined>;
type SymbolNameMap = Record<string, string | undefined>;
export type SymbolNode = {
node: ExpressionNode | TemplateNode;
type: SymbolType.DEFINITION;
} | {
node: ModuleReferenceNode;
type: SymbolType.MODULE_REFERENCE;
} | {
node: RuntimeEnumDeclarationNode;
type: SymbolType.RUNTIME_ENUM_DEFINITION;
} | {
node: LiteralNode<string>;
type: SymbolType.RUNTIME_ENUM_MEMBER;
} | {
type: SymbolType.TABLE;
};
export declare const enum SymbolType {
DEFINITION = "Definition",
MODULE_REFERENCE = "ModuleReference",
RUNTIME_ENUM_DEFINITION = "RuntimeEnumDefinition",
RUNTIME_ENUM_MEMBER = "RuntimeEnumMember",
TABLE = "Table"
}
export declare class SymbolCollection {
readonly identifierStyle: IdentifierStyle;
readonly symbolNames: SymbolNameMap;
readonly symbols: SymbolMap;
constructor(options?: {
entries?: SymbolEntry[];
identifierStyle?: IdentifierStyle;
});
entries(): {
id: string;
name: string;
symbol: SymbolNode;
}[];
get(id: string): SymbolNode | undefined;
getName(id: string): string | undefined;
has(id: string): boolean;
set(id: string, symbol: SymbolNode): string;
}
export {};