mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) move home server into core
Summary: This moves enough server material into core to run a home server. The data engine is not yet incorporated (though in manual testing it works when ported). Test Plan: existing tests pass Reviewers: dsagal Reviewed By: dsagal Differential Revision: https://phab.getgrist.com/D2552
This commit is contained in:
36
app/gen-server/lib/values.ts
Normal file
36
app/gen-server/lib/values.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* This smoothes over some awkward differences between TypeORM treatment of
|
||||
* booleans and json in sqlite and postgres. Booleans and json work fine
|
||||
* with each db, but have different levels of driver-level support.
|
||||
*/
|
||||
|
||||
export interface NativeValues {
|
||||
// Json columns are handled natively by the postgres driver, but for
|
||||
// sqlite requires a typeorm wrapper (simple-json).
|
||||
jsonEntityType: 'json' | 'simple-json';
|
||||
jsonType: 'json' | 'varchar';
|
||||
booleanType: 'boolean' | 'integer';
|
||||
dateTimeType: 'timestamp with time zone' | 'datetime';
|
||||
trueValue: boolean | number;
|
||||
falseValue: boolean | number;
|
||||
}
|
||||
|
||||
const sqliteNativeValues: NativeValues = {
|
||||
jsonEntityType: 'simple-json',
|
||||
jsonType: 'varchar',
|
||||
booleanType: 'integer',
|
||||
dateTimeType: 'datetime',
|
||||
trueValue: 1,
|
||||
falseValue: 0
|
||||
};
|
||||
|
||||
const postgresNativeValues: NativeValues = {
|
||||
jsonEntityType: 'json',
|
||||
jsonType: 'json',
|
||||
booleanType: 'boolean',
|
||||
dateTimeType: 'timestamp with time zone',
|
||||
trueValue: true,
|
||||
falseValue: false
|
||||
};
|
||||
|
||||
export const nativeValues = (process.env.TYPEORM_TYPE === 'postgres') ? postgresNativeValues : sqliteNativeValues;
|
||||
Reference in New Issue
Block a user