Setting up flow for resolvers.
Repo structure classes should be responsible for pulling versioned files. Ex. /forge/1.14/ -> get the latest file (or only allow one file). The resolver then gets that file to work with in order to resolve the forge module, pull its libs, and attach them as submodules.
This commit is contained in:
33
src/resolver/forge/forge.resolver.ts
Normal file
33
src/resolver/forge/forge.resolver.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { Module } from '../../model/spec/module'
|
||||
import { RepoStructure } from '../../model/struct/repo/repo.struct'
|
||||
import { BaseResolver } from '../baseresolver'
|
||||
import { Forge18Adapter } from './adapter/forge18.resolver'
|
||||
|
||||
export abstract class ForgeResolver extends BaseResolver {
|
||||
|
||||
public static getResolver(version: string) {
|
||||
return ForgeResolver.ADAPTER_LIST[version]
|
||||
}
|
||||
|
||||
// tslint:disable: object-literal-key-quotes
|
||||
private static readonly ADAPTER_LIST: {[version: string]: any} = {
|
||||
'1.8': Forge18Adapter,
|
||||
'1.9': Forge18Adapter,
|
||||
'1.10': Forge18Adapter,
|
||||
'1.11': Forge18Adapter,
|
||||
'1.12': Forge18Adapter
|
||||
}
|
||||
|
||||
protected repoStructure: RepoStructure
|
||||
|
||||
constructor(
|
||||
absoluteRoot: string,
|
||||
relativeRoot: string
|
||||
) {
|
||||
super(absoluteRoot, relativeRoot)
|
||||
this.repoStructure = new RepoStructure(absoluteRoot, relativeRoot)
|
||||
}
|
||||
|
||||
public abstract getModule(): Promise<Module>
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user