Skip to content

Commit 5dded89

Browse files
committed
fix: fix typing issue with update
1 parent 510ec71 commit 5dded89

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/file.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,14 @@ export class File<T = unknown> extends DataBuddyUtils implements FileInterface<T
4444
return this.read({ path, filename })
4545
}
4646

47+
async update(params: BaseParams & { data: T; mode?: 'replace' }): Promise<ReturnData<T>>
48+
async update(params: BaseParams & { data: Partial<T>; mode: 'merge' }): Promise<ReturnData<T>>
4749
async update({
4850
path,
4951
filename,
5052
data,
5153
mode = 'replace',
52-
}: BaseParams & { data: T; mode?: 'replace' | 'merge' }): Promise<ReturnData<T>> {
54+
}: BaseParams & { data: T | Partial<T>; mode?: 'replace' | 'merge' }): Promise<ReturnData<T>> {
5355
this.validatePathAndFilename(path, filename)
5456
const workingPath = this.workingPath(path)
5557

@@ -65,7 +67,7 @@ export class File<T = unknown> extends DataBuddyUtils implements FileInterface<T
6567
}
6668
updatedData = { ...currentData, ...data }
6769
} else {
68-
updatedData = data
70+
updatedData = data as T
6971
}
7072

7173
await fs.writeFile(`${workingPath}/${filename}.json`, JSON.stringify(updatedData, null, 4))

src/types/file_interface.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,15 @@ export interface FileInterface<T = unknown> {
3636
* With mode 'merge', it performs a shallow merge of the updates into existing data.
3737
* It takes an object with `path`, `filename`, `data`, and optional `mode`.
3838
* It returns a Promise that resolves with the updated data from the file or null if an error occurs.
39-
*
40-
* @param {BaseParams & { data: T; mode?: 'replace' | 'merge' }} { path, filename, data, mode }
41-
* @returns {Promise<ReturnData<T>>}
4239
*/
40+
update(params: BaseParams & { data: T; mode?: 'replace' }): Promise<ReturnData<T>>
41+
update(params: BaseParams & { data: Partial<T>; mode: 'merge' }): Promise<ReturnData<T>>
4342
update({
4443
path,
4544
filename,
4645
data,
4746
mode,
48-
}: BaseParams & { data: T; mode?: 'replace' | 'merge' }): Promise<ReturnData<T>>
47+
}: BaseParams & { data: T | Partial<T>; mode?: 'replace' | 'merge' }): Promise<ReturnData<T>>
4948

5049
/**
5150
* The `delete` method is used to delete a file.

0 commit comments

Comments
 (0)