Skip to content

Commit 412c700

Browse files
committed
fix my queries storage package check
1 parent 3176131 commit 412c700

File tree

5 files changed

+29
-17
lines changed

5 files changed

+29
-17
lines changed

packages/my-queries-storage/src/base-pipeline-storage.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
1-
import { type IUserData } from '@mongodb-js/compass-user-data';
2-
import { PipelineSchema } from './pipeline-storage-schema';
1+
import type { IUserData, z } from '@mongodb-js/compass-user-data';
32
import type { SavedPipeline } from './pipeline-storage-schema';
43
import type { PipelineStorageInterface } from './storage-interfaces';
54

65
// Generic base class for pipeline storage that works with any IUserData implementation
7-
export class BaseCompassPipelineStorage implements PipelineStorageInterface {
8-
private readonly userData: IUserData<typeof PipelineSchema>;
9-
10-
constructor(userData: IUserData<typeof PipelineSchema>) {
6+
export class BaseCompassPipelineStorage<TSchema extends z.Schema>
7+
implements PipelineStorageInterface
8+
{
9+
private readonly userData: IUserData<TSchema>;
10+
11+
constructor(userData: IUserData<TSchema>) {
1112
this.userData = userData;
1213
}
1314

1415
async loadAll(): Promise<SavedPipeline[]> {
1516
try {
1617
const { data } = await this.userData.readAll();
17-
return data;
18+
return data as SavedPipeline[];
1819
} catch {
1920
return [];
2021
}

packages/my-queries-storage/src/base-query-storage.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ObjectId, UUID } from 'bson';
1+
import { UUID } from 'bson';
22
import { type z } from '@mongodb-js/compass-user-data';
33
import { type IUserData } from '@mongodb-js/compass-user-data';
44
import { RecentQuerySchema, FavoriteQuerySchema } from './query-storage-schema';
@@ -9,8 +9,8 @@ import type {
99

1010
// Generic storage options that can be extended by platform-specific implementations
1111
export type BaseStorageOptions = {
12-
serialize?: (content: any) => string;
13-
deserialize?: (content: string) => any;
12+
serialize?: (content: unknown) => string;
13+
deserialize?: (content: string) => unknown;
1414
};
1515

1616
// Generic base class that works with any IUserData implementation

packages/my-queries-storage/src/compass-pipeline-storage.spec.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ const getEnsuredFilePath = async (tmpDir: string, fileId: string) => {
1010
return path.join(tmpDir, 'SavedPipelines', `${fileId}.json`);
1111
};
1212

13-
const createPipeline = async (tmpDir: string, data: any) => {
13+
const createPipeline = async (
14+
tmpDir: string,
15+
data: { id: string; name: string; namespace: string }
16+
) => {
1417
const filePath = await getEnsuredFilePath(tmpDir, data.id);
1518
await fs.writeFile(filePath, JSON.stringify(data));
1619
};
@@ -84,7 +87,7 @@ describe('CompassPipelineStorage', function () {
8487
await fs.access(await getEnsuredFilePath(tmpDir, data.id));
8588
expect.fail('Expected file to not exist');
8689
} catch (e) {
87-
expect((e as any).code).to.equal('ENOENT');
90+
expect((e as NodeJS.ErrnoException).code).to.equal('ENOENT');
8891
}
8992

9093
const result = await pipelineStorage.createOrUpdate(data.id, data);

packages/my-queries-storage/src/pipeline-storage-schema.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,19 @@ function savedPipelineToText(pipeline?: StoredLegacyPipelineStage[]): string {
4444
}
4545

4646
export const PipelineSchema = z.preprocess(
47-
(val: any) => {
48-
const { pipeline: legacyPipelineArray, pipelineText, ...rest } = val;
47+
(val: unknown) => {
48+
const {
49+
pipeline: legacyPipelineArray,
50+
pipelineText,
51+
...rest
52+
} = val as Record<string, unknown>;
4953
return {
5054
...rest,
51-
pipelineText: pipelineText ?? savedPipelineToText(legacyPipelineArray),
55+
pipelineText:
56+
pipelineText ??
57+
savedPipelineToText(
58+
legacyPipelineArray as StoredLegacyPipelineStage[] | undefined
59+
),
5260
};
5361
},
5462
z.object({

packages/my-queries-storage/src/storage-factories.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export function createWebPipelineStorage(options: WebStorageOptions) {
5252
serialize: (content) => EJSON.stringify(content),
5353
deserialize: (content: string) => EJSON.parse(content),
5454
});
55-
return new BaseCompassPipelineStorage(userData);
55+
return new BaseCompassPipelineStorage<typeof PipelineSchema>(userData);
5656
}
5757

5858
// Electron-specific factory functions
@@ -88,5 +88,5 @@ export function createElectronPipelineStorage(
8888
const userData = new FileUserData(PipelineSchema, 'SavedPipelines', {
8989
basePath: options.basepath,
9090
});
91-
return new BaseCompassPipelineStorage(userData);
91+
return new BaseCompassPipelineStorage<typeof PipelineSchema>(userData);
9292
}

0 commit comments

Comments
 (0)