feat: setup barrelsby for automatic barrel file generation

Add barrelsby as a dev dependency with a `generate-barrels` npm script and a `barrelesby.json` config targeting `./src`. This automates creation of barrel/index files to simplify imports across the project.
This commit is contained in:
2026-06-08 13:07:37 +08:00
parent 14d6e7c41e
commit c22b90c7f4
41 changed files with 2165 additions and 1 deletions
+35
View File
@@ -0,0 +1,35 @@
/**
* 头像数据模型 - 对应后端 AvatarData schema
* 原始 Dart: AvatarData (lib/data/models/user/user.dart)
*
* 注:原始 Dart 中 `avatarUrl` 为 `String?`,按"全部非空"约定兜底为空串。
*/
export class AvatarData {
readonly avatarUrl: string;
readonly userId: string;
constructor(params: { avatarUrl?: string; userId: string }) {
this.avatarUrl = params.avatarUrl ?? "";
this.userId = params.userId;
Object.freeze(this);
}
toJson(): Record<string, unknown> {
return {
avatarUrl: this.avatarUrl,
userId: this.userId,
};
}
static fromJson(json: Record<string, unknown>): AvatarData {
const userId = json.userId;
if (typeof userId !== "string") {
throw new Error("AvatarData.userId is required and must be a string");
}
return new AvatarData({
userId,
avatarUrl:
typeof json.avatarUrl === "string" ? json.avatarUrl : undefined,
});
}
}