UNPKG

@danielkalen/simplybind

Version:

Magically simple, framework-less one-way/two-way data binding for frontend/backend in ~5kb.

35 lines (23 loc) 965 B
isIterable = subject isnt window and checkIf.isIterable(subject) and not subject.nodeType sampleItem = if isIterable then subject[0] else subject if not sampleItem throwError('emptyList') if isIterable and checkIf.isElCollection(subject) else if @isDom = checkIf.isDom(sampleItem) if @property is 'checked' isDomRadio = sampleItem and checkIf.isDomRadio(sampleItem) isDomCheckbox = not isDomRadio and sampleItem and checkIf.isDomCheckbox(sampleItem) else if @property is 'value' @isDomInput = checkIf.isDomInput(sampleItem) if isIterable and not targetIncludes(@descriptor, 'multi') if subject.length is 1 subject = subject[0] else if (isDomRadio or isDomCheckbox) and not checkIf.domElsAreSame(subject) return throwWarning('mixedElList',3) else if isDomRadio or isDomCheckbox @isMultiChoice = true subject = [].slice.call(subject) else subject = subject[0] throwWarning('onlyOneDOMElement',3)