Junyi 15bb8ac97b
fix(database): fix test cases (#6811)
* fix(database): fix test cases

* fix(database): fix unique and null
2025-05-01 11:47:17 +08:00

48 lines
1.1 KiB
TypeScript

/**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import { DataTypes } from 'sequelize';
import { BaseColumnFieldOptions, Field, FieldContext } from './field';
export class StringField extends Field {
get dataType() {
if (this.options.length) {
return DataTypes.STRING(this.options.length);
}
return DataTypes.STRING;
}
additionalSequelizeOptions() {
const { name, trim, unique } = this.options;
return {
set(value) {
if (unique && value === '') {
value = null;
}
if (value == null) {
this.setDataValue(name, null);
return;
}
if (typeof value !== 'string') {
value = value.toString();
}
this.setDataValue(name, trim ? value.trim() : value);
},
};
}
}
export interface StringFieldOptions extends BaseColumnFieldOptions {
type: 'string';
length?: number;
trim?: boolean;
}