@@ -21,10 +21,14 @@ import { Drivers } from './Drivers/Drivers'
2121import { DriverContract } from './Contracts/DriverContract'
2222
2323export class Storage {
24+ private configs : any = { }
2425 private _tempDriver : DriverContract | null = null
2526 private _defaultDriver : DriverContract | null = null
2627
27- static build ( name : string , driver : new ( disk : string ) => DriverContract ) {
28+ static build (
29+ name : string ,
30+ driver : new ( disk : string , configs ?: any ) => DriverContract ,
31+ ) {
2832 if ( Drivers [ name ] )
2933 throw new InternalServerException ( `Driver ${ name } already exists` )
3034
@@ -42,6 +46,48 @@ export class Storage {
4246 this . _defaultDriver = new Drivers [ diskConfig . driver ] ( defaultDisk )
4347 }
4448
49+ resetConfigs ( ) : Storage {
50+ this . configs = { }
51+
52+ const defaultDisk = Config . get ( 'filesystem.default' )
53+ const diskConfig = Config . get ( `filesystem.disks.${ defaultDisk } ` )
54+
55+ this . _defaultDriver = new Drivers [ diskConfig . driver ] (
56+ defaultDisk ,
57+ this . configs ,
58+ )
59+
60+ return this
61+ }
62+
63+ removeConfig ( key : string ) : Storage {
64+ delete this . configs [ key ]
65+
66+ const defaultDisk = Config . get ( 'filesystem.default' )
67+ const diskConfig = Config . get ( `filesystem.disks.${ defaultDisk } ` )
68+
69+ this . _defaultDriver = new Drivers [ diskConfig . driver ] (
70+ defaultDisk ,
71+ this . configs ,
72+ )
73+
74+ return this
75+ }
76+
77+ addConfig ( key : string , value : any ) : Storage {
78+ this . configs [ key ] = value
79+
80+ const defaultDisk = Config . get ( 'filesystem.default' )
81+ const diskConfig = Config . get ( `filesystem.disks.${ defaultDisk } ` )
82+
83+ this . _defaultDriver = new Drivers [ diskConfig . driver ] (
84+ defaultDisk ,
85+ this . configs ,
86+ )
87+
88+ return this
89+ }
90+
4591 changeDefaultDisk ( disk : string ) : Storage {
4692 const diskConfig = Config . get ( `filesystem.disks.${ disk } ` )
4793
@@ -55,7 +101,7 @@ export class Storage {
55101 `Driver ${ diskConfig . driver } does not exist, use Storage.build method to create a new driver` ,
56102 )
57103
58- this . _defaultDriver = new Drivers [ diskConfig . driver ] ( disk )
104+ this . _defaultDriver = new Drivers [ diskConfig . driver ] ( disk , this . configs )
59105
60106 return this
61107 }
@@ -73,7 +119,7 @@ export class Storage {
73119 `Driver ${ diskConfig . driver } does not exist, use Storage.build method to create a new driver` ,
74120 )
75121
76- this . _tempDriver = new Drivers [ diskConfig . driver ] ( disk )
122+ this . _tempDriver = new Drivers [ diskConfig . driver ] ( disk , this . configs )
77123
78124 return this
79125 }
0 commit comments