still in werks
This commit is contained in:
+24
-13
@@ -23,13 +23,31 @@ Logger.configure({
|
||||
})
|
||||
const logger = Logger.getLogger("admin/updatemanager")
|
||||
|
||||
/*
|
||||
cool snibbet
|
||||
|
||||
const SharedStatus = <Status>
|
||||
(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<Status extends SharedStatus>{
|
||||
abstract class Extension<Status>{
|
||||
constructor(
|
||||
protected name: string
|
||||
){}
|
||||
@@ -116,15 +134,14 @@ export abstract class FSExtension extends Extension<FSStatus>{
|
||||
}
|
||||
}
|
||||
|
||||
type NpmExtensionStatus = SharedStatus & {
|
||||
type NPMStatus = FSStatus & {
|
||||
version?: string,
|
||||
wanted?: string,
|
||||
latest?: string,
|
||||
name: string,
|
||||
location: string,
|
||||
}
|
||||
|
||||
export class NPMExtension extends Extension<NpmExtensionStatus>{
|
||||
export class NPMExtension extends FSExtension<NPMStatus>{
|
||||
|
||||
|
||||
constructor(
|
||||
@@ -134,13 +151,7 @@ export class NPMExtension extends Extension<NpmExtensionStatus>{
|
||||
super(name)
|
||||
}
|
||||
|
||||
public async status(): Promise<NpmExtensionStatus> {
|
||||
try {
|
||||
await fs.access(this.localPrefix);
|
||||
}
|
||||
catch (e) {
|
||||
return { exists: false, empty: true, name: this.name, location: this.localPrefix };
|
||||
}
|
||||
public async status(): Promise<NPMStatus> {
|
||||
|
||||
const files = await fs.readdir(this.localPrefix)
|
||||
const empty: boolean = files.length === 0
|
||||
@@ -197,7 +208,7 @@ export class NPMExtension extends Extension<NpmExtensionStatus>{
|
||||
}
|
||||
}
|
||||
|
||||
public async isOutdated(): Promise<boolean> {
|
||||
public async isOutdated(): Promise<boolean> { //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<NpmExtensionStatus>{
|
||||
}
|
||||
|
||||
isInstalled(): Promise<boolean> {
|
||||
throw new Error("Method not implemented.");
|
||||
throw new Error("Method not implemented."); //TODO
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user