From 428bc335e962672d2d73062c99eef815085a65bb Mon Sep 17 00:00:00 2001 From: Kir_Antipov Date: Tue, 7 Dec 2021 21:35:03 +0300 Subject: [PATCH] Made Dependency interface --- src/metadata/dependency.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/metadata/dependency.ts diff --git a/src/metadata/dependency.ts b/src/metadata/dependency.ts new file mode 100644 index 0000000..d0ed2a5 --- /dev/null +++ b/src/metadata/dependency.ts @@ -0,0 +1,25 @@ +import PublisherTarget from "../publishing/publisher-target"; +import DependencyKind from "./dependency-kind"; + +interface Dependency { + get id(): string; + get version(): string; + get kind(): DependencyKind; + get ignore(): boolean; + + getProjectSlug(project: PublisherTarget): string; +} + +namespace Dependency { + export function create({ id, version = "*", kind = DependencyKind.Depends, ignore = false }: { id: string, version?: string, kind?: DependencyKind, ignore?: boolean }): Dependency { + return { + id, + version: version ?? "*", + kind: kind ?? DependencyKind.Depends, + ignore: ignore ?? false, + getProjectSlug: _ => id + }; + } +} + +export default Dependency;