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