mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-19 09:45:37 -04:00
refactor(knex): export partial types for insert and update
We need these types when crafting objects to be passed into knex's .insert() and .update() methods. Signed-off-by: Erik Michelson <github@erik.michelson.eu>
This commit is contained in:
parent
4790705f0d
commit
6e151c8a1b
11 changed files with 96 additions and 62 deletions
|
@ -28,3 +28,5 @@ export enum FieldNameAlias {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TableAlias = 'alias';
|
export const TableAlias = 'alias';
|
||||||
|
|
||||||
|
export type TypeUpdateAlias = Pick<Alias, FieldNameAlias.isPrimary>;
|
||||||
|
|
|
@ -39,3 +39,6 @@ export enum FieldNameApiToken {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TableApiToken = 'api_token';
|
export const TableApiToken = 'api_token';
|
||||||
|
|
||||||
|
export type TypeInsertApiToken = Omit<ApiToken, FieldNameApiToken.lastUsedAt>;
|
||||||
|
export type TypeUpdateApiToken = Pick<ApiToken, FieldNameApiToken.lastUsedAt>;
|
||||||
|
|
|
@ -31,3 +31,8 @@ export enum FieldNameGroup {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TableGroup = 'group';
|
export const TableGroup = 'group';
|
||||||
|
export type TypeInsertGroup = Omit<Group, FieldNameGroup.id>;
|
||||||
|
export type TypeUpdateGroup = Pick<
|
||||||
|
Group,
|
||||||
|
FieldNameGroup.name | FieldNameGroup.displayName
|
||||||
|
>;
|
||||||
|
|
|
@ -42,3 +42,12 @@ export enum FieldNameIdentity {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TableIdentity = 'identity';
|
export const TableIdentity = 'identity';
|
||||||
|
|
||||||
|
export type TypeInsertIdentity = Omit<
|
||||||
|
Identity,
|
||||||
|
FieldNameIdentity.createdAt | FieldNameIdentity.updatedAt
|
||||||
|
>;
|
||||||
|
export type TypeUpdateIdentity = Pick<
|
||||||
|
Identity,
|
||||||
|
FieldNameIdentity.passwordHash | FieldNameIdentity.updatedAt
|
||||||
|
>;
|
||||||
|
|
|
@ -5,28 +5,13 @@
|
||||||
*/
|
*/
|
||||||
import { Knex } from 'knex';
|
import { Knex } from 'knex';
|
||||||
|
|
||||||
|
import { Alias, TypeUpdateAlias } from './alias';
|
||||||
|
import { ApiToken, TypeInsertApiToken, TypeUpdateApiToken } from './api-token';
|
||||||
|
import { Group, TypeInsertGroup, TypeUpdateGroup } from './group';
|
||||||
|
import { Identity, TypeInsertIdentity, TypeUpdateIdentity } from './identity';
|
||||||
import {
|
import {
|
||||||
Alias,
|
|
||||||
ApiToken,
|
|
||||||
AuthorshipInfo,
|
AuthorshipInfo,
|
||||||
FieldNameAlias,
|
|
||||||
FieldNameApiToken,
|
|
||||||
FieldNameGroup,
|
|
||||||
FieldNameIdentity,
|
|
||||||
FieldNameMediaUpload,
|
|
||||||
FieldNameNote,
|
|
||||||
FieldNameNoteGroupPermission,
|
|
||||||
FieldNameNoteUserPermission,
|
|
||||||
FieldNameRevision,
|
|
||||||
FieldNameUser,
|
|
||||||
Group,
|
|
||||||
GroupUser,
|
GroupUser,
|
||||||
Identity,
|
|
||||||
MediaUpload,
|
|
||||||
Note,
|
|
||||||
NoteGroupPermission,
|
|
||||||
NoteUserPermission,
|
|
||||||
Revision,
|
|
||||||
RevisionTag,
|
RevisionTag,
|
||||||
TableAlias,
|
TableAlias,
|
||||||
TableApiToken,
|
TableApiToken,
|
||||||
|
@ -42,77 +27,65 @@ import {
|
||||||
TableRevisionTag,
|
TableRevisionTag,
|
||||||
TableUser,
|
TableUser,
|
||||||
TableUserPinnedNote,
|
TableUserPinnedNote,
|
||||||
User,
|
|
||||||
UserPinnedNote,
|
UserPinnedNote,
|
||||||
} from './index';
|
} from './index';
|
||||||
|
import {
|
||||||
|
MediaUpload,
|
||||||
|
TypeInsertMediaUpload,
|
||||||
|
TypeUpdateMediaUpload,
|
||||||
|
} from './media-upload';
|
||||||
|
import { Note, TypeInsertNote, TypeUpdateNote } from './note';
|
||||||
|
import {
|
||||||
|
NoteGroupPermission,
|
||||||
|
TypeUpdateNoteGroupPermission,
|
||||||
|
} from './note-group-permission';
|
||||||
|
import {
|
||||||
|
NoteUserPermission,
|
||||||
|
TypeUpdateNoteUserPermission,
|
||||||
|
} from './note-user-permission';
|
||||||
|
import { Revision, TypeInsertRevision } from './revision';
|
||||||
|
import { TypeInsertUser, TypeUpdateUser, User } from './user';
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
/* eslint-disable @typescript-eslint/naming-convention */
|
||||||
declare module 'knex/types/tables.js' {
|
declare module 'knex/types/tables.js' {
|
||||||
interface Tables {
|
interface Tables {
|
||||||
[TableAlias]: Knex.CompositeTableType<
|
[TableAlias]: Knex.CompositeTableType<Alias, Alias, TypeUpdateAlias>;
|
||||||
Alias,
|
|
||||||
Alias,
|
|
||||||
Pick<Alias, FieldNameAlias.isPrimary>
|
|
||||||
>;
|
|
||||||
[TableApiToken]: Knex.CompositeTableType<
|
[TableApiToken]: Knex.CompositeTableType<
|
||||||
ApiToken,
|
ApiToken,
|
||||||
Omit<ApiToken, FieldNameApiToken.lastUsedAt>,
|
TypeInsertApiToken,
|
||||||
Pick<ApiToken, FieldNameApiToken.lastUsedAt>
|
TypeUpdateApiToken
|
||||||
>;
|
>;
|
||||||
[TableAuthorshipInfo]: AuthorshipInfo;
|
[TableAuthorshipInfo]: AuthorshipInfo;
|
||||||
[TableGroup]: Knex.CompositeTableType<
|
[TableGroup]: Knex.CompositeTableType<
|
||||||
Group,
|
Group,
|
||||||
Omit<Group, FieldNameGroup.id>,
|
TypeInsertGroup,
|
||||||
Pick<Group, FieldNameGroup.name | FieldNameGroup.displayName>
|
TypeUpdateGroup
|
||||||
>;
|
>;
|
||||||
[TableGroupUser]: GroupUser;
|
[TableGroupUser]: GroupUser;
|
||||||
[TableIdentity]: Knex.CompositeTableType<
|
[TableIdentity]: Knex.CompositeTableType<
|
||||||
Identity,
|
Identity,
|
||||||
Omit<Identity, FieldNameIdentity.createdAt | FieldNameIdentity.updatedAt>,
|
TypeInsertIdentity,
|
||||||
Pick<
|
TypeUpdateIdentity
|
||||||
Identity,
|
|
||||||
FieldNameIdentity.passwordHash | FieldNameIdentity.updatedAt
|
|
||||||
>
|
|
||||||
>;
|
>;
|
||||||
[TableMediaUpload]: Knex.CompositeTableType<
|
[TableMediaUpload]: Knex.CompositeTableType<
|
||||||
MediaUpload,
|
MediaUpload,
|
||||||
Omit<
|
TypeInsertMediaUpload,
|
||||||
MediaUpload,
|
TypeUpdateMediaUpload
|
||||||
FieldNameMediaUpload.createdAt | FieldNameMediaUpload.uuid
|
|
||||||
>,
|
|
||||||
Pick<MediaUpload, FieldNameMediaUpload.noteId>
|
|
||||||
>;
|
|
||||||
[TableNote]: Knex.CompositeTableType<
|
|
||||||
Note,
|
|
||||||
Omit<Note, FieldNameNote.createdAt | FieldNameNote.id>,
|
|
||||||
Pick<Note, FieldNameNote.ownerId>
|
|
||||||
>;
|
>;
|
||||||
|
[TableNote]: Knex.CompositeTableType<Note, TypeInsertNote, TypeUpdateNote>;
|
||||||
[TableNoteGroupPermission]: Knex.CompositeTableType<
|
[TableNoteGroupPermission]: Knex.CompositeTableType<
|
||||||
NoteGroupPermission,
|
NoteGroupPermission,
|
||||||
NoteGroupPermission,
|
NoteGroupPermission,
|
||||||
Pick<NoteGroupPermission, FieldNameNoteGroupPermission.canEdit>
|
TypeUpdateNoteGroupPermission
|
||||||
>;
|
>;
|
||||||
[TableNoteUserPermission]: Knex.CompositeTableType<
|
[TableNoteUserPermission]: Knex.CompositeTableType<
|
||||||
NoteUserPermission,
|
NoteUserPermission,
|
||||||
NoteUserPermission,
|
NoteUserPermission,
|
||||||
Pick<NoteUserPermission, FieldNameNoteUserPermission.canEdit>
|
TypeUpdateNoteUserPermission
|
||||||
>;
|
|
||||||
[TableRevision]: Knex.CompositeTableType<
|
|
||||||
Revision,
|
|
||||||
Omit<Revision, FieldNameRevision.createdAt | FieldNameRevision.id>
|
|
||||||
>;
|
>;
|
||||||
|
[TableRevision]: Knex.CompositeTableType<Revision, TypeInsertRevision>;
|
||||||
[TableRevisionTag]: RevisionTag;
|
[TableRevisionTag]: RevisionTag;
|
||||||
[TableUser]: Knex.CompositeTableType<
|
[TableUser]: Knex.CompositeTableType<User, TypeInsertUser, TypeUpdateUser>;
|
||||||
User,
|
|
||||||
Omit<User, FieldNameUser.id | FieldNameUser.createdAt>,
|
|
||||||
Pick<
|
|
||||||
User,
|
|
||||||
| FieldNameUser.displayName
|
|
||||||
| FieldNameUser.photoUrl
|
|
||||||
| FieldNameUser.email
|
|
||||||
| FieldNameUser.authorStyle
|
|
||||||
>
|
|
||||||
>;
|
|
||||||
[TableUserPinnedNote]: UserPinnedNote;
|
[TableUserPinnedNote]: UserPinnedNote;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,3 +44,12 @@ export enum FieldNameMediaUpload {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TableMediaUpload = 'media_upload';
|
export const TableMediaUpload = 'media_upload';
|
||||||
|
|
||||||
|
export type TypeInsertMediaUpload = Omit<
|
||||||
|
MediaUpload,
|
||||||
|
FieldNameMediaUpload.createdAt | FieldNameMediaUpload.uuid
|
||||||
|
>;
|
||||||
|
export type TypeUpdateMediaUpload = Pick<
|
||||||
|
MediaUpload,
|
||||||
|
FieldNameMediaUpload.noteId
|
||||||
|
>;
|
||||||
|
|
|
@ -24,3 +24,8 @@ export enum FieldNameNoteGroupPermission {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TableNoteGroupPermission = 'note_group_permission';
|
export const TableNoteGroupPermission = 'note_group_permission';
|
||||||
|
|
||||||
|
export type TypeUpdateNoteGroupPermission = Pick<
|
||||||
|
NoteGroupPermission,
|
||||||
|
FieldNameNoteGroupPermission.canEdit
|
||||||
|
>;
|
||||||
|
|
|
@ -24,3 +24,8 @@ export enum FieldNameNoteUserPermission {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TableNoteUserPermission = 'note_user_permission';
|
export const TableNoteUserPermission = 'note_user_permission';
|
||||||
|
|
||||||
|
export type TypeUpdateNoteUserPermission = Pick<
|
||||||
|
NoteUserPermission,
|
||||||
|
FieldNameNoteUserPermission.canEdit
|
||||||
|
>;
|
||||||
|
|
|
@ -31,3 +31,9 @@ export enum FieldNameNote {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TableNote = 'note';
|
export const TableNote = 'note';
|
||||||
|
|
||||||
|
export type TypeInsertNote = Omit<
|
||||||
|
Note,
|
||||||
|
FieldNameNote.createdAt | FieldNameNote.id
|
||||||
|
>;
|
||||||
|
export type TypeUpdateNote = Pick<Note, FieldNameNote.ownerId>;
|
||||||
|
|
|
@ -50,3 +50,8 @@ export enum FieldNameRevision {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TableRevision = 'revision';
|
export const TableRevision = 'revision';
|
||||||
|
|
||||||
|
export type TypeInsertRevision = Omit<
|
||||||
|
Revision,
|
||||||
|
FieldNameRevision.createdAt | FieldNameRevision.id
|
||||||
|
>;
|
||||||
|
|
|
@ -42,7 +42,7 @@ export interface User {
|
||||||
[FieldNameUser.authorStyle]: number;
|
[FieldNameUser.authorStyle]: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum FieldNameUser {
|
export const enum FieldNameUser {
|
||||||
id = 'id',
|
id = 'id',
|
||||||
username = 'username',
|
username = 'username',
|
||||||
guestUuid = 'guest_uuid',
|
guestUuid = 'guest_uuid',
|
||||||
|
@ -54,3 +54,15 @@ export enum FieldNameUser {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TableUser = 'user';
|
export const TableUser = 'user';
|
||||||
|
|
||||||
|
export type TypeInsertUser = Omit<
|
||||||
|
User,
|
||||||
|
FieldNameUser.id | FieldNameUser.createdAt
|
||||||
|
>;
|
||||||
|
export type TypeUpdateUser = Pick<
|
||||||
|
User,
|
||||||
|
| FieldNameUser.displayName
|
||||||
|
| FieldNameUser.photoUrl
|
||||||
|
| FieldNameUser.email
|
||||||
|
| FieldNameUser.authorStyle
|
||||||
|
>;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue