mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-15 12:20:40 -07:00
Merge branch 'object-for-loop' of https://github.com/aleclarson/liquid-node
This commit is contained in:
@@ -94,6 +94,15 @@ function isObject (value) {
|
||||
return value !== null && typeof value === 'object'
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks if value's prototype is Object or undefined.
|
||||
* @param {any} value The value to check.
|
||||
* @return {Boolean} Returns true if value is a plain object, else false.
|
||||
*/
|
||||
function isPlainObject(value) {
|
||||
return value && !value.constructor || value.constructor === Object
|
||||
}
|
||||
|
||||
/*
|
||||
* A function to create flexibly-numbered lists of integers,
|
||||
* handy for each and map loops. start, if omitted, defaults to 0; step defaults to 1.
|
||||
@@ -119,6 +128,7 @@ function range (start, stop, step) {
|
||||
exports.isString = isString
|
||||
exports.isArray = isArray
|
||||
exports.isObject = isObject
|
||||
exports.isPlainObject = isPlainObject
|
||||
exports.isError = isError
|
||||
|
||||
exports.range = range
|
||||
|
||||
+5
-2
@@ -1,6 +1,7 @@
|
||||
const Liquid = require('..')
|
||||
const lexical = Liquid.lexical
|
||||
const mapSeries = require('../src/util/promise.js').mapSeries
|
||||
const isPlainObject = require('../src/util/underscore.js').isPlainObject
|
||||
const RenderBreakError = Liquid.Types.RenderBreakError
|
||||
const assert = require('../src/util/assert.js')
|
||||
const re = new RegExp(`^(${lexical.identifier.source})\\s+in\\s+` +
|
||||
@@ -38,8 +39,10 @@ module.exports = function (liquid) {
|
||||
render: function (scope, hash) {
|
||||
var collection = Liquid.evalExp(this.collection, scope)
|
||||
|
||||
if (!Array.isArray(collection) ||
|
||||
(Array.isArray(collection) && collection.length === 0)) {
|
||||
if (isPlainObject(collection)) {
|
||||
collection = Object.keys(collection)
|
||||
}
|
||||
if (!Array.isArray(collection) || !collection.length) {
|
||||
return liquid.renderer.renderTemplates(this.elseTemplates, scope)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user