Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit 8d60ca9

Browse files
committed
feat: export type declarations
1 parent 3ae3df4 commit 8d60ca9

File tree

19 files changed

+171
-138
lines changed

19 files changed

+171
-138
lines changed

package.json

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,22 @@
22
"name": "todoist-rest-client",
33
"version": "2.0.4",
44
"description": "A simple todoist-rest-api client",
5-
"author": "Dubisdev",
5+
"author": "David Jiménez",
66
"license": "MIT",
7-
"main": "dist/index.js",
8-
"type": "module",
9-
"types": "dist/index.d.ts",
107
"keywords": [
118
"todoist",
129
"rest-client"
1310
],
11+
"type": "module",
12+
"main": "dist/index.js",
13+
"module": "dist/index.js",
14+
"exports": {
15+
".": {
16+
"import": "./dist/index.js",
17+
"default": "./dist/index.js"
18+
}
19+
},
20+
"types": "dist/index.d.ts",
1421
"dependencies": {
1522
"axios": "^0.24.0"
1623
},

src/TDSClient.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import task from "./submodules/task";
22
import project from "./submodules/project";
3+
import { ClientConstructor, TDSClient } from "./definitions";
34

45
const TDSClientConstructor: ClientConstructor = (apiToken): TDSClient => {
56
if (!apiToken) throw new Error("Missing api token");

src/__tests__/projects.tests.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import TDSClient, { Project } from "..";
2+
import { ClientCreatedProject } from "../definitions";
23

34
const myClient = TDSClient(process.env.TODOIST_TOKEN);
45

src/__tests__/task.tests.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import TDSClient, { Task } from "..";
2+
import { APITaskObject, ClientCreatedTask } from "../definitions";
23

34
const myClient = TDSClient(process.env.TODOIST_TOKEN);
45

src/definitions/APIResponses.d.ts

Lines changed: 0 additions & 47 deletions
This file was deleted.

src/definitions/Client.d.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/definitions/Client.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { TaskModule, ProjectModule } from ".";
2+
import { AxiosRequestHeaders } from "axios";
3+
4+
export interface AuthHeader extends AxiosRequestHeaders {
5+
Authorization: string;
6+
}
7+
8+
export interface TDSClient {
9+
apiToken: string;
10+
task: TaskModule;
11+
project: ProjectModule;
12+
}
13+
14+
export interface ClientConstructor {
15+
(apiToken?: string): TDSClient;
16+
}

src/definitions/ExternalInterfaces.d.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/definitions/Projects.d.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/definitions/Projects.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { AxiosResponse } from "axios";
2+
3+
export interface ProjectModule {
4+
create: (
5+
project?: UserCreatedProject | ClientCreatedProject
6+
) => Promise<APIProjectObject>;
7+
getAll: () => Promise<string[]>;
8+
getAllJSON: () => Promise<APIProjectObject[]>;
9+
get: (id: string | number) => Promise<APIProjectObject>;
10+
delete: (id: string | number) => Promise<AxiosResponse>;
11+
}
12+
13+
/* CLIENT-LEVEL INTERFACES */
14+
15+
export interface UserCreatedProject {
16+
name?: string;
17+
parent_id?: string;
18+
color?: string;
19+
favorite?: boolean;
20+
}
21+
22+
export interface ClientCreatedProject extends UserCreatedProject {
23+
name: string;
24+
}
25+
26+
/* API-LEVEL INTERFACES */
27+
28+
export interface APIProjectObject {
29+
id: number;
30+
name: string;
31+
comment_count: number;
32+
order: number;
33+
color: number;
34+
shared: boolean;
35+
sync_id: number;
36+
favorite: boolean;
37+
parent_id?: number;
38+
team_inbox?: boolean;
39+
inbox_project?: boolean;
40+
url: string;
41+
}

0 commit comments

Comments
 (0)