tachybase_todo/packages/plugin-full-collections/src/server.ts
chenos 6c39ac3538
Develop (#68)
* refactor: fields/views/pages...

* update

* update

* update

* updates

* updates

* add yarn.lock

* updates

* updates

* updates

* updates

* updates

* updates

* updates

* updates

* updates

* developerMode

* 一大波更新

* bugfix

* fix: hide the sorting settings

* fix: reload menu when menu is updated

* 页面重构

* modify text

* 补充细节

* system settings

* 继续更新补充

* fix: 多级菜单支持

* 无限嵌套

* fix: icon

* 省市区参数调整

* 表单描述、文案调整

* 支持草稿

* 邮箱登录

* 细节补充

* 菜单页面权限初步

* 详情页打开方式

* 菜单父级、草稿问题

* 描述文字

* 详情分组显示

* 状态改为 radio

* 菜单权限

* 跳过省市区 api

* 修复权限数据范围

* onDraft

* 页面跳转

* 修改文案

* 注册、登录

* fix: 权限过滤问题

* 微调上传组件样式

* 0.4.0-alpha.0

* father-build

* remove father-build

* 细节调整
2021-03-16 14:31:54 +08:00

41 lines
1.5 KiB
TypeScript

import path from 'path';
import { Application } from '@nocobase/server';
import { registerModels, registerFields } from '@nocobase/database';
import * as models from './models';
import collectionsBeforeValidate from './hooks/collections.beforeValidate';
import collectionsAfterCreate from './hooks/collections.afterCreate';
import fieldsBeforeValidate from './hooks/fields.beforeValidate';
import fieldsAfterCreate from './hooks/fields.afterCreate';
import { RANDOMSTRING } from './fields/randomString';
import { interfaces } from './interfaces';
import { merge } from './utils';
export default async function (this: Application, options = {}) {
const database = this.database;
const resourcer = this.resourcer;
// 提供全局的 models 注册机制
registerModels(models);
registerFields({
RANDOMSTRING,
});
database.addHook('beforeAddField', (options: any) => {
const { interface: interfaceType } = options;
if (interfaceType && interfaces.has(interfaceType)) {
const defaults = interfaces.get(interfaceType).options;
Object.assign(options, merge(defaults, options))
}
// console.log({options});
});
database.import({
directory: path.resolve(__dirname, 'collections'),
});
database.getModel('collections').addHook('beforeValidate', collectionsBeforeValidate);
database.getModel('fields').addHook('beforeValidate', fieldsBeforeValidate);
database.getModel('collections').addHook('afterCreate', collectionsAfterCreate);
database.getModel('fields').addHook('afterCreate', fieldsAfterCreate);
}