todoscan 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # todocli
2
2
 
3
+ ![npm](https://img.shields.io/npm/v/todoscan)
4
+ ![npm](https://img.shields.io/npm/l/todoscan)
5
+ ![npm](https://img.shields.io/npm/d18m/todoscan)
6
+
7
+
3
8
  A simple CLI tool that scans your codebase for TODO-style comments and optionally adds them as tasks to **Todoist**.
4
9
 
5
10
  Stop forgetting TODOs buried in your code. Turn them into real, actionable tasks.
@@ -21,15 +26,18 @@ Stop forgetting TODOs buried in your code. Turn them into real, actionable tasks
21
26
  ## Installation
22
27
 
23
28
  ### Run with npx (recommended)
29
+
24
30
  ```bash
25
31
  npx todoscan
26
32
  ```
27
33
 
28
-
29
34
  ### or install globaly
35
+
30
36
  ```bash
31
37
  npm install -g todoscan
32
38
  ```
39
+
33
40
  ### Run
41
+
34
42
  ```bash
35
43
  todoscan
package/dist/index.js CHANGED
@@ -8,6 +8,9 @@ const chalk_1 = __importDefault(require("chalk"));
8
8
  const prompts_1 = __importDefault(require("prompts"));
9
9
  const tasks_1 = require("./tasks");
10
10
  const findTodos_1 = require("./findTodos");
11
+ const saveVars_1 = require("./saveVars");
12
+ const projectConfig_1 = require("./projectConfig");
13
+ const todoist_api_typescript_1 = require("@doist/todoist-api-typescript");
11
14
  const asciiArt = `
12
15
  ________ __
13
16
  / | / |
@@ -23,23 +26,51 @@ $$$$$$$$/______ ____$$ | ______
23
26
  console.clear();
24
27
  console.log(chalk_1.default.blue(asciiArt));
25
28
  async function mainMenu() {
29
+ const env = await saveVars_1.SaveVars.getInstance();
30
+ const projectConfig = new projectConfig_1.ProjectConfig(process.cwd());
31
+ if (!projectConfig.projectId) {
32
+ const api = new todoist_api_typescript_1.TodoistApi(env.API_TOKEN_TASKIST);
33
+ const projects = await api.getProjects();
34
+ const choice = await (0, prompts_1.default)({
35
+ type: 'select',
36
+ name: 'value',
37
+ message: 'Select your project for this repo:',
38
+ choices: projects.results.map(p => ({ title: p.name, value: p.id }))
39
+ });
40
+ projectConfig.save(choice.value);
41
+ }
42
+ const choices = [
43
+ { title: 'Scan Todos', value: '1' },
44
+ { title: 'List Todos', value: '2' },
45
+ ];
46
+ if (projectConfig.projectId) {
47
+ choices.push({ title: 'Change Project', value: 'change_project' });
48
+ }
49
+ choices.push({ title: 'Clear', value: '3' }, { title: 'Exit', value: '4' });
26
50
  const option = await (0, prompts_1.default)({
27
51
  type: 'select',
28
52
  name: 'choice',
29
53
  message: 'Select Options (use arrowkeys to change, enter to confirm)',
30
- choices: [
31
- { title: 'Scan Todos', value: '1' },
32
- { title: 'Clear', value: '2' },
33
- { title: 'Exit', value: '3' },
34
- ],
54
+ choices,
35
55
  hint: '- Arrow keys to change. Return to submit',
36
56
  instructions: false
37
57
  });
58
+ if (option.choice === 'change_project') {
59
+ const api = new todoist_api_typescript_1.TodoistApi(env.API_TOKEN_TASKIST);
60
+ const projects = await api.getProjects();
61
+ const choice = await (0, prompts_1.default)({
62
+ type: 'select',
63
+ name: 'value',
64
+ message: 'Select your project for this repo:',
65
+ choices: projects.results.map(p => ({ title: p.name, value: p.id }))
66
+ });
67
+ projectConfig.save(choice.value);
68
+ }
38
69
  switch (option.choice) {
39
70
  case '1': {
40
71
  const todos = await (0, findTodos_1.findTodos)();
41
72
  todos.forEach(todo => {
42
- console.log(`→ ${todo.text}`);
73
+ console.log(`( ) ${todo.text}`);
43
74
  });
44
75
  const option = await (0, prompts_1.default)({
45
76
  type: 'select',
@@ -52,19 +83,27 @@ async function mainMenu() {
52
83
  instructions: false
53
84
  });
54
85
  if (option.addToTaskist) {
55
- todos.forEach(todo => {
56
- (0, tasks_1.addTask)("6frwfj63jpR3v4gR", todo.text, [todo.type]);
57
- });
86
+ for (const todo of todos) {
87
+ await (0, tasks_1.addTask)(projectConfig.projectId, todo.text, [todo.type]);
88
+ }
58
89
  }
59
90
  break;
60
91
  }
61
92
  case '2': {
93
+ const todos = await (0, tasks_1.getTasks)(projectConfig.projectId);
94
+ todos.forEach((todo) => {
95
+ console.log(`( ) ${todo.content}`);
96
+ });
97
+ console.log('\n\n');
98
+ break;
99
+ }
100
+ case '3': {
62
101
  console.clear();
63
102
  console.log(chalk_1.default.blue(asciiArt));
64
103
  await mainMenu();
65
104
  break;
66
105
  }
67
- case '3':
106
+ case '4':
68
107
  console.log(chalk_1.default.yellow('Goodbye!'));
69
108
  process.exit(0);
70
109
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,sDAA8B;AAC9B,mCAAkC;AAClC,2CAAwC;AAExC,MAAM,QAAQ,GAAG;;;;;;;;;;;CAWhB,CAAC;AAEF,OAAO,CAAC,KAAK,EAAE,CAAC;AAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAElC,KAAK,UAAU,QAAQ;IACnB,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAO,EAAC;QACzB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,4DAA4D;QACrE,OAAO,EAAE;YACL,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;YACnC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;QACD,IAAI,EAAE,0CAA0C;QAChD,YAAY,EAAE,KAAK;KACtB,CAAC,CAAC;IAEH,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,GAAG,CAAC,CAAC,CAAC;YACP,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAS,GAAE,CAAC;YAEhC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAO,EAAC;gBACzB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,gCAAgC;gBACzC,OAAO,EAAE;oBACL,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;oBAC9B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;iBACnC;gBACD,YAAY,EAAE,KAAK;aACtB,CAAC,CAAA;YAEF,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACjB,IAAA,eAAO,EAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBACvD,CAAC,CAAC,CAAC;YACP,CAAC;YAED,MAAM;QACV,CAAC;QAED,KAAK,GAAG,CAAC,CAAC,CAAC;YACP,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClC,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM;QACV,CAAC;QAED,KAAK,GAAG;YACJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,QAAQ,EAAE,CAAC;AACrB,CAAC;AAED,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class ProjectConfig {
2
+ private readonly FILE_NAME;
3
+ private readonly LOCATION;
4
+ projectId: string;
5
+ constructor(cwd: string);
6
+ save(projectId: string): void;
7
+ private addToGitignore;
8
+ }
9
+ //# sourceMappingURL=projectConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../src/projectConfig.ts"],"names":[],"mappings":"AAGA,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAE3B,SAAS,EAAE,MAAM,CAAM;gBAElB,GAAG,EAAE,MAAM;IAQhB,IAAI,CAAC,SAAS,EAAE,MAAM;IAU7B,OAAO,CAAC,cAAc;CAazB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectConfig = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ class ProjectConfig {
7
+ FILE_NAME = '.todoscan_project.json';
8
+ LOCATION;
9
+ projectId = '';
10
+ constructor(cwd) {
11
+ this.LOCATION = (0, path_1.join)(cwd, this.FILE_NAME);
12
+ if ((0, fs_1.existsSync)(this.LOCATION)) {
13
+ this.projectId = JSON.parse((0, fs_1.readFileSync)(this.LOCATION, 'utf-8')).projectId;
14
+ }
15
+ }
16
+ save(projectId) {
17
+ this.projectId = projectId;
18
+ (0, fs_1.writeFileSync)(this.LOCATION, JSON.stringify({ projectId }, null, 2), {
19
+ encoding: 'utf-8',
20
+ mode: 0o600
21
+ });
22
+ this.addToGitignore();
23
+ }
24
+ addToGitignore() {
25
+ const gitignorePath = (0, path_1.join)(process.cwd(), '.gitignore');
26
+ let gitignoreContent = '';
27
+ if ((0, fs_1.existsSync)(gitignorePath)) {
28
+ gitignoreContent = (0, fs_1.readFileSync)(gitignorePath, 'utf-8');
29
+ }
30
+ if (!gitignoreContent.split('\n').includes(this.FILE_NAME)) {
31
+ (0, fs_1.appendFileSync)(gitignorePath, `\n${this.FILE_NAME}\n`, { encoding: 'utf-8' });
32
+ console.log(`Added ${this.FILE_NAME} to .gitignore`);
33
+ }
34
+ }
35
+ }
36
+ exports.ProjectConfig = ProjectConfig;
37
+ //# sourceMappingURL=projectConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../src/projectConfig.ts"],"names":[],"mappings":";;;AAAA,2BAA6E;AAC7E,+BAA4B;AAE5B,MAAa,aAAa;IACL,SAAS,GAAG,wBAAwB,CAAC;IACrC,QAAQ,CAAS;IAE3B,SAAS,GAAW,EAAE,CAAC;IAE9B,YAAY,GAAW;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,SAAiB;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAA,kBAAa,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YACjE,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,cAAc;QAClB,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAE1B,IAAI,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC5B,gBAAgB,GAAG,IAAA,iBAAY,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,IAAA,mBAAc,EAAC,aAAa,EAAE,KAAK,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,gBAAgB,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;CACJ;AArCD,sCAqCC"}
@@ -0,0 +1,14 @@
1
+ export declare class SaveVars {
2
+ private readonly FILE_NAME;
3
+ private readonly LOCATION;
4
+ private static instance;
5
+ API_TOKEN_TASKIST: string;
6
+ private secrets;
7
+ private constructor();
8
+ static getInstance(): Promise<SaveVars>;
9
+ private loadFile;
10
+ private promptForToken;
11
+ load(varName: string, promptIfMissing?: boolean): Promise<string>;
12
+ private saveFile;
13
+ }
14
+ //# sourceMappingURL=saveVars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveVars.d.ts","sourceRoot":"","sources":["../src/saveVars.ts"],"names":[],"mappings":"AASA,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyB;IAEzC,iBAAiB,EAAE,MAAM,CAAM;IAEtC,OAAO,CAAC,OAAO,CAA8B;IAE7C,OAAO;WAMa,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAcpD,OAAO,CAAC,QAAQ;YAYF,cAAc;IAyBf,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBpF,OAAO,CAAC,QAAQ;CAUnB"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SaveVars = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = require("path");
9
+ const os_1 = __importDefault(require("os"));
10
+ const prompts_1 = __importDefault(require("prompts"));
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ class SaveVars {
13
+ FILE_NAME = '.todoscan_secrets.json';
14
+ LOCATION;
15
+ static instance = null;
16
+ API_TOKEN_TASKIST = "";
17
+ secrets = {};
18
+ constructor() {
19
+ this.LOCATION = (0, path_1.join)(os_1.default.homedir(), this.FILE_NAME);
20
+ this.loadFile();
21
+ this.API_TOKEN_TASKIST = this.secrets['api-token-taskist'] ?? "";
22
+ }
23
+ static async getInstance() {
24
+ if (!this.instance) {
25
+ this.instance = new SaveVars();
26
+ while (!this.instance.API_TOKEN_TASKIST) {
27
+ try {
28
+ await this.instance.promptForToken();
29
+ }
30
+ catch (err) {
31
+ console.log('Token is required to continue.');
32
+ }
33
+ }
34
+ }
35
+ return this.instance;
36
+ }
37
+ loadFile() {
38
+ if ((0, fs_1.existsSync)(this.LOCATION)) {
39
+ try {
40
+ const content = (0, fs_1.readFileSync)(this.LOCATION, 'utf-8');
41
+ this.secrets = JSON.parse(content);
42
+ }
43
+ catch (error) {
44
+ console.error('Failed to read secrets file:', error);
45
+ this.secrets = {};
46
+ }
47
+ }
48
+ }
49
+ async promptForToken() {
50
+ console.log("You need a Todoist API token to use this CLI.\n" +
51
+ "If you don't have one, you can create it here:\n" +
52
+ chalk_1.default.gray.bold.underline("https://app.todoist.com/app/settings/integrations/developer\n"));
53
+ const response = await (0, prompts_1.default)({
54
+ type: 'password',
55
+ name: 'value',
56
+ message: 'Enter your Todoist API token:',
57
+ validate: value => value.length > 10 ? true : 'Token should be atleast 10 characters long'
58
+ });
59
+ if (!response.value) {
60
+ throw new Error('No token provided. Login cancelled.');
61
+ }
62
+ this.secrets['api-token-taskist'] = response.value;
63
+ this.API_TOKEN_TASKIST = response.value;
64
+ this.saveFile();
65
+ console.log(chalk_1.default.green('√') + ' Token saved successfully!');
66
+ }
67
+ async load(varName, promptIfMissing = true) {
68
+ if (this.secrets[varName])
69
+ return this.secrets[varName];
70
+ if (promptIfMissing) {
71
+ const response = await (0, prompts_1.default)({
72
+ type: 'text',
73
+ name: 'value',
74
+ message: `Enter value for ${varName}:`
75
+ });
76
+ if (!response.value)
77
+ throw new Error(`No value provided for ${varName}`);
78
+ this.secrets[varName] = response.value;
79
+ this.saveFile();
80
+ return response.value;
81
+ }
82
+ return '';
83
+ }
84
+ saveFile() {
85
+ try {
86
+ (0, fs_1.writeFileSync)(this.LOCATION, JSON.stringify(this.secrets, null, 2), {
87
+ encoding: 'utf-8',
88
+ mode: 0o600
89
+ });
90
+ }
91
+ catch (error) {
92
+ console.error('Failed to save secrets file:', error);
93
+ }
94
+ }
95
+ }
96
+ exports.SaveVars = SaveVars;
97
+ //# sourceMappingURL=saveVars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveVars.js","sourceRoot":"","sources":["../src/saveVars.ts"],"names":[],"mappings":"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"}
package/dist/tasks.d.ts CHANGED
@@ -1,4 +1,13 @@
1
- export declare function getTasks(projectId: string): void;
1
+ import { TodoistApi } from '@doist/todoist-api-typescript';
2
+ export declare let api: TodoistApi | null;
3
+ export declare function resetApi(): void;
4
+ /**
5
+ * Get all tasks for a project
6
+ */
7
+ export declare function getTasks(projectId: string): Promise<any>;
8
+ /**
9
+ * Add a task to a project
10
+ */
2
11
  export declare function addTask(projectId: string, content: string, labels: string[], debug?: boolean): Promise<{
3
12
  isUncompletable: boolean;
4
13
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAQA,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,QAIzC;AAED,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,OAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBASkwE,CAAC;gBAA6C,CAAC;YAAyC,CAAC;;;;;;;;;GAAp8E"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,eAAO,IAAI,GAAG,EAAE,UAAU,GAAG,IAAW,CAAC;AAEzC,wBAAgB,QAAQ,SAEvB;AAgBD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,gBAS/C;AAED;;GAEG;AACH,wBAAsB,OAAO,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,UAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAa0sD,CAAC;gBAA6C,CAAC;YAAyC,CAAC;;;;;;;;;GADnzD"}
package/dist/tasks.js CHANGED
@@ -1,21 +1,57 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.api = void 0;
7
+ exports.resetApi = resetApi;
3
8
  exports.getTasks = getTasks;
4
9
  exports.addTask = addTask;
5
10
  const todoist_api_typescript_1 = require("@doist/todoist-api-typescript");
6
- const env_1 = require("./env");
7
- const env = env_1.Environment.getInstance({ quiet: true });
8
- const token = env.API_TOKEN_TASKIST;
9
- const api = new todoist_api_typescript_1.TodoistApi(token);
10
- function getTasks(projectId) {
11
- api.getTasks({ projectId })
12
- .then((task) => task.results.map((t, _) => console.log(_, t.content, t.labels)))
13
- .catch((error) => console.log(error));
11
+ const saveVars_1 = require("./saveVars");
12
+ const chalk_1 = __importDefault(require("chalk"));
13
+ exports.api = null;
14
+ function resetApi() {
15
+ exports.api = null;
14
16
  }
17
+ /**
18
+ * Ensure the API is initialized.
19
+ * Returns the initialized TodoistApi instance.
20
+ */
21
+ async function getApi() {
22
+ if (!exports.api) {
23
+ const env = await saveVars_1.SaveVars.getInstance();
24
+ if (!env.API_TOKEN_TASKIST) {
25
+ throw new Error('API token missing after initialization');
26
+ }
27
+ exports.api = new todoist_api_typescript_1.TodoistApi(env.API_TOKEN_TASKIST);
28
+ }
29
+ return exports.api;
30
+ }
31
+ /**
32
+ * Get all tasks for a project
33
+ */
34
+ async function getTasks(projectId) {
35
+ const api = await getApi();
36
+ try {
37
+ const tasks = await api.getTasks({ projectId });
38
+ return tasks.results;
39
+ }
40
+ catch (error) {
41
+ console.error('Error fetching tasks:', error);
42
+ throw error;
43
+ }
44
+ }
45
+ /**
46
+ * Add a task to a project
47
+ */
15
48
  async function addTask(projectId, content, labels, debug = false) {
49
+ const api = await getApi();
16
50
  try {
17
51
  const task = await api.addTask({ projectId, content, labels });
18
- debug && console.log('Task added:', task.content, 'Labels:', task.labels);
52
+ if (debug)
53
+ console.log('Task added:', task.content, 'Labels:', task.labels);
54
+ console.log(chalk_1.default.green('√') + ' Task added successfully');
19
55
  return task;
20
56
  }
21
57
  catch (error) {
package/dist/tasks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":";;AAQA,4BAIC;AAED,0BASC;AAvBD,0EAA0D;AAC1D,+BAAoC;AACpC,MAAM,GAAG,GAAG,iBAAW,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAErD,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC;AAEpC,MAAM,GAAG,GAAG,IAAI,mCAAU,CAAC,KAAK,CAAC,CAAA;AAEjC,SAAgB,QAAQ,CAAC,SAAiB;IACtC,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;SACtB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SAC/E,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC7C,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,SAAiB,EAAE,OAAe,EAAE,MAAgB,EAAE,QAAiB,KAAK;IACtG,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":";;;;;;AAMA,4BAEC;AAmBD,4BASC;AAKD,0BAgBC;AAzDD,0EAA2D;AAC3D,yCAAsC;AACtC,kDAA0B;AAEf,QAAA,GAAG,GAAsB,IAAI,CAAC;AAEzC,SAAgB,QAAQ;IACpB,WAAG,GAAG,IAAI,CAAC;AACf,CAAC;AACD;;;GAGG;AACH,KAAK,UAAU,MAAM;IACjB,IAAI,CAAC,WAAG,EAAE,CAAC;QACP,MAAM,GAAG,GAAG,MAAM,mBAAQ,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;QACD,WAAG,GAAG,IAAI,mCAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,WAAG,CAAC;AACf,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,QAAQ,CAAC,SAAiB;IAC5C,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC;QACD,MAAM,KAAK,GAAQ,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,OAAO,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,OAAO,CACzB,SAAiB,EACjB,OAAe,EACf,MAAgB,EAChB,KAAK,GAAG,KAAK;IAEb,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "todoscan",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Scan TODO comments in your code and push them to Todoist",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -43,11 +43,11 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@doist/todoist-api-typescript": "^6.3.0",
46
- "chalk": "^5.6.2",
46
+ "chalk": "^4.1.2",
47
47
  "dotenv": "^17.2.3",
48
48
  "ignore": "^7.0.5",
49
49
  "inquirer": "^13.2.2",
50
50
  "prompt": "^1.3.0",
51
51
  "prompts": "^2.4.2"
52
52
  }
53
- }
53
+ }
package/dist/env.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { DotenvConfigOptions } from 'dotenv';
2
- export declare class Environment {
3
- private static instance;
4
- readonly API_TOKEN_TASKIST: string;
5
- private constructor();
6
- static getInstance(options?: DotenvConfigOptions): Environment;
7
- static destroyInstance(): void;
8
- }
9
- //# sourceMappingURL=env.d.ts.map
package/dist/env.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAErD,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IAEjD,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAE1C,OAAO;WAYO,WAAW,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,WAAW;WAavD,eAAe;CAGhC"}
package/dist/env.js DELETED
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Environment = void 0;
4
- const dotenv_1 = require("dotenv");
5
- class Environment {
6
- static instance;
7
- API_TOKEN_TASKIST;
8
- constructor(options) {
9
- (0, dotenv_1.config)(options);
10
- const apiTokenTaskist = process.env.API_TOKEN_TASKIST;
11
- if (!apiTokenTaskist) {
12
- throw new Error("API_TOKEN_TASKIST is not set in environment variables");
13
- }
14
- this.API_TOKEN_TASKIST = apiTokenTaskist;
15
- }
16
- static getInstance(options) {
17
- if (!Environment.instance) {
18
- try {
19
- Environment.instance = new Environment(options);
20
- }
21
- catch (e) {
22
- throw new Error(e.message);
23
- }
24
- }
25
- return Environment.instance;
26
- }
27
- static destroyInstance() {
28
- Environment.instance = undefined;
29
- }
30
- }
31
- exports.Environment = Environment;
32
- //# sourceMappingURL=env.js.map
package/dist/env.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":";;;AAAA,mCAAqD;AAErD,MAAa,WAAW;IACZ,MAAM,CAAC,QAAQ,CAA0B;IAEjC,iBAAiB,CAAS;IAE1C,YAAoB,OAA6B;QAC7C,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;QAEhB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAEtD,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC7C,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,OAA6B;QACnD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QAGD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAC;IACrC,CAAC;CACJ;AAjCD,kCAiCC"}