renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
31 lines (30 loc) • 1.23 kB
JavaScript
import { PLATFORM_NOT_FOUND } from "../../constants/error-messages.js";
import { DefaultGitScm } from "./default-scm.js";
import { GerritScm } from "./gerrit/scm.js";
import { GithubScm } from "./github/scm.js";
import { LocalFs } from "./local/scm.js";
//#region lib/modules/platform/scm.ts
const platformScmImpls = /* @__PURE__ */ new Map();
platformScmImpls.set("azure", DefaultGitScm);
platformScmImpls.set("codecommit", DefaultGitScm);
platformScmImpls.set("bitbucket", DefaultGitScm);
platformScmImpls.set("bitbucket-server", DefaultGitScm);
platformScmImpls.set("forgejo", DefaultGitScm);
platformScmImpls.set("gerrit", GerritScm);
platformScmImpls.set("gitea", DefaultGitScm);
platformScmImpls.set("github", GithubScm);
platformScmImpls.set("gitlab", DefaultGitScm);
platformScmImpls.set("local", LocalFs);
platformScmImpls.set("scm-manager", DefaultGitScm);
let _scm;
const scm = new Proxy({}, { get(_target, prop) {
if (!_scm) throw new Error(PLATFORM_NOT_FOUND);
return _scm[prop];
} });
function setPlatformScmApi(name) {
if (!platformScmImpls.has(name)) throw new Error(PLATFORM_NOT_FOUND);
_scm = new (platformScmImpls.get(name))();
}
//#endregion
export { scm, setPlatformScmApi };
//# sourceMappingURL=scm.js.map