chore: 迁移topic到单独插件上

pull/56/head
moonrailgun 3 years ago
parent efa3f3634c
commit db4930e36d

@ -3,7 +3,7 @@ import { run } from '../app';
export const appCommand: CommandModule = { export const appCommand: CommandModule = {
command: 'app', command: 'app',
describe: 'Tailchat cli 版本', describe: 'Tailchat cli 版本(WIP)',
builder: undefined, builder: undefined,
async handler() { async handler() {
await run(); await run();

@ -8,5 +8,7 @@
"private": true, "private": true,
"scripts": {}, "scripts": {},
"devDependencies": {}, "devDependencies": {},
"dependencies": {} "dependencies": {
"tailchat-server-sdk": "*"
}
} }

@ -2,7 +2,9 @@ import { TcService, TcDbService } from 'tailchat-server-sdk';
import type { {{pickPluginNameUp id}}Document, {{pickPluginNameUp id}}Model } from '../models/{{pickPluginName id}}'; import type { {{pickPluginNameUp id}}Document, {{pickPluginNameUp id}}Model } from '../models/{{pickPluginName id}}';
/** /**
* * {{name}}
*
* {{desc}}
*/ */
interface {{pickPluginNameUp id}}Service interface {{pickPluginNameUp id}}Service
extends TcService, extends TcService,

@ -8,5 +8,7 @@
"private": true, "private": true,
"scripts": {}, "scripts": {},
"devDependencies": {}, "devDependencies": {},
"dependencies": {} "dependencies": {
"tailchat-server-sdk": "*"
}
} }

@ -2,7 +2,7 @@ import { TcService, TcDbService } from 'tailchat-server-sdk';
import type { {{pickPluginNameUp id}}Document, {{pickPluginNameUp id}}Model } from '../models/{{pickPluginName id}}'; import type { {{pickPluginNameUp id}}Document, {{pickPluginNameUp id}}Model } from '../models/{{pickPluginName id}}';
/** /**
* * {{desc}}
*/ */
interface {{pickPluginNameUp id}}Service interface {{pickPluginNameUp id}}Service
extends TcService, extends TcService,

@ -837,6 +837,22 @@ importers:
server/plugins/com.msgbyte.tasks/web/plugins/com.msgbyte.tasks: server/plugins/com.msgbyte.tasks/web/plugins/com.msgbyte.tasks:
specifiers: {} specifiers: {}
server/plugins/com.msgbyte.topic:
specifiers:
lodash: ^4.17.21
nanoid: ^3.1.23
tailchat-server-sdk: '*'
dependencies:
lodash: 4.17.21
nanoid: 3.3.4
tailchat-server-sdk: link:../../packages/sdk
server/plugins/com.msgbyte.topic/web/plugins/com.msgbyte.topic:
specifiers:
react: 17.0.2
devDependencies:
react: 17.0.2
website: website:
specifiers: specifiers:
'@docusaurus/core': 2.0.0-beta.18 '@docusaurus/core': 2.0.0-beta.18

