Handle long auto-complete suggests

Fixes #5028
This commit is contained in:
Nick O'Leary
2025-02-10 16:23:13 +00:00
parent 9694c8bdfa
commit 7d9e09f5a7
4 changed files with 56 additions and 19 deletions

View File

@@ -104,13 +104,25 @@ var api = module.exports = {
store = store || availableStores.default;
ctx.get(key,store,function(err, v) {
if (opts.keysOnly) {
const result = {}
if (Array.isArray(v)) {
resolve({ [store]: { format: `array[${v.length}]`}})
result.format = `array[${v.length}]`
} else if (typeof v === 'object') {
resolve({ [store]: { keys: Object.keys(v), format: 'Object' } })
result.keys = Object.keys(v).map(k => {
if (Array.isArray(v[k])) {
return { key: k, format: `array[${v[k].length}]`, length: v[k].length }
} else if (typeof v[k] === 'object') {
return { key: k, format: 'object' }
} else {
return { key: k }
}
})
result.format = 'object'
} else {
resolve({ [store]: { keys: [] }})
result.keys = []
}
resolve({ [store]: result })
return
}
var encoded = util.encodeObject({msg:v});
if (store !== availableStores.default) {
@@ -147,7 +159,7 @@ var api = module.exports = {
}
return
}
result[store] = { keys }
result[store] = { keys: keys.map(key => { return { key }}) }
c--;
if (c === 0) {
if (!errorReported) {