Skip to content

Commit a9d1035

Browse files
committed
fixup! discojs: simplify types
1 parent e3a55cb commit a9d1035

File tree

12 files changed

+40
-32
lines changed

12 files changed

+40
-32
lines changed

webapp/src/components/dataset_input/DataDescription.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@
4343
</template>
4444

4545
<script setup lang="ts">
46-
import type { Task } from '@epfml/discojs'
46+
import type { DataType, Task } from "@epfml/discojs";
4747
4848
import DropdownCard from '@/components/containers/DropdownCard.vue'
4949
5050
interface Props {
51-
task: Task
51+
task: Task<DataType>
5252
}
5353
const _ = defineProps<Props>()
5454
</script>

webapp/src/components/pages/TaskList.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ import { VueSpinner } from 'vue3-spinners';
8686
8787
import { List } from "immutable";
8888
89-
import type { Task } from '@epfml/discojs'
89+
import type { DataType, Task } from "@epfml/discojs";
9090
9191
import { useTasksStore } from '@/store/tasks'
9292
import { useTrainingStore } from '@/store/training'
@@ -106,7 +106,7 @@ const sortedTasks = computed(() => [...tasks.value.values()].sort(
106106
(task1, task2) => task1.displayInformation.taskTitle.localeCompare(task2.displayInformation.taskTitle)
107107
))
108108
109-
function getSchemeColor(task: Task): string {
109+
function getSchemeColor(task: Task<DataType>): string {
110110
switch (task.trainingInformation.scheme) {
111111
case 'decentralized':
112112
return 'bg-orange-200'
@@ -116,7 +116,7 @@ function getSchemeColor(task: Task): string {
116116
return 'bg-blue-200'
117117
}
118118
}
119-
function getDataTypeColor(task: Task): string {
119+
function getDataTypeColor(task: Task<DataType>): string {
120120
switch (task.trainingInformation.dataType) {
121121
case 'image':
122122
return 'bg-yellow-200'
@@ -127,7 +127,7 @@ function getDataTypeColor(task: Task): string {
127127
}
128128
}
129129
130-
const toTask = (task: Task): void => {
130+
function toTask(task: Task<DataType>): void {
131131
trainingStore.setTask(task.id)
132132
trainingStore.setStep(1)
133133
router.push(`/${task.id}`)

webapp/src/components/task_creation_form/TaskForm.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ import { Form as VeeForm, ErrorMessage } from 'vee-validate'
171171
import { List, Map } from 'immutable'
172172
import * as tf from '@tensorflow/tfjs'
173173
174-
import type { Task } from '@epfml/discojs'
174+
import type { DataType, Task } from "@epfml/discojs";
175175
import { models, pushTask } from '@epfml/discojs'
176176
177177
import type { FormDependency, FormField, FormSection } from '@/task_creation_form'
@@ -275,7 +275,7 @@ const onSubmit = async (rawTask: any): Promise<void> => {
275275
.map((section) => formatSection(section, rawTask))
276276
)
277277
.set('id', rawTask.taskID)
278-
.toObject() as unknown as Task
278+
.toObject() as unknown as Task<DataType>
279279
280280
let model
281281
try {

webapp/src/components/testing/TestSteps.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ const toaster = useToaster();
135135
const validationStore = useValidationStore();
136136
137137
const props = defineProps<{
138-
task: Task;
139-
model: Model;
138+
task: Task<D>;
139+
model: Model<D>;
140140
}>();
141141
142142
interface Tested {

webapp/src/components/testing/Testing.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ onActivated(() => {
224224
selectModel(validationStore.modelID, "test");
225225
});
226226
227-
async function downloadModel(task: Task): Promise<void> {
227+
async function downloadModel(task: Task<DataType>): Promise<void> {
228228
try {
229229
toaster.info("Downloading model...");
230230

webapp/src/components/testing/__tests__/Testing.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { useTasksStore } from "@/store/tasks";
1212

1313
import Testing from "../Testing.vue";
1414

15-
const TASK: Task = {
15+
const TASK: Task<"text"> = {
1616
id: "task",
1717
displayInformation: {
1818
taskTitle: "task title",

webapp/src/components/training/Description.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
<script lang="ts" setup>
5858
import { computed } from 'vue'
5959
60-
import type { Task } from '@epfml/discojs'
60+
import type { DataType, Task } from "@epfml/discojs";
6161
6262
import type { FormDependency, FormField, FormSection } from '@/task_creation_form'
6363
import { trainingInformation, privacyParameters } from '@/task_creation_form'
@@ -66,7 +66,7 @@ import DropdownCard from '@/components/containers/DropdownCard.vue'
6666
import ModelIcon from '@/assets/svg/ModelIcon.vue'
6767
6868
interface Props {
69-
task: Task
69+
task: Task<DataType>
7070
}
7171
const props = defineProps<Props>()
7272

webapp/src/components/training/Finished.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
</div>
1919
</template>
2020

21-
<script setup lang="ts">
21+
<script setup lang="ts" generic="D extends DataType">
2222
import { List } from "immutable";
2323
import { ref, toRaw, watch } from "vue";
2424
import { useRouter } from "vue-router";
2525
26-
import type { Model, Task } from "@epfml/discojs";
26+
import type { DataType, Model, Task } from "@epfml/discojs";
2727
2828
import { useToaster } from "@/composables/toaster";
2929
import type { ModelID } from "@/store/models";
@@ -39,8 +39,8 @@ const router = useRouter();
3939
const toaster = useToaster();
4040
4141
const props = defineProps<{
42-
task: Task;
43-
model?: Model;
42+
task: Task<D>;
43+
model?: Model<D>;
4444
}>();
4545
4646
const saved = ref<ModelID>();

webapp/src/components/training/Trainer.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ const props = defineProps<{
150150
dataset?: Dataset<Raw[D]>;
151151
}>();
152152
const emit = defineEmits<{
153-
model: [Model];
153+
model: [Model<D>];
154154
}>();
155155
156156
const trainingGenerator =

webapp/src/components/training/Training.vue

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,14 @@
2929
import { computed, onMounted, ref, toRaw, watch } from "vue";
3030
import { useRouter, useRoute } from "vue-router";
3131
32-
import type { Dataset, DataType, Model, Raw, TaskID } from "@epfml/discojs";
32+
import type {
33+
Dataset,
34+
DataType,
35+
Model,
36+
Raw,
37+
Task,
38+
TaskID,
39+
} from "@epfml/discojs";
3340
3441
import { useTrainingStore } from "@/store/training";
3542
import { useTasksStore } from "@/store/tasks";
@@ -58,7 +65,7 @@ function setupTrainingStore() {
5865
}
5966
// Init the task once the taskStore has been loaded successfully
6067
// If it is not we redirect to the task list
61-
const task = computed(() => {
68+
const task = computed<Task<DataType> | undefined>(() => {
6269
console.log("training: recompute task");
6370
6471
if (tasksStore.status == "success") {
@@ -98,10 +105,6 @@ const unamedDataset = computed<Dataset<Raw[DataType]> | undefined>(() => {
98105
case "tabular":
99106
case "text":
100107
return dataset.value as Dataset<Raw["tabular" | "text"]>;
101-
default: {
102-
const _: never = task.value.trainingInformation;
103-
throw new Error("should never happen");
104-
}
105108
}
106109
});
107110
const trainedModel = ref<Model<DataType>>();

0 commit comments

Comments
 (0)