This commit enhances type safety and fixes type-related issues throughout the project including: - Updated type definitions in entities, repositories, and models - Improved type annotations in services and controllers - Fixed type issues in adapters and utilities - Enhanced test file type definitions - Added typings/index.d.ts for global type declarations 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude <noreply@anthropic.com>
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { Entity, type EntityData } from './Entity.ts';
|
|
import { isPkgManifest, type DIST_NAMES } from './Package.ts';
|
|
import type { EasyData } from '../util/EntityUtil.ts';
|
|
import { PROXY_CACHE_DIR_NAME } from '../../common/constants.ts';
|
|
interface ProxyCacheData extends EntityData {
|
|
fullname: string;
|
|
fileType: DIST_NAMES;
|
|
version?: string;
|
|
}
|
|
|
|
export type CreateProxyCacheData = Omit<
|
|
EasyData<ProxyCacheData, 'id'>,
|
|
'id' | 'filePath'
|
|
>;
|
|
|
|
export class ProxyCache extends Entity {
|
|
readonly fullname: string;
|
|
readonly fileType: DIST_NAMES;
|
|
readonly filePath: string;
|
|
readonly version?: string;
|
|
|
|
constructor(data: ProxyCacheData) {
|
|
super(data);
|
|
this.fullname = data.fullname;
|
|
this.fileType = data.fileType;
|
|
this.version = data.version;
|
|
if (isPkgManifest(data.fileType)) {
|
|
this.filePath = `/${PROXY_CACHE_DIR_NAME}/${data.fullname}/${data.fileType}`;
|
|
} else {
|
|
this.filePath = `/${PROXY_CACHE_DIR_NAME}/${data.fullname}/${data.version}/${data.fileType}`;
|
|
}
|
|
}
|
|
|
|
public static create(data: CreateProxyCacheData): ProxyCache {
|
|
const newData = { ...data, createdAt: new Date(), updatedAt: new Date() };
|
|
return new ProxyCache(newData);
|
|
}
|
|
|
|
public static update(data: ProxyCache): ProxyCache {
|
|
data.updatedAt = new Date();
|
|
return data;
|
|
}
|
|
}
|