2
0
mirror of https://github.com/frappe/books.git synced 2024-11-14 17:34:04 +00:00
books/backend/database/types.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

97 lines
1.8 KiB
TypeScript
Raw Normal View History

import type { Field, FieldType, RawValue } from '../../schemas/types';
import type DatabaseCore from './core';
import type { DatabaseManager } from './manager';
2022-03-23 06:16:13 +00:00
export interface GetQueryBuilderOptions {
2022-03-25 10:12:39 +00:00
offset?: number;
limit?: number;
2023-01-05 05:44:05 +00:00
groupBy?: string | string[];
orderBy?: string | string[];
2022-03-25 10:12:39 +00:00
order?: 'desc' | 'asc';
2022-03-23 06:16:13 +00:00
}
export type ColumnDiff = { added: Field[]; removed: string[] };
export type FieldValueMap = Record<
string,
RawValue | undefined | FieldValueMap[]
>;
2023-07-11 07:11:22 +00:00
export type AlterConfig = {
schemaName: string;
diff: ColumnDiff;
newForeignKeys: Field[];
};
export type NonExtantConfig = {
schemaName: string;
nonExtant: {
fieldname: string;
value: RawValue;
}[];
};
export type UpdateSinglesConfig = {
update: string[];
updateNonExtant: NonExtantConfig[];
};
export type MigrationConfig = {
pre?: () => Promise<void> | void;
post?: () => Promise<void> | void;
};
export interface Patch {
name: string;
version: string;
patch: {
2022-03-25 10:12:39 +00:00
execute: (dm: DatabaseManager) => Promise<void>;
beforeMigrate?: boolean;
};
priority?: number;
}
2022-03-25 10:12:39 +00:00
export type KnexColumnType =
| 'text'
| 'integer'
| 'float'
| 'boolean'
| 'date'
| 'datetime'
| 'time'
| 'binary';
2022-03-28 10:01:29 +00:00
// Returned by pragma table_info
export interface SqliteTableInfo {
pk: number;
cid: number;
name: string;
type: string;
notnull: number; // 0 | 1
dflt_value: string | null;
}
export type BespokeFunction = (
db: DatabaseCore,
...args: unknown[]
) => Promise<unknown>;
2023-07-10 09:12:20 +00:00
export type SingleValue<T> = {
fieldname: string;
parent: string;
value: T;
}[];
export type RawCustomField = {
parent: string;
label: string;
fieldname: string;
fieldtype: FieldType;
isRequired?: boolean;
section?: string;
tab?: string;
options?: string;
target?: string;
references?: string;
default?: string;
};