@jacobx1/of-sdk
Version:
Node interface for interacting with Omnifocus
67 lines • 2.74 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.completeTaskById = exports.deleteTaskById = exports.createTask = exports.getTasksForPerspective = exports.getTags = exports.getProjects = exports.getTasks = void 0;
const osa_1 = require("./osa");
const taskMapper_1 = __importDefault(require("../transform/taskMapper"));
const tagMapper_1 = __importDefault(require("../transform/tagMapper"));
const projectMapper_1 = __importDefault(require("../transform/projectMapper"));
function allItemsFilter() {
return true;
}
exports.getTasks = osa_1.omniFunc(function (deps, filter) {
return this.flattenedTasks
.filter((item) => item.id.objectClass.name === 'Task')
.filter(filter || deps.defaultFilter)
.map((item) => deps.taskMapper(item));
}, {
taskMapper: taskMapper_1.default,
defaultFilter: allItemsFilter,
});
exports.getProjects = osa_1.omniFunc(function (deps, filter) {
return this.flattenedProjects
.filter(filter || deps.defaultFilter)
.map(deps.projectMapper);
}, {
projectMapper: projectMapper_1.default,
defaultFilter: allItemsFilter,
});
exports.getTags = osa_1.omniFunc(function ([mapperMethod, defaultFilter], filter) {
return this.flattenedTags
.filter(filter || defaultFilter)
.map((item) => mapperMethod(item));
}, [tagMapper_1.default, allItemsFilter]);
exports.getTasksForPerspective = osa_1.omniFunc(function (deps, perspectiveName) {
const perspective = this.Perspective.all.find((item) => item.name === perspectiveName);
this.document.windows[0].perspective = perspective;
return this.document.windows[0].content
.nodesForObjects(this.flattenedTasks)
.filter((item) => item.object.id.objectClass.name === 'Task')
.map((item) => item.object)
.map(deps.taskMapper);
}, {
taskMapper: taskMapper_1.default,
});
exports.createTask = osa_1.omniFunc(function (deps, title, options = {}) {
const project = options.projectId
? this.Project.byIdentifier(options.projectId)
: undefined;
const task = new this.Task(title, project);
if (options.note) {
task.note = options.note;
}
return deps.taskMapper(task);
}, {
taskMapper: taskMapper_1.default,
});
exports.deleteTaskById = osa_1.omniFunc(function (deps, id) {
const task = this.Task.byIdentifier(id);
this.deleteObject(task);
}, {});
exports.completeTaskById = osa_1.omniFunc(function (deps, id) {
const task = this.Task.byIdentifier(id);
task.markComplete();
}, {});
//# sourceMappingURL=omnijs.js.map