@ -1,6 +1,6 @@
{ {
"name": "tailchat-server-sdk", "name": "tailchat-server-sdk",
"version": "0.0.12", "version": "0.0.14",
"description": "", "description": "",
"main": "dist/index.js", "main": "dist/index.js",
"bin": { "bin": {

@ -4,13 +4,8 @@ export enum GroupPanelType {
PLUGIN = 2, PLUGIN = 2,
} }
export interface GroupPanelMeta { // TODO
/** export type GroupPanelMeta = {};
*
* topic
*/
variant?: 'topic';
}
interface GroupMemberStruct { interface GroupMemberStruct {
roles?: string[]; // 角色 roles?: string[]; // 角色

@ -1,14 +1,7 @@
import { import { db } from 'tailchat-server-sdk';
getModelForClass, const { getModelForClass, prop, TimeStamps } = db;
DocumentType,
Ref,
prop,
} from '@typegoose/typegoose';
import { Base, TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
import type { Types } from 'mongoose'; import type { Types } from 'mongoose';
import { nanoid } from 'nanoid'; import { nanoid } from 'nanoid';
import { User } from '../user/user';
import { Group } from './group';
class GroupTopicComment { class GroupTopicComment {
@prop({ @prop({
@ -19,8 +12,8 @@ class GroupTopicComment {
@prop() @prop()
content: string; content: string;
@prop({ ref: () => User }) @prop()
author: Ref<User>; author: string;
/** /**
* id * id
@ -29,18 +22,18 @@ class GroupTopicComment {
replyCommentId?: string; replyCommentId?: string;
} }
export class GroupTopic extends TimeStamps implements Base { export class GroupTopic extends TimeStamps implements db.Base {
_id: Types.ObjectId; _id: Types.ObjectId;
id: string; id: string;
@prop() @prop()
content: string; content: string;
@prop({ ref: () => User }) @prop()
author: Ref<User>; author: string;
@prop({ ref: () => Group }) @prop()
groupId: Ref<Group>; groupId: string;
/** /**
* id * id
@ -55,7 +48,7 @@ export class GroupTopic extends TimeStamps implements Base {
comment: GroupTopicComment[]; comment: GroupTopicComment[];
} }
export type GroupTopicDocument = DocumentType<GroupTopic>; export type GroupTopicDocument = db.DocumentType<GroupTopic>;
const model = getModelForClass(GroupTopic); const model = getModelForClass(GroupTopic);

@ -0,0 +1,15 @@
{
"name": "tailchat-plugin-topic",
"version": "1.0.0",
"main": "index.js",
"author": "moonrailgun",
"description": "为群组提供话题功能",
"license": "MIT",
"private": true,
"scripts": {},
"dependencies": {
"lodash": "^4.17.21",
"nanoid": "^3.1.23",
"tailchat-server-sdk": "*"
}
}

@ -1,27 +1,28 @@
import type { import _ from 'lodash';
GroupTopicDocument,
GroupTopicModel,
} from '../../../models/group/topic';
import { import {
TcService, TcService,
TcDbService, TcDbService,
TcContext, TcContext,
call,
GroupPanelType, GroupPanelType,
db,
call,
} from 'tailchat-server-sdk'; } from 'tailchat-server-sdk';
import { Types } from 'mongoose'; import type { GroupTopicDocument, GroupTopicModel } from '../models/topic';
import _ from 'lodash'; const { Types } = db;
/**
*
*/
interface GroupTopicService interface GroupTopicService
extends TcService, extends TcService,
TcDbService<GroupTopicDocument, GroupTopicModel> {} TcDbService<GroupTopicDocument, GroupTopicModel> {}
class GroupTopicService extends TcService { class GroupTopicService extends TcService {
get serviceName(): string { get serviceName(): string {
return 'group.topic'; return 'plugin:com.msgbyte.topic';
} }
onInit(): void { onInit(): void {
this.registerLocalDb(require('../../../models/group/topic').default); this.registerLocalDb(require('../models/topic').default);
this.registerAction('create', this.create, { this.registerAction('create', this.create, {
params: { params: {

@ -0,0 +1,9 @@
{
"label": "群组话题",
"name": "com.msgbyte.topic",
"url": "{BACKEND}/plugins/com.msgbyte.topic/index.js",
"version": "0.0.0",
"author": "moonrailgun",
"description": "为群组提供话题功能",
"requireRestart": true
}

@ -0,0 +1,11 @@
{
"name": "@plugins/com.msgbyte.topic",
"main": "src/index.tsx",
"version": "0.0.0",
"description": "为群组提供话题功能",
"private": true,
"dependencies": {},
"devDependencies": {
"react": "17.0.2"
}
}

@ -0,0 +1,7 @@
{
"compilerOptions": {
"esModuleInterop": true,
"jsx": "react",
"importsNotUsedAsValues": "error"
}
}

@ -0,0 +1,2 @@
declare module '@capital/common';
declare module '@capital/component';
Loading…
Cancel
Save