fix: 修复渲染器无法调用 project 内定义的 api

This commit is contained in:
wangxuefeng
2025-02-25 11:39:45 +08:00
parent e695a4bf4a
commit 11018965bd
14 changed files with 199 additions and 17966 deletions

View File

@@ -4,27 +4,41 @@ import {
type HistorySchema,
type HistoryItem,
type MaterialDescription,
type ExtensionConfig,
type PageFile,
type BlockFile,
ProjectModel,
HistoryModel
} from '@vtj/core';
import { Storage, mapToObject } from '@vtj/utils';
import { BaseService } from '@vtj/renderer';
import { debounce } from 'licia-es';
const storage = new Storage({
type: 'local',
expired: 0,
prefix: '__VTJ_'
expired: 0
// prefix: '__VTJ_'
});
export class StorageService extends BaseService {
public init(project: ProjectSchema): Promise<ProjectSchema> {
console.log('init-project', project);
const model = new ProjectModel(project);
// console.log('init-project-model', model);
const match = storage.get(`project_${model.id}`);
console.log('init-project-match', match);
const dsl = Object.assign(model.toDsl(), match || {});
console.log('init-project-dsl', dsl);
storage.save(`project_${model.id}`, dsl);
return Promise.resolve(dsl);
}
public getExtension(): Promise<ExtensionConfig | undefined> {
const extension = storage.get('extension');
console.log('ExtensionConfig', extension);
return Promise.resolve(extension as ExtensionConfig | undefined);
}
public saveProject(project: ProjectSchema): Promise<boolean> {
const model = new ProjectModel(project);
storage.save(`project_${model.id}`, model.toDsl());
@@ -36,16 +50,19 @@ export class StorageService extends BaseService {
materials: Map<string, MaterialDescription>
): Promise<boolean> {
storage.save(`materials_${project.id}`, mapToObject(materials));
console.log('saveMaterials', materials);
return Promise.resolve(true);
}
public saveFile(file: BlockSchema): Promise<boolean> {
storage.save(`file_${file.id}`, file);
console.log('saveFile', file);
return Promise.resolve(true);
}
public getFile(id: string): Promise<BlockSchema> {
const dsl = storage.get(`file_${id}`);
console.log('getFile', id, dsl);
if (dsl) {
return Promise.resolve(dsl as BlockSchema);
} else {
@@ -55,14 +72,26 @@ export class StorageService extends BaseService {
public removeFile(id: string): Promise<boolean> {
storage.remove(`file_${id}`);
console.log('removeFile', id);
return Promise.resolve(true);
}
public saveHistory(history: HistorySchema): Promise<boolean> {
storage.save(`history_${history.id}`, history);
// console.log('saveHistory', history);
return Promise.resolve(true);
}
public api = (type: string, data: any): Promise<any> => {
console.log('api', type, data);
return Promise.resolve(true);
};
protected uploader = (file: File, projectId: string): Promise<any> => {
console.log('uploader', file, projectId);
return Promise.resolve(true);
};
public removeHistory(id: string): Promise<boolean> {
const history = storage.get(`history_${id}`) as HistorySchema;
if (history) {
@@ -70,6 +99,7 @@ export class StorageService extends BaseService {
const ids = items.map((item) => item.id);
this.removeHistoryItem(id, ids);
storage.remove(`history_${id}`);
console.log('removeHistory', history);
}
return Promise.resolve(true);
@@ -77,16 +107,20 @@ export class StorageService extends BaseService {
public getHistory(id: string): Promise<HistorySchema> {
const dsl = storage.get(`history_${id}`);
console.log('getHistoryDSL', dsl);
const history = new HistoryModel(dsl || { id });
console.log('getHistory', dsl, id, history);
return Promise.resolve(history.toDsl());
}
public getHistoryItem(fId: string, id: string): Promise<HistoryItem> {
const item = storage.get(`history_${fId}_${id}`);
console.log('getHistoryItem', item);
return Promise.resolve(item);
}
public saveHistoryItem(fId: string, item: HistoryItem): Promise<boolean> {
console.log('saveHistoryItem', fId, item);
storage.save(`history_${fId}_${item.id}`, item);
return Promise.resolve(true);
}
@@ -94,7 +128,20 @@ export class StorageService extends BaseService {
public removeHistoryItem(fId: string, ids: string[]): Promise<boolean> {
ids.forEach((id) => {
storage.remove(`history_${fId}_${id}`);
console.log('removeHistoryItem', fId, id);
});
return Promise.resolve(true);
}
public publish(project: ProjectSchema): Promise<boolean> {
console.log('整站发布 project', project);
return Promise.resolve(true);
}
public publishFile(
project: ProjectSchema,
file: PageFile | BlockFile
): Promise<boolean> {
console.log('发布页面', project, file);
return Promise.resolve(true);
}
}