refactor: extract store package (#1109)

This commit is contained in:
Himself65
2023-02-18 02:41:22 -06:00
committed by GitHub
parent af28418e61
commit 9d21c3efbb
34 changed files with 681 additions and 337 deletions

View File

@@ -32,11 +32,14 @@ export class DataCenter {
private _mainProvider?: BaseProvider;
providerMap: Map<string, BaseProvider> = new Map();
constructor(debug: boolean) {
private constructor(debug: boolean) {
this._logger.enabled = debug;
}
static async init(debug: boolean): Promise<DataCenter> {
static async init(
debug: boolean,
exclude: 'affine'[] = []
): Promise<DataCenter> {
const dc = new DataCenter(debug);
const getInitParams = () => {
return {
@@ -56,7 +59,9 @@ export class DataCenter {
} else {
await dc.registerProvider(new LocalProvider(getInitParams()));
}
await dc.registerProvider(new AffineProvider(getInitParams()));
if (!exclude.includes('affine')) {
await dc.registerProvider(new AffineProvider(getInitParams()));
}
for (const provider of dc.providerMap.values()) {
await provider.loadWorkspaces();

View File

@@ -25,7 +25,7 @@ const _initializeDataCenter = () => {
export const getDataCenter = _initializeDataCenter();
export type { DataCenter };
export { DataCenter };
export { getLogger } from './logger';
export * from './message';
export { AffineProvider } from './provider/affine';

View File

@@ -10,6 +10,9 @@ export const setDefaultAvatar = async (
return;
}
const blob = await getDefaultHeadImgBlob(blocksuiteWorkspace.meta.name);
if (!blob) {
return;
}
const blobStorage = await blocksuiteWorkspace.blobs;
assert(blobStorage, 'No blob storage');
const avatar = await blobStorage.set(blob);

View File

@@ -28,10 +28,13 @@ const DefaultHeadImgColors = [
export async function getDefaultHeadImgBlob(
workspaceName: string
): Promise<Blob> {
): Promise<Blob | null> {
const canvas = document.createElement('canvas');
canvas.height = 100;
canvas.width = 100;
if (!canvas.getContext) {
return Promise.resolve(null);
}
const ctx = canvas.getContext('2d');
return new Promise<Blob>((resolve, reject) => {
if (ctx) {