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:
1 parent
79ab8abad2
commit
d04fb61f2a
21 files changed
+200
-31
No files matched your search
@@ -0,0 +1,13 @@
|
||||
import { Module } from '../model/spec/module'
|
||||
import { Resolver } from './resolver'
|
||||
|
||||
export abstract class BaseResolver implements Resolver {
|
||||
|
||||
constructor(
|
||||
protected absoluteRoot: string,
|
||||
protected relativeRoot: string
|
||||
) {}
|
||||
|
||||
public abstract getModule(): Promise<Module>
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { Module } from '../../../model/spec/module'
|
||||
import { ForgeResolver } from '../forge.resolver'
|
||||
|
||||
export class Forge18Adapter extends ForgeResolver {
|
||||
|
||||
public async getModule(): Promise<Module> {
|
||||
return null as unknown as Module
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { Module } from '../model/spec/module'
|
||||
|
||||
export interface Resolver {
|
||||
|
||||
getModule(): Promise<Module>
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user