good night

This commit is contained in:
Daniel Hübleitner
2019-08-27 01:20:35 +02:00
parent 4a568728c0
commit 48b3951a28
+29 -12
View File
@@ -143,7 +143,9 @@ export abstract class FSExtension<Status extends FSStatus> extends Extension<FSS
} }
type NPMStatus = FSStatus & { type NPMStatus = FSStatus & {
version?: string latest?: string,
current?: string, // TODO
author?: string
} }
export class NPMExtension extends FSExtension<NPMStatus>{ export class NPMExtension extends FSExtension<NPMStatus>{
@@ -157,17 +159,32 @@ export class NPMExtension extends FSExtension<NPMStatus>{
public async status(): Promise<NPMStatus> { public async status(): Promise<NPMStatus> {
const fsStatus = await super.status() const fsStatus = await super.status()
const { error, const {
stdout, latestError,
stderr } = await exec('npm info --prefix ' + this.prefix + ' ' + this.name + " version") latest,
latestStdErr } = await exec('npm view --prefix ' + this.prefix + ' ' + this.name + " version")
if(error){ if(latestError){
logger.warn(stderr) logger.warn(latestStdErr)
return fsStatus return fsStatus
} }
const {
authorError,
author,
authorStdErr } = await exec('npm author ls --prefix ' + this.prefix + ' ' + this.name)
if(authorError){
logger.warn(authorStdErr)
return {
...fsStatus,
latest: latest}
}
return { return {
...fsStatus, ...fsStatus,
version: stdout latest: latest,
author: author
} }
} }
@@ -232,22 +249,22 @@ export class NPMExtension extends FSExtension<NPMStatus>{
} }
export type GitStatus = FSStatus & { export type GitStatus = FSStatus & {
current?: string branch?: string
wanted?: string remote?: string
latest?: string latest?: string
} }
export class GitExtension extends FSExtension<GitStatus>{ export class GitExtension extends FSExtension<GitStatus>{
constructor( constructor(
name:string, name:string,
version = "latest", prefix:string,
public localPrefix:string, protected gitCloneURL: URL
){ ){
super(name, version) super(name, version)
} }
public async status(): Promise<GitStatus>{ public async status(): Promise<GitStatus>{
//TODO tomorrow
} }
public async install(): Promise<boolean> { public async install(): Promise<boolean> {