Skip to content
This repository was archived by the owner on Sep 9, 2025. It is now read-only.

Commit 5437b70

Browse files
authored
Merge pull request #1778 from skaut/file-copy-fix
Fixed copying of files
2 parents b8e4654 + 30e95bf commit 5437b70

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/backend/utils/DriveBackedValue.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export class DriveBackedValue_<T> {
4545

4646
private getExistingDriveFileContents(fileId: string): T {
4747
return JSON.parse(
48-
this.driveService.Files.get(fileId, null, { alt: "media" }) as string,
48+
this.driveService.Files.get(fileId, null, { alt: "media" as const }),
4949
) as T;
5050
}
5151

src/backend/utils/SafeDriveService/SafeFilesCollection.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,15 @@ const safeFileKeys: DeepKeyof<SafeFile> = {
4141
},
4242
};
4343

44+
interface GetArg {
45+
alt?: string;
46+
}
47+
type GetReturn<F extends DeepKeyof<SafeFile>, A extends GetArg> = A extends {
48+
alt: "media";
49+
}
50+
? string
51+
: DeepPick<SafeFile, F>;
52+
4453
export interface SafeFileList<F extends DeepKeyof<SafeFile>> {
4554
items: Array<DeepPick<SafeFile, F>>;
4655
nextPageToken?: string | undefined;
@@ -121,21 +130,24 @@ export class SafeFilesCollection_ {
121130
return ret;
122131
}
123132

124-
public get<F extends DeepKeyof<SafeFile>>(
133+
public get<F extends DeepKeyof<SafeFile>, A extends GetArg>(
125134
fileId: string,
126135
fields: F | null,
127-
optionalArgs: { alt?: string } = {},
128-
): DeepPick<SafeFile, F> {
136+
optionalArgs: A = {} as A,
137+
): GetReturn<F, A> {
129138
const ret = this.unsafeFiles.get(fileId, {
130139
...optionalArgs,
131140
...(fields !== null && {
132141
fields: stringifyFields_(fields),
133142
}),
134143
});
135-
if (!SafeFilesCollection_.fileIsSafe(ret, fields)) {
144+
if (
145+
typeof ret !== "string" &&
146+
!SafeFilesCollection_.fileIsSafe(ret, fields)
147+
) {
136148
throw new Error("");
137149
}
138-
return ret;
150+
return ret as unknown as GetReturn<F, A>;
139151
}
140152

141153
public insert<F extends DeepKeyof<SafeFile>>(

0 commit comments

Comments
 (0)