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
+41
View File
@@ -0,0 +1,41 @@
/**
* 待同步的单条消息
* 原始 Dart: SyncMessage (lib/data/models/chat/chat_sync.dart)
*/
export class SyncMessage {
readonly role: string;
readonly content: string;
readonly timestamp: string;
constructor(params: { role: string; content: string; timestamp: string }) {
this.role = params.role;
this.content = params.content;
this.timestamp = params.timestamp;
Object.freeze(this);
}
toJson(): Record<string, unknown> {
return {
role: this.role,
content: this.content,
timestamp: this.timestamp,
};
}
static fromJson(json: Record<string, unknown>): SyncMessage {
const requireString = (key: string): string => {
const v = json[key];
if (typeof v !== "string") {
throw new Error(
`SyncMessage.${key} is required and must be a string`
);
}
return v;
};
return new SyncMessage({
role: requireString("role"),
content: requireString("content"),
timestamp: requireString("timestamp"),
});
}
}