Skip to content

Commit fbeb11c

Browse files
committed
test
1 parent 820702b commit fbeb11c

File tree

1 file changed

+33
-69
lines changed

1 file changed

+33
-69
lines changed

components/ObjectSelector.vue

Lines changed: 33 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
const toggle_loading = useToggle(loading)
6868
6969
70-
function select_geode_object(object_map) {
70+
function select_geode_object(object_map) {
7171
const object_keys = Object.keys(object_map)
7272
if (!object_keys.length) {
7373
return
@@ -101,77 +101,41 @@ function select_geode_object(object_map) {
101101
return
102102
}
103103
104-
function select_geode_object(object_map) {
105-
const object_keys = Object.keys(object_map)
106-
if (!object_keys.length) {
107-
return null
108-
}
109-
const highest_load_score = Math.max(
110-
...object_keys.map((key) => object_map[key].is_loadable),
111-
)
112-
if (highest_load_score <= 0) {
113-
return null
114-
}
115-
const best_score_objects = object_keys.filter(
116-
(key) => object_map[key].is_loadable === highest_load_score,
117-
)
118-
if (best_score_objects.length === 1) {
119-
return best_score_objects[0]
120-
}
121-
const highest_priority = Math.max(
122-
...best_score_objects.map(
123-
(key) => object_map[key].object_priority ?? -Infinity,
124-
),
125-
)
126-
const best_priority_objects = best_score_objects.filter(
127-
(key) => object_map[key].object_priority === highest_priority,
128-
)
129-
if (highest_priority !== -Infinity && best_priority_objects.length === 1) {
130-
return best_priority_objects[0]
131-
}
132-
return null
133-
}
134104
135-
async function get_allowed_objects() {
136-
toggle_loading()
137-
allowed_objects.value = {}
138-
const promise_array = filenames.map((filename) => {
139-
const params = { filename, supported_feature }
140-
return api_fetch({ schema, params })
141-
})
142-
const responses = await Promise.all(promise_array)
143-
const allowed_objects_list = responses.map(
144-
(response) => response.data.value.allowed_objects,
145-
)
146-
const all_keys = [...new Set(allowed_objects_list.flatMap(Object.keys))]
147-
const common_keys = all_keys.filter((key) =>
148-
allowed_objects_list.every((obj) => key in obj),
149-
)
150-
const final_object = {}
151-
for (const key of common_keys) {
152-
const load_scores = allowed_objects_list.map(
153-
(obj) => obj[key].is_loadable,
154-
)
155-
const priorities = allowed_objects_list
156-
.map((obj) => obj[key].object_priority)
157-
.filter((p) => p !== undefined && p !== null)
158-
final_object[key] = { is_loadable: Math.min(...load_scores) }
159-
if (priorities.length) {
160-
final_object[key].object_priority = Math.max(...priorities)
161-
}
162-
}
163-
allowed_objects.value = final_object
164-
let already_selected = false
165-
const selected_object = select_geode_object(final_object)
166-
if (selected_object) {
167-
set_geode_object(selected_object)
168-
already_selected = true
169-
}
170-
if (!already_selected && Object.keys(final_object).length === 1) {
171-
set_geode_object(Object.keys(final_object)[0])
105+
async function get_allowed_objects() {
106+
toggle_loading()
107+
allowed_objects.value = {}
108+
const promise_array = filenames.map((filename) => {
109+
const params = { filename, supported_feature }
110+
return api_fetch({ schema, params })
111+
})
112+
const responses = await Promise.all(promise_array)
113+
const allowed_objects_list = responses.map(
114+
(response) => response.data.value.allowed_objects,
115+
)
116+
const all_keys = [...new Set(allowed_objects_list.flatMap(Object.keys))]
117+
const common_keys = all_keys.filter((key) =>
118+
allowed_objects_list.every((obj) => key in obj),
119+
)
120+
const final_object = {}
121+
for (const key of common_keys) {
122+
const load_scores = allowed_objects_list.map((obj) => obj[key].is_loadable)
123+
const priorities = allowed_objects_list
124+
.map((obj) => obj[key].object_priority)
125+
.filter((p) => p !== undefined && p !== null)
126+
final_object[key] = { is_loadable: Math.min(...load_scores) }
127+
if (priorities.length) {
128+
final_object[key].object_priority = Math.max(...priorities)
172129
}
173-
toggle_loading()
174130
}
131+
allowed_objects.value = final_object
132+
const selected_object = select_geode_object(final_object)
133+
if (selected_object) {
134+
set_geode_object(selected_object)
135+
}
136+
137+
toggle_loading()
138+
}
175139
176140
function set_geode_object(input_geode_object) {
177141
if (input_geode_object != "") {

0 commit comments

Comments
 (0)