Skip to content

Commit 9857f8d

Browse files
committed
fix(filesystem): resolve disk driver resolution bug that prevented regestering disks whose names didn't match driver names.
1 parent c770c83 commit 9857f8d

4 files changed

Lines changed: 10 additions & 9 deletions

File tree

packages/filesystem/src/Driver.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { CustomDiskConfig, CustomDiskDriverRegistry, DriverConfig, FtpDriverConfig, LocalDriverConfig, S3DriverConfig } from './types'
1+
import { CustomDiskConfig, CustomDiskDriverRegistry, DiskConfig, FtpDriverConfig, LocalDriverConfig, S3DriverConfig } from './types'
22
import { DriverContract, SignedURLOptions } from 'flydrive/types'
33

44
import { FSDriver } from 'flydrive/drivers/fs'
@@ -18,17 +18,18 @@ export class Driver {
1818
DriverContract | (new (config?: CustomDiskConfig) => DriverContract)
1919
>()
2020

21-
constructor(private config: DriverConfig) { }
21+
constructor(private config: DiskConfig) { }
2222

2323
static make<K extends 'local' | 'ftp' | 's3' | (string & {})> (
24-
name: K,
25-
config: DriverConfig<K>
24+
config: DiskConfig
2625
): DriverFor<K> {
26+
const name = config.driver
27+
2728
if (!['local', 'ftp', 's3'].includes(name) && !this.customDrivers.has(name)) {
2829
throw new Error(`Unsupported driver: ${name}`)
2930
}
3031

31-
const driver = new Driver(config as never)
32+
const driver = new Driver(config)
3233

3334
if (this.customDrivers.has(name)) {
3435
return driver.custom(name) as DriverFor<K>

packages/filesystem/src/Storage.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ export class Storage implements DriverContract {
2323
Driver.registerDriver(name, driver)
2424
}
2525

26-
for (const [disk, conf] of disks) {
27-
this.services[disk] = () => Driver.make(disk, conf)
26+
for (const [disk, config] of disks) {
27+
this.services[disk] = () => Driver.make(config)
2828
}
2929

3030
this.diskName = config('filesystem.default')

packages/filesystem/src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export type CustomDiskConfig = keyof CustomDiskDriverRegistry extends never
4646
: { [K in keyof CustomDiskDriverRegistry]: CustomDiskDriverRegistry[K] & { driver: K } }[keyof CustomDiskDriverRegistry]
4747

4848
export type DiskConfig =
49-
| LocalDriverConfig & { driver: 'local' }
49+
| LocalDriverConfig & { driver: 'local' | 'public' }
5050
| FtpDriverConfig & { driver: 'ftp' }
5151
| S3DriverConfig & { driver: 's3' }
5252
| CustomDiskConfig

packages/filesystem/tests/storage.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ describe('Filesystem Storage', () => {
2929

3030
Driver.registerDriver('memory', driver)
3131

32-
expect(Driver.make('memory', { driver: 'memory' } as never)).toBe(driver)
32+
expect(Driver.make({ driver: 'memory' } as never)).toBe(driver)
3333

3434
Driver.removeDriver('memory')
3535
})

0 commit comments

Comments
 (0)