3.2.1 • Published 1 year ago

task.json v3.2.1

Weekly downloads
9
License
AGPL-3.0
Repository
-
Last release
1 year ago

task.json

Version License

Typescript library for task.json

Installation

npm install task.json

Note: This package uses ESM.

Usage

import { Task, doTasks, mergeTaskJson } from "task.json";

let taskJson1: TaskJson[] = [];
let taskJson2: TaskJson[] = [];

const task: Task = {
  id: "fc18da07-9717-4199-8474-9bbc4c4c6cb5",
  text: "Hello, world!",
  modified: new Date().toISOString()
};

taskJson1.push(task);
taskJson1 = doTasks(taskJson1, ["fc18da07-9717-4199-8474-9bbc4c4c6cb5"]);
const taskJson3 = mergeTaskJson(taskJson1, taskJson2);

Exported Functions

NameDescription
priorityUrgencyCompute urgency based on priority
createdUrgencyCompute priority based on created date
dueUrgencyCompute priority based on due date
taskUrgencyCompute urgency based on all aspects
removeTasksRemove tasks by ids
eraseTasksErase removed tasks by ids permanently
doTasksFinish todo tasks by ids
undoTasksUndo done or removed tasks by ids
indexTaskJsonConvert TaskJson to an indexed map (from id to task)
classifyTaskJsonClassify TaskJson by status
mergeTaskJsonMerge multiple TaskJson arrays
compareMergedTaskJsonCompare merged TaskJson with the original one
getDepComponentGet a task's connected component in dependency graph
getDepChildrenGet a task's dependant children (including indirect ones)

All the functions return a new TaskJson array instead of mutating the original one. This enables functional programming style to process the TaskJson array.

Note: eraseTasks is a dangerous operation. It will permantly delete tasks and may break the merge procedure (used in synchronization). Make sure the erased tasks are not in other TaskJson arrays if you want to merge them.

License

All code licensed under AGPL-3.0. Full copyright notice:

Copyright (C) 2020-2023  DCsunset

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
3.2.1

1 year ago

3.2.0

1 year ago

3.1.1

1 year ago

3.1.0

1 year ago

3.0.1

1 year ago

3.0.0

1 year ago

2.8.0

2 years ago

2.7.0

3 years ago

2.6.1

3 years ago

2.6.0

3 years ago

2.5.0

3 years ago

2.5.1

3 years ago

2.4.0

3 years ago

2.3.0

3 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.1.1

3 years ago

2.1.0

3 years ago

2.0.1

3 years ago

1.4.0

3 years ago

2.0.0

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago