diff --git a/src/backend/UpdateManger.ts b/src/backend/UpdateManger.ts index 3f4a7e7..dd92c7e 100644 --- a/src/backend/UpdateManger.ts +++ b/src/backend/UpdateManger.ts @@ -23,13 +23,31 @@ Logger.configure({ }) const logger = Logger.getLogger("admin/updatemanager") +/* +cool snibbet + +const SharedStatus = + (privateStatus: Status) => + (name: string) => + (installed: boolean) => + (outdated: boolean) => + { + return { + name: name, + installed: installed, + outdated: outdated, + ...privateStatus + } + } +*/ + type SharedStatus = { name: string installed: boolean outdated: boolean } -abstract class Extension{ +abstract class Extension{ constructor( protected name: string ){} @@ -116,15 +134,14 @@ export abstract class FSExtension extends Extension{ } } -type NpmExtensionStatus = SharedStatus & { +type NPMStatus = FSStatus & { version?: string, wanted?: string, latest?: string, - name: string, location: string, } -export class NPMExtension extends Extension{ +export class NPMExtension extends FSExtension{ constructor( @@ -134,13 +151,7 @@ export class NPMExtension extends Extension{ super(name) } - public async status(): Promise { - try { - await fs.access(this.localPrefix); - } - catch (e) { - return { exists: false, empty: true, name: this.name, location: this.localPrefix }; - } + public async status(): Promise { const files = await fs.readdir(this.localPrefix) const empty: boolean = files.length === 0 @@ -197,7 +208,7 @@ export class NPMExtension extends Extension{ } } - public async isOutdated(): Promise { + public async isOutdated(): Promise { //TODO logger.info("npm outdated", path.resolve(this.localPrefix, this.name)) const { error, stdout, stderr } = await exec('npm list --prefix '+ this.localPrefix + ' --depth=0 | grep ' + this.name) if (error !== null) { @@ -210,7 +221,7 @@ export class NPMExtension extends Extension{ } isInstalled(): Promise { - throw new Error("Method not implemented."); + throw new Error("Method not implemented."); //TODO } }