UNPKG

@simulacrum/github-api-simulator

Version:

Provides common functionality to frontend app and plugins.

60 lines 3.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createResolvers = createResolvers; const relay_ts_1 = require("./relay.js"); const to_graphql_ts_1 = require("./to-graphql.js"); const assert_ts_1 = require("assert-ts"); function createResolvers(simulationStore) { return { Query: { // @ts-expect-error not a fully qualified return per type, TODO fill it out viewer() { let user = simulationStore.schema.users.selectById(simulationStore.store.getState(), { id: "user:1" }); (0, assert_ts_1.assert)(!!user, `no logged in user`); return (0, to_graphql_ts_1.toGraphql)(simulationStore, "User", user); }, // @ts-expect-error not a fully qualified return per type, TODO fill it out organization(_, { login }) { var _a, _b; let orgs = simulationStore.schema.organizations.selectTableAsList(simulationStore.store.getState()); let [org] = orgs.filter((o) => o.login === login); (0, assert_ts_1.assert)(!!org, `no organization found for ${login}`); let __typename = ((_b = (_a = org === null || org === void 0 ? void 0 : org.id) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : ":").split(":")[0]; (0, assert_ts_1.assert)(__typename === "githuborganization", `incorrectly structured GitHubOrganization id ${org.id}`); let shaped = (0, to_graphql_ts_1.toGraphql)(simulationStore, "Organization", org); return shaped; }, // @ts-expect-error not a fully qualified return per type, TODO fill it out organizations(pageArgs) { let orgs = simulationStore.schema.organizations.selectTableAsList(simulationStore.store.getState()); return (0, relay_ts_1.applyRelayPagination)(orgs, pageArgs, (org) => (0, to_graphql_ts_1.toGraphql)(simulationStore, "Organization", org)); }, // @ts-expect-error not a fully qualified return per type, TODO fill it out repository(_, { owner, name }) { let repo = simulationStore.schema.repositories .selectTableAsList(simulationStore.store.getState()) .find((r) => r.name.toLowerCase() === name && r.full_name.toLowerCase() === `${owner}/${name}`.toLowerCase()); (0, assert_ts_1.assert)(!!repo, `no repository found for ${name}`); return (0, to_graphql_ts_1.toGraphql)(simulationStore, "Repository", repo); }, // @ts-expect-error not a fully qualified return per type, TODO fill it out repositoryOwner(_, { login }) { let [org] = simulationStore.schema.organizations .selectTableAsList(simulationStore.store.getState()) .filter((o) => o.login === login); // let [org] = [...githubOrganizations].filter((o) => o.login === login); if (org) return (0, to_graphql_ts_1.toGraphql)(simulationStore, "Organization", org); let [userAccount] = simulationStore.schema.users .selectTableAsList(simulationStore.store.getState()) // TODO should we use u?.githubAccount?.login here? .filter((u) => (u === null || u === void 0 ? void 0 : u.login) === login); (0, assert_ts_1.assert)(!!userAccount, `no github organization or account found for ${login}`); if (userAccount) return (0, to_graphql_ts_1.toGraphql)(simulationStore, "User", userAccount); }, }, }; } //# sourceMappingURL=resolvers.js.map