@anysphere/scip-typescript
Version:
SCIP indexer for TypeScript and JavaScript
38 lines (29 loc) • 897 B
text/typescript
import { descriptorString } from './Descriptor'
import * as scip from './scip'
export class ScipSymbol {
private constructor(public readonly value: string) {}
public isEmpty(): boolean {
return this.value === ''
}
public isLocal(): boolean {
return this.value.startsWith('local ')
}
public static local(counter: number): ScipSymbol {
return new ScipSymbol(`local ${counter}`)
}
public static empty(): ScipSymbol {
return new ScipSymbol('')
}
public static package(name: string, version: string): ScipSymbol {
return new ScipSymbol(`scip-typescript npm ${name} ${version} `)
}
public static anonymousPackage(): ScipSymbol {
return ScipSymbol.package('.', '.')
}
public static global(
owner: ScipSymbol,
descriptor: scip.scip.Descriptor
): ScipSymbol {
return new ScipSymbol(owner.value + descriptorString(descriptor))
}
}