forked from hibas123/SecureFileWrapper
Fixing some bugs and updating dependencies
This commit is contained in:
25
src/index.ts
25
src/index.ts
@ -84,8 +84,10 @@ function statusParser(res: Response) {
|
||||
}
|
||||
}
|
||||
|
||||
export type JWTCallback = (err: Error | null | string, jwt: string) => void;
|
||||
|
||||
export default class SecureFileWrapper {
|
||||
private _jwtObservableServer: Observable<(jwt: string) => void> = new Observable();
|
||||
private _jwtObservableServer: Observable<JWTCallback> = new Observable();
|
||||
jwtObservable = this._jwtObservableServer.getPublicApi();
|
||||
|
||||
private jwt: string;
|
||||
@ -103,10 +105,18 @@ export default class SecureFileWrapper {
|
||||
public async getJWT() {
|
||||
if (!this.auth_lock.locked) {
|
||||
let lock = await this.auth_lock.getLock();
|
||||
this._jwtObservableServer.send((jwt: string) => {
|
||||
this.jwt = jwt;
|
||||
lock.release();
|
||||
});
|
||||
await new Promise((yes, no) => {
|
||||
this._jwtObservableServer.send((err: Error | null | string, jwt: string) => {
|
||||
if (err) {
|
||||
this.jwt = undefined;
|
||||
no(err);
|
||||
}
|
||||
else {
|
||||
this.jwt = jwt;
|
||||
yes();
|
||||
}
|
||||
});
|
||||
}).finally(() => lock.release())
|
||||
}
|
||||
|
||||
await this.auth_lock.getLock().then(lock => lock.release())
|
||||
@ -232,4 +242,9 @@ export default class SecureFileWrapper {
|
||||
async restore(id: string, version: string) {
|
||||
await this.makeRequest(`/files/${id}/history/${version}/restore`, "PUT", {});
|
||||
}
|
||||
|
||||
async clean(id: string, val: number | Date): Promise<void> {
|
||||
let query = typeof val === "number" ? { count: val } : { date: val.toISOString() };
|
||||
return this.makeRequest(`/files/${id}/history/clean`, "PUT", query);
|
||||
}
|
||||
}
|
@ -167,7 +167,7 @@ function test(sf: SecureFile) {
|
||||
describe("SecureFile Tests", function () {
|
||||
let sf = new SecureFile("http://localhost:3004");
|
||||
sf.jwtObservable.subscribe((callback) => {
|
||||
callback("TESTJWT");
|
||||
callback(null, "TESTJWT");
|
||||
})
|
||||
test(sf)
|
||||
})
|
Reference in New Issue
Block a user