add support for varargs to {{and}} and {{or}} helpers
authorDan Allen <dan@opendevise.com>
Sun, 26 Apr 2020 22:51:46 +0000 (16:51 -0600)
committerDan Allen <dan@opendevise.com>
Mon, 27 Apr 2020 08:29:28 +0000 (08:29 +0000)
src/helpers/and.js
src/helpers/or.js

index 2ad2237..5637b15 100644 (file)
@@ -1,3 +1,9 @@
 'use strict'
 
-module.exports = (a, b) => a && b
+module.exports = (...args) => {
+  const numArgs = args.length
+  if (numArgs === 3) return args[0] && args[1]
+  if (numArgs < 3) throw new Error('{{and}} helper expects at least 2 arguments')
+  args.pop()
+  return args.every((it) => it)
+}
index 354612b..eb53907 100644 (file)
@@ -1,3 +1,9 @@
 'use strict'
 
-module.exports = (a, b) => a || b
+module.exports = (...args) => {
+  const numArgs = args.length
+  if (numArgs === 3) return args[0] || args[1]
+  if (numArgs < 3) throw new Error('{{or}} helper expects at least 2 arguments')
+  args.pop()
+  return args.some((it) => it)
+}