Junyi 4c3255d455
feat(database): add trim option for string field (#6565)
* feat(database): add trim option for string field

* refactor(database): change to setDataValue instead of hooks

* fix(database): fix test case of view collection
2025-04-01 13:25:08 +08:00

38 lines
908 B
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 } = this.options;
return {
set(value) {
this.setDataValue(name, trim ? value?.trim() : value);
},
};
}
}
export interface StringFieldOptions extends BaseColumnFieldOptions {
type: 'string';
length?: number;
trim?: boolean;
}