MCPcopy Index your code
hub / github.com/callumalpass/tasknotes / applyTaskEditSubtaskChanges

Function applyTaskEditSubtaskChanges

src/modals/taskEditSubtasks.ts:66–114  ·  view source on GitHub ↗
(
	context: ApplyTaskEditSubtaskChangesContext<TSubtask, TParent>
)

Source from the content-addressed store, hash-verified

64}
65
66export async function applyTaskEditSubtaskChanges<
67 TSubtask extends TaskEditSubtaskPathLike,
68 TParent extends TaskEditSubtaskParentLike,
69>(
70 context: ApplyTaskEditSubtaskChangesContext<TSubtask, TParent>
71): Promise<TaskEditSubtaskChangeResult<TSubtask>> {
72 const plan = buildTaskEditSubtaskChangePlan(
73 context.initialSubtaskFiles,
74 context.selectedSubtaskFiles
75 );
76 const result: TaskEditSubtaskChangeResult<TSubtask> = {
77 nextInitialSubtaskFiles: [...context.selectedSubtaskFiles],
78 added: 0,
79 removed: 0,
80 skippedMissing: 0,
81 skippedExisting: 0,
82 errors: 0,
83 };
84
85 for (const file of plan.toRemove) {
86 try {
87 const removed = await removeTaskEditSubtaskRelation(context, file);
88 if (removed) {
89 result.removed += 1;
90 } else {
91 result.skippedMissing += 1;
92 }
93 } catch (error) {
94 result.errors += 1;
95 context.onRemoveError?.(error, file);
96 }
97 }
98
99 for (const file of plan.toAdd) {
100 try {
101 const added = await addTaskEditSubtaskRelation(context, file);
102 if (added) {
103 result.added += 1;
104 } else {
105 result.skippedExisting += 1;
106 }
107 } catch (error) {
108 result.errors += 1;
109 context.onAddError?.(error, file);
110 }
111 }
112
113 return result;
114}
115
116export function getTaskEditSubtaskProjectRemovalUpdate(
117 currentProjects: unknown,

Callers 2

applySubtaskChangesMethod · 0.90

Tested by

no test coverage detected