feat: uuid field
This commit is contained in:
parent
e6f71c65fd
commit
2c0d3fcc5a
@ -0,0 +1,30 @@
|
|||||||
|
import { mockDatabase } from '../';
|
||||||
|
import { Database } from '../../database';
|
||||||
|
|
||||||
|
describe('string field', () => {
|
||||||
|
let db: Database;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
db = mockDatabase();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(async () => {
|
||||||
|
await db.close();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('define', async () => {
|
||||||
|
const Test = db.collection({
|
||||||
|
name: 'tests',
|
||||||
|
autoGenId: false,
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
type: 'uuid',
|
||||||
|
name: 'id',
|
||||||
|
primaryKey: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
await Test.sync();
|
||||||
|
await Test.model.create();
|
||||||
|
});
|
||||||
|
});
|
@ -22,6 +22,7 @@ import { StringFieldOptions } from './string-field';
|
|||||||
import { TextFieldOptions } from './text-field';
|
import { TextFieldOptions } from './text-field';
|
||||||
import { TimeFieldOptions } from './time-field';
|
import { TimeFieldOptions } from './time-field';
|
||||||
import { UidFieldOptions } from './uid-field';
|
import { UidFieldOptions } from './uid-field';
|
||||||
|
import { UUIDFieldOptions } from './uuid-field';
|
||||||
import { VirtualFieldOptions } from './virtual-field';
|
import { VirtualFieldOptions } from './virtual-field';
|
||||||
|
|
||||||
export * from './array-field';
|
export * from './array-field';
|
||||||
@ -43,6 +44,7 @@ export * from './string-field';
|
|||||||
export * from './text-field';
|
export * from './text-field';
|
||||||
export * from './time-field';
|
export * from './time-field';
|
||||||
export * from './uid-field';
|
export * from './uid-field';
|
||||||
|
export * from './uuid-field';
|
||||||
export * from './virtual-field';
|
export * from './virtual-field';
|
||||||
|
|
||||||
export type FieldOptions =
|
export type FieldOptions =
|
||||||
@ -64,6 +66,7 @@ export type FieldOptions =
|
|||||||
| TimeFieldOptions
|
| TimeFieldOptions
|
||||||
| DateFieldOptions
|
| DateFieldOptions
|
||||||
| UidFieldOptions
|
| UidFieldOptions
|
||||||
|
| UUIDFieldOptions
|
||||||
| PasswordFieldOptions
|
| PasswordFieldOptions
|
||||||
| ContextFieldOptions
|
| ContextFieldOptions
|
||||||
| BelongsToFieldOptions
|
| BelongsToFieldOptions
|
||||||
|
21
packages/core/database/src/fields/uuid-field.ts
Normal file
21
packages/core/database/src/fields/uuid-field.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { DataTypes } from 'sequelize';
|
||||||
|
import { BaseColumnFieldOptions, Field, FieldContext } from './field';
|
||||||
|
|
||||||
|
export class UuidField extends Field {
|
||||||
|
constructor(options?: any, context?: FieldContext) {
|
||||||
|
super(
|
||||||
|
{
|
||||||
|
defaultValue: DataTypes.UUIDV4,
|
||||||
|
...options,
|
||||||
|
},
|
||||||
|
context,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
get dataType() {
|
||||||
|
return DataTypes.UUID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface UUIDFieldOptions extends BaseColumnFieldOptions {
|
||||||
|
type: 'uuid';
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user