diff --git a/src/contact.ts b/src/contact.ts index c7abeddbd818be5d8ef5a3ddcdcd1fc2ca53ccdd..3f1ced07d4213231bd458197df0ba3718e6178a0 100644 --- a/src/contact.ts +++ b/src/contact.ts @@ -176,10 +176,10 @@ export class Contact implements Sayable { } log.verbose('Cotnact', 'findAll({ name: %s })', query.name) - const name = query.name + const nameFilter = query.name - if (!name) { - throw new Error('name not found') + if (!nameFilter) { + throw new Error('nameFilter not found') } /** @@ -188,10 +188,10 @@ export class Contact implements Sayable { */ let filterFunction: string - if (name instanceof RegExp) { - filterFunction = `c => ${name.toString()}.test(c)` - } else if (typeof name === 'string') { - filterFunction = `c => c === '${name}'` + if (nameFilter instanceof RegExp) { + filterFunction = `function (c) { return ${nameFilter.toString()}.test(c) }` + } else if (typeof nameFilter === 'string') { + filterFunction = `function (c) { return c === '${nameFilter}' }` } else { throw new Error('unsupport name type') } diff --git a/src/room.ts b/src/room.ts index bdb332bd7545b8a863f335a4647beb3bb91d7cd8..8d4236973ab37ad99333ce970a2b5222f9a0f523 100644 --- a/src/room.ts +++ b/src/room.ts @@ -399,18 +399,18 @@ export class Room extends EventEmitter implements Sayable { public static async findAll(query: RoomQueryFilter): Promise { log.verbose('Room', 'findAll({ topic: %s })', query.topic) - const topic = query.topic + const topicFilter = query.topic - if (!topic) { - throw new Error('topic not found') + if (!topicFilter) { + throw new Error('topicFilter not found') } let filterFunction: string - if (topic instanceof RegExp) { - filterFunction = `c => ${topic.toString()}.test(c)` - } else if (typeof topic === 'string') { - filterFunction = `c => c === '${topic}'` + if (topicFilter instanceof RegExp) { + filterFunction = `function (c) { return ${topicFilter.toString()}.test(c) }` + } else if (typeof topicFilter === 'string') { + filterFunction = `function (c) { return c === '${topicFilter}' }` } else { throw new Error('unsupport topic type') }