@linyjs/shared-module-interface
v0.0.18
Published
Shared TypeScript type definitions for linyjs infrastructure modules (mdb, auth, permission)
Readme
@linyjs/shared-module-interface
公共模块的 TypeScript 类型定义包。
概述
本包汇集了 @linyjs/mdb、@linyjs/auth、@linyjs/permission 等基础设施模块的服务接口和类型定义,使插件开发者只需依赖此包即可获得完整的类型提示,无需单独安装 mongodb、@linyjs/mdb、@linyjs/auth、@linyjs/permission 等包。
安装
npm install --save-dev @linyjs/shared-module-interface可用类型
mdb 模块
import type { IMongoDBService } from '@linyjs/shared-module-interface';
import type { ObjectId, Db, Collection, Document, Filter } from '@linyjs/shared-module-interface';⚠️ 本包是纯类型包,所有导出均为
export type。import { ObjectId }这样的值导入不可行,运行时请通过mongoDBService.ObjectId获取构造器。
| 类型 | 说明 |
|------|------|
| IMongoDBService | MongoDB 服务接口(由 @linyjs/mdb 实现) |
| ObjectId, Db, Collection, Document, Filter ... | mongodb 全部类型重新导出 |
auth 模块
import type { IUserService, IAuthUser, ISafeUser, IAuthResult, IJwtPayload } from '@linyjs/shared-module-interface';| 类型 | 说明 |
|------|------|
| IUserService | 用户管理服务接口(由 @linyjs/auth 实现,serviceTag: authServer.userService) |
| IAuthUser | 完整用户类型(含密码哈希,仅限内部使用) |
| ISafeUser | 安全用户类型(不含密码哈希) |
| IAuthResult | 认证结果 |
| IJwtPayload | JWT Payload |
permission 模块
import type { IPermissionService, IPermissionPolicy, IPermissionCheckResult, Role } from '@linyjs/shared-module-interface';| 类型 | 说明 |
|------|------|
| IPermissionService | 权限服务接口(由 @linyjs/permission 实现) |
| IPermissionPolicy | 权限策略 |
| IPermissionCheckResult | 权限检查结果 |
| Role, PermissionString | 角色和权限字符串类型 |
使用示例
import type { IModule, IServiceDef } from '@linyjs/server-module-interface';
import type { IMongoDBService } from '@linyjs/shared-module-interface';
class ArticleService {
constructor(private mongoDBService: IMongoDBService) {}
async getArticleById(id: string) {
const collection = this.mongoDBService.getCollection('articles');
// ✅ 通过注入的 service.ObjectId 获取运行时构造器
return await collection.findOne({
_id: new this.mongoDBService.ObjectId(id)
});
}
}
const articleServiceDef: IServiceDef = {
serviceTag: 'articleService',
serviceImpl: ArticleService,
dependencies: ['mdb.mongoDBService'],
meta: { usageType: 'normal_service' }
};
export const myServerModule: IModule = {
name: 'myServer',
moduleDependencies: ['mdb'],
serviceDefs: [articleServiceDef]
};模块一览
| 子模块 | 服务接口 | serviceTag | 来源模块 |
|--------|---------|------------|---------|
| mdb | IMongoDBService | mdb.mongoDBService | @linyjs/mdb |
| auth | IUserService | authServer.userService | @linyjs/auth |
| permission | IPermissionService | permissionServer.permissionService | @linyjs/permission |