All files / src/elm builder.coffee

100% Statements 7/7
100% Branches 0/0
100% Functions 3/3
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 181x 1x   1x 4261x     27241x             1x   1x  
E = require './expressions'
{ typeIsArray } = require '../util/util'
 
module.exports.build = build = (json) ->
  if not json? then return json
 
  if (typeIsArray json)
    return (build child for child in json)
 
  if json.type is "FunctionRef" then new E.FunctionRef(json)
  else if json.type is "Literal" then E.Literal.from(json)
  else if functionExists(json.type) then constructByName(json.type, json)
  else null
 
functionExists = (name) -> typeof E[name] is "function"
 
constructByName = (name, json) -> new E[name](json)