@palmares/drizzle-engine
Version:
This is the engine that wraps the hole drizzle interface in a way palmares can understand and have full control of
141 lines • 17.8 kB
TypeScript
import { adapterFields } from '@palmares/databases';
import { fieldParser } from './field';
import type { Field } from '@palmares/databases';
/**
* This class is used to translate the fields of a model to the attributes of a Drizzle model.
* This is closely tied to the engine itself because sometimes we might need the models after it was translated
* or sometimes we need to translate stuff outside of the fields for example the indexes that are from the model
* itself.
*/
export declare const fields: typeof import("@palmares/databases").AdapterFields & (new () => import("@palmares/databases").AdapterFields & {
fieldsParser: import("@palmares/databases").AdapterFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<any, any, any, any, {
type?: string;
} & import("./types").CustomArgs<import("drizzle-orm/pg-core").PgBigIntConfig<"number" | "bigint"> | import("drizzle-orm/pg-core").PgBigSerialConfig<"number" | "bigint"> | readonly [string, ...string[]] | [string, ...string[]] | import("drizzle-orm/pg-core").PgCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/pg-core").PgDateConfig<"string" | "date"> | {
precision: number;
scale?: number;
} | {
precision?: number;
scale: number;
} | {
precision: number;
scale: number;
} | import("drizzle-orm/pg-core").IntervalConfig | import("drizzle-orm/pg-core").PgLineTypeConfig<"tuple" | "abc"> | import("drizzle-orm/pg-core").PgPointConfig<"tuple" | "xy"> | import("drizzle-orm/pg-core").PgTextConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/pg-core").TimeConfig | import("drizzle-orm/pg-core").PgTimestampConfig<"string" | "date"> | import("drizzle-orm/pg-core").PgVarcharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/sqlite-core").BlobConfig<"bigint" | "buffer" | "json"> | import("drizzle-orm/sqlite-core").IntegerConfig<"number" | "boolean" | "timestamp" | "timestamp_ms"> | {
mode?: "json" | undefined;
} | {
mode?: "text" | undefined;
length?: number;
enum?: readonly [string, ...string[]] | [string, ...string[]] | undefined;
} | import("drizzle-orm/mysql-core").MySqlBigIntConfig<"number" | "bigint"> | import("drizzle-orm/mysql-core").MySqlBinaryConfig | import("drizzle-orm/mysql-core").MySqlCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/mysql-core").MySqlDateConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlDatetimeConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlDecimalConfig | import("drizzle-orm/mysql-core").MySqlDoubleConfig | import("drizzle-orm/mysql-core").MySqlFloatConfig | import("drizzle-orm/mysql-core").MySqlIntConfig | import("drizzle-orm/mysql-core").MySqlRealConfig | import("drizzle-orm/mysql-core").MySqlTextConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/mysql-core").TimeConfig | import("drizzle-orm/mysql-core").MySqlTimestampConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlVarbinaryOptions | import("drizzle-orm/mysql-core").MySqlVarCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | undefined, any>>) => Promise<string | {
fieldName: string;
primaryKey: boolean;
unique: boolean;
nullable: boolean;
dbIndex: boolean;
default: any;
autoincrement: boolean;
databaseName: string | undefined;
custom: {
type?: string;
} & import("./types").CustomArgs<import("drizzle-orm/pg-core").PgBigIntConfig<"number" | "bigint"> | import("drizzle-orm/pg-core").PgBigSerialConfig<"number" | "bigint"> | readonly [string, ...string[]] | [string, ...string[]] | import("drizzle-orm/pg-core").PgCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/pg-core").PgDateConfig<"string" | "date"> | {
precision: number;
scale?: number;
} | {
precision?: number;
scale: number;
} | {
precision: number;
scale: number;
} | import("drizzle-orm/pg-core").IntervalConfig | import("drizzle-orm/pg-core").PgLineTypeConfig<"tuple" | "abc"> | import("drizzle-orm/pg-core").PgPointConfig<"tuple" | "xy"> | import("drizzle-orm/pg-core").PgTextConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/pg-core").TimeConfig | import("drizzle-orm/pg-core").PgTimestampConfig<"string" | "date"> | import("drizzle-orm/pg-core").PgVarcharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/sqlite-core").BlobConfig<"bigint" | "buffer" | "json"> | import("drizzle-orm/sqlite-core").IntegerConfig<"number" | "boolean" | "timestamp" | "timestamp_ms"> | {
mode?: "json" | undefined;
} | {
mode?: "text" | undefined;
length?: number;
enum?: readonly [string, ...string[]] | [string, ...string[]] | undefined;
} | import("drizzle-orm/mysql-core").MySqlBigIntConfig<"number" | "bigint"> | import("drizzle-orm/mysql-core").MySqlBinaryConfig | import("drizzle-orm/mysql-core").MySqlCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/mysql-core").MySqlDateConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlDatetimeConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlDecimalConfig | import("drizzle-orm/mysql-core").MySqlDoubleConfig | import("drizzle-orm/mysql-core").MySqlFloatConfig | import("drizzle-orm/mysql-core").MySqlIntConfig | import("drizzle-orm/mysql-core").MySqlRealConfig | import("drizzle-orm/mysql-core").MySqlTextConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/mysql-core").TimeConfig | import("drizzle-orm/mysql-core").MySqlTimestampConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlVarbinaryOptions | import("drizzle-orm/mysql-core").MySqlVarCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | undefined, any>;
}>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"field" | "auto" | "big-auto" | "big-integer" | "boolean" | "char" | "date" | "decimal" | "enum" | "foreign-key" | "integer" | "text" | "uuid">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"field" | "auto" | "big-auto" | "big-integer" | "boolean" | "char" | "date" | "decimal" | "enum" | "foreign-key" | "integer" | "text" | "uuid">) => Promise<any>;
};
compare: ((_oldCustomArguments: any, _newCustomArguments: any) => boolean) | undefined;
fieldToString: ((_customArguments: any) => {
result: string;
imports: import("@palmares/databases/dist/src/models/fields/types").CustomImportsForFieldType[];
}) | undefined;
autoFieldParser: import("@palmares/databases").AdapterIntegerFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"integer", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<import("drizzle-orm/pg-core").PgBigSerialConfig<"number" | "bigint"> | import("drizzle-orm/sqlite-core").IntegerConfig<"number" | "boolean" | "timestamp" | "timestamp_ms"> | import("drizzle-orm/mysql-core").MySqlIntConfig | undefined, import("drizzle-orm/sqlite-core").SQLiteIntegerBuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial53BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial64BuilderInitial<string> | import("drizzle-orm/pg-core").PgIntegerBuilder<{
name: string;
dataType: "number";
columnType: "PgInteger";
data: number;
driverParam: number | string;
enumValues: undefined;
generated: undefined;
}>>>) => Promise<string>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"integer">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"integer">) => Promise<any>;
};
bigAutoFieldParser: undefined;
bigIntegerFieldParser: import("@palmares/databases").AdapterBigIntegerFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"big-integer", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<import("drizzle-orm/pg-core").PgBigIntConfig<"number" | "bigint"> | import("drizzle-orm/pg-core").PgBigSerialConfig<"number" | "bigint"> | import("drizzle-orm/sqlite-core").IntegerConfig<"number" | "boolean" | "timestamp" | "timestamp_ms"> | import("drizzle-orm/mysql-core").MySqlBigIntConfig<"number" | "bigint"> | undefined, import("drizzle-orm/sqlite-core").SQLiteIntegerBuilderInitial<string> | import("drizzle-orm/mysql-core").MySqlBigInt53BuilderInitial<string> | import("drizzle-orm/mysql-core").MySqlBigInt64BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigInt53BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigInt64BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial53BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial64BuilderInitial<string>>>) => Promise<string>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"big-integer">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"big-integer">) => Promise<any>;
};
charFieldParser: import("@palmares/databases").AdapterCharFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"char", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/sqlite-core").text>[1] | Parameters<typeof import("drizzle-orm/mysql-core").varchar>[1] | Parameters<typeof import("drizzle-orm/pg-core").varchar>[1], ReturnType<typeof import("drizzle-orm/mysql-core").varchar> | ReturnType<typeof import("drizzle-orm/sqlite-core").text> | ReturnType<typeof import("drizzle-orm/pg-core").varchar>>>) => Promise<string>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"char">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"char">) => Promise<any>;
};
dateFieldParser: import("@palmares/databases").AdapterDateFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"date", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/sqlite-core").text>[1] | Parameters<typeof import("drizzle-orm/mysql-core").datetime>[1] | Parameters<typeof import("drizzle-orm/pg-core").timestamp>[1], ReturnType<typeof import("drizzle-orm/sqlite-core").text> | ReturnType<typeof import("drizzle-orm/mysql-core").datetime> | ReturnType<typeof import("drizzle-orm/pg-core").timestamp>>>) => Promise<any>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"date">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"date">) => Promise<any>;
};
decimalFieldParser: import("@palmares/databases").AdapterDecimalFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"decimal", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/mysql-core").decimal>[1] | Parameters<typeof import("drizzle-orm/pg-core").numeric>[1], ReturnType<typeof import("drizzle-orm/sqlite-core").real> | ReturnType<typeof import("drizzle-orm/pg-core").numeric> | ReturnType<typeof import("drizzle-orm/sqlite-core").real>>>) => Promise<string>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"decimal">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"decimal">) => Promise<any>;
};
foreignKeyFieldParser: import("@palmares/databases").AdapterForeignKeyFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"foreign-key", any, InstanceType<typeof fieldParser>, any>) => Promise<undefined>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"foreign-key">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"foreign-key">) => Promise<any>;
};
integerFieldParser: import("@palmares/databases").AdapterIntegerFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"integer", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<import("drizzle-orm/pg-core").PgBigSerialConfig<"number" | "bigint"> | import("drizzle-orm/sqlite-core").IntegerConfig<"number" | "boolean" | "timestamp" | "timestamp_ms"> | import("drizzle-orm/mysql-core").MySqlIntConfig | undefined, import("drizzle-orm/sqlite-core").SQLiteIntegerBuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial53BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial64BuilderInitial<string> | import("drizzle-orm/pg-core").PgIntegerBuilder<{
name: string;
dataType: "number";
columnType: "PgInteger";
data: number;
driverParam: number | string;
enumValues: undefined;
generated: undefined;
}>>>) => Promise<string>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"integer">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"integer">) => Promise<any>;
};
textFieldParser: import("@palmares/databases").AdapterTextFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"text", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/sqlite-core").text>[1] | Parameters<typeof import("drizzle-orm/mysql-core").text>[1] | Parameters<typeof import("drizzle-orm/pg-core").text>[1], ReturnType<typeof import("drizzle-orm/sqlite-core").text> | ReturnType<typeof import("drizzle-orm/mysql-core").text> | ReturnType<typeof import("drizzle-orm/pg-core").text>>>) => Promise<any>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"text">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"text">) => Promise<any>;
};
uuidFieldParser: import("@palmares/databases").AdapterUuidFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"uuid", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/sqlite-core").text>[1] | Parameters<typeof import("drizzle-orm/mysql-core").varchar>[1], ReturnType<typeof import("drizzle-orm/sqlite-core").text> | ReturnType<typeof import("drizzle-orm/pg-core").uuid> | ReturnType<typeof import("drizzle-orm/mysql-core").varchar>>>) => Promise<string>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"uuid">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"uuid">) => Promise<any>;
};
enumFieldParser: import("@palmares/databases").AdapterEnumFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"enum", any, InstanceType<typeof fieldParser>, any>) => Promise<any>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"enum">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"enum">) => Promise<any>;
};
customFieldsParser: Record<string, import("@palmares/databases").AdapterFieldParser>;
booleanFieldParser: import("@palmares/databases").AdapterBooleanFieldParser & {
translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"boolean", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/sqlite-core").integer>[1], ReturnType<typeof import("drizzle-orm/mysql-core").boolean> | ReturnType<typeof import("drizzle-orm/pg-core").boolean> | ReturnType<typeof import("drizzle-orm/sqlite-core").integer>>>) => Promise<any>;
inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"boolean">) => Promise<any>;
outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"boolean">) => Promise<any>;
};
lazyEvaluateField: (engine: any, modelName: string, translatedModel: any, fieldAttributes: Parameters<Parameters<typeof adapterFields>[0]["lazyEvaluateField"]>[3], fieldTranslated: any, parseAgain: Parameters<Parameters<typeof adapterFields>[0]["lazyEvaluateField"]>[5]) => Promise<any>;
translateField: ((_Adapter: import("@palmares/databases").DatabaseAdapter, _field: Field, _defaultTranslateFieldCallback: (_field: Field) => Promise<any>) => Promise<any>) | undefined;
});
//# sourceMappingURL=index.d.ts.map