From 361961c59ffb4a92fb6085b6d93bb282b7ef939e Mon Sep 17 00:00:00 2001 From: Robin van Boven <497556+Beanow@users.noreply.github.com> Date: Tue, 4 Feb 2020 22:28:24 +0100 Subject: [PATCH] Switch to LoadContext based loading (#1622) This naming is temporary, as the old loading code is removed it will be named load and replace the existing function. --- src/api/load.js | 21 +++++++++++++++++++++ src/cli/discourse.js | 2 +- src/cli/load.js | 2 +- src/cli/load.test.js | 4 ++-- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/api/load.js b/src/api/load.js index db1c1b0..6f4af1a 100644 --- a/src/api/load.js +++ b/src/api/load.js @@ -23,6 +23,7 @@ import {type Weights as WeightsT} from "../core/weights"; import {loadWeightedGraph} from "./loadWeightedGraph"; import {DataDirectory} from "../backend/dataDirectory"; import {type CacheProvider} from "../backend/cache"; +import {LoadContext} from "../backend/loadContext"; export type LoadOptions = {| +project: Project, @@ -33,6 +34,26 @@ export type LoadOptions = {| +githubToken: ?GithubToken, |}; +export async function loadContext( + options: LoadOptions, + reporter: TaskReporter +): Promise { + const { + sourcecredDirectory, + githubToken, + project, + params, + weightsOverrides, + } = options; + const data = new DataDirectory(sourcecredDirectory); + const context = new LoadContext({cache: data, githubToken, reporter}); + const result = await context.load(project, { + params: params || {}, + weightsOverrides, + }); + data.storeProject(project, result); +} + /** * Loads and computes cred for a project. * diff --git a/src/cli/discourse.js b/src/cli/discourse.js index 11be5a1..c082385 100644 --- a/src/cli/discourse.js +++ b/src/cli/discourse.js @@ -8,7 +8,7 @@ import {LoggingTaskReporter} from "../util/taskReporter"; import type {Command} from "./command"; import * as Common from "./common"; import * as Weights from "../core/weights"; -import {load} from "../api/load"; +import {loadContext as load} from "../api/load"; import {declaration as discourseDeclaration} from "../plugins/discourse/declaration"; import {type Project, createProject} from "../core/project"; diff --git a/src/cli/load.js b/src/cli/load.js index bf920d2..532704d 100644 --- a/src/cli/load.js +++ b/src/cli/load.js @@ -7,7 +7,7 @@ import type {Command} from "./command"; import * as Common from "./common"; import * as Weights from "../core/weights"; import {projectFromJSON} from "../core/project"; -import {load} from "../api/load"; +import {loadContext as load} from "../api/load"; import {specToProject} from "../plugins/github/specToProject"; import fs from "fs-extra"; import {type PluginDeclaration} from "../analysis/pluginDeclaration"; diff --git a/src/cli/load.test.js b/src/cli/load.test.js index 9dd8c76..4916aee 100644 --- a/src/cli/load.test.js +++ b/src/cli/load.test.js @@ -16,9 +16,9 @@ import {makeRepoId, stringToRepoId} from "../plugins/github/repoId"; import {validateToken} from "../plugins/github/token"; import {defaultParams} from "../analysis/timeline/params"; -jest.mock("../api/load", () => ({load: jest.fn()})); +jest.mock("../api/load", () => ({loadContext: jest.fn()})); type JestMockFn = $Call; -const load: JestMockFn = (require("../api/load").load: any); +const load: JestMockFn = (require("../api/load").loadContext: any); describe("cli/load", () => { const exampleGithubToken = validateToken("0".repeat(40));