aboutsummaryrefslogtreecommitdiff
path: root/packages/api
diff options
context:
space:
mode:
Diffstat (limited to 'packages/api')
-rw-r--r--packages/api/package.json8
-rw-r--r--packages/api/src/branch.d.ts10
-rw-r--r--packages/api/src/commit.d.ts48
-rw-r--r--packages/api/src/index.d.ts12
-rw-r--r--packages/api/src/info.d.ts4
-rw-r--r--packages/api/src/misc.d.ts4
-rw-r--r--packages/api/src/repository.d.ts12
-rw-r--r--packages/api/src/tag.d.ts7
-rw-r--r--packages/api/src/tree.d.ts12
9 files changed, 117 insertions, 0 deletions
diff --git a/packages/api/package.json b/packages/api/package.json
new file mode 100644
index 0000000..55b33b5
--- /dev/null
+++ b/packages/api/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "api",
+ "version": "1.0.0",
+ "main": "src/index.d.ts",
+ "author": "HampusMat",
+ "license": "MIT",
+ "private": true
+}
diff --git a/packages/api/src/branch.d.ts b/packages/api/src/branch.d.ts
new file mode 100644
index 0000000..a32515e
--- /dev/null
+++ b/packages/api/src/branch.d.ts
@@ -0,0 +1,10 @@
+import { LatestCommit } from "./commit";
+
+export interface BranchSummary {
+ id: string,
+ name: string
+}
+
+export interface Branch extends BranchSummary {
+ latest_commit: LatestCommit
+} \ No newline at end of file
diff --git a/packages/api/src/commit.d.ts b/packages/api/src/commit.d.ts
new file mode 100644
index 0000000..6eb598c
--- /dev/null
+++ b/packages/api/src/commit.d.ts
@@ -0,0 +1,48 @@
+import { Author } from "./misc";
+
+export type Hunk = {
+ new_start: number,
+ new_lines_cnt: number,
+ new_lines: number[],
+ old_start: number,
+ old_lines_cnt: number,
+ deleted_lines: number[],
+ hunk: string
+}
+
+export type Patch = {
+ additions: number,
+ deletions: number,
+ from: string,
+ to: string,
+ too_large: boolean,
+ hunks: Hunk[]
+}
+export interface Commit {
+ message: string,
+ author: Author,
+ date: number,
+ insertions: number,
+ deletions: number,
+ files_changed: number,
+ diff: Patch[]
+}
+
+export type LogCommit = {
+ id: string,
+ author: {
+ name: string,
+ email: string
+ },
+ message: string,
+ date: number,
+ insertions: number,
+ deletions: number,
+ files_changed: number
+}
+
+export type LatestCommit = {
+ id: string,
+ message: string,
+ date: number
+} \ No newline at end of file
diff --git a/packages/api/src/index.d.ts b/packages/api/src/index.d.ts
new file mode 100644
index 0000000..eeb31ad
--- /dev/null
+++ b/packages/api/src/index.d.ts
@@ -0,0 +1,12 @@
+/**
+ * Interfaces and types used both client-side and server-side.
+ *
+ * @module api
+ */
+export { Tree, TreeEntry } from "./tree";
+export { Commit, Patch, Hunk, LatestCommit, LogCommit } from "./commit";
+export { Repository, RepositorySummary } from "./repository";
+export { Branch, BranchSummary } from "./branch";
+export { Author } from "./misc";
+export { Tag } from "./tag";
+export { Info } from "./info"; \ No newline at end of file
diff --git a/packages/api/src/info.d.ts b/packages/api/src/info.d.ts
new file mode 100644
index 0000000..1101cea
--- /dev/null
+++ b/packages/api/src/info.d.ts
@@ -0,0 +1,4 @@
+export type Info = {
+ title: string,
+ about: string,
+} \ No newline at end of file
diff --git a/packages/api/src/misc.d.ts b/packages/api/src/misc.d.ts
new file mode 100644
index 0000000..e43fae5
--- /dev/null
+++ b/packages/api/src/misc.d.ts
@@ -0,0 +1,4 @@
+export type Author = {
+ name: string,
+ email: string
+} \ No newline at end of file
diff --git a/packages/api/src/repository.d.ts b/packages/api/src/repository.d.ts
new file mode 100644
index 0000000..cb4d246
--- /dev/null
+++ b/packages/api/src/repository.d.ts
@@ -0,0 +1,12 @@
+interface RepositoryBase {
+ name: string,
+ description: string | null
+}
+
+export interface RepositorySummary extends RepositoryBase {
+ last_updated: number | string
+}
+
+export interface Repository extends RepositoryBase {
+ has_readme: boolean
+} \ No newline at end of file
diff --git a/packages/api/src/tag.d.ts b/packages/api/src/tag.d.ts
new file mode 100644
index 0000000..7c418da
--- /dev/null
+++ b/packages/api/src/tag.d.ts
@@ -0,0 +1,7 @@
+import { Author } from "./misc";
+
+export type Tag = {
+ name: string,
+ author: Author,
+ date: number
+} \ No newline at end of file
diff --git a/packages/api/src/tree.d.ts b/packages/api/src/tree.d.ts
new file mode 100644
index 0000000..d2b4708
--- /dev/null
+++ b/packages/api/src/tree.d.ts
@@ -0,0 +1,12 @@
+import { LatestCommit } from "./commit";
+
+export type TreeEntry = {
+ name: string,
+ type: "tree" | "blob",
+ latest_commit: LatestCommit
+};
+
+export type Tree = {
+ type: "tree" | "blob",
+ content: string | TreeEntry[]
+}; \ No newline at end of file