# Copyright (c) 2013 Maurizio Casimirri <maurizio.cas@gmail.com>
# (https://github.com/mcasimir)

# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:

# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

getDefaults = ->
  coffee = require('coffee-script')

  types:
    css:
      delimiters: ["/*=", "*/"]
      extensions: ['.css']
      
    coffeescript:
      delimiters: ["#" + "="]
      extensions: ['.coffee']
      
      to: 
        javascript: (content) ->
          try
            coffee.compile(content, bare:true)
          catch e
            # adapt coffeescript error to generic SyntaxError
            e.line    = (e.first_line or 0)   + 1
            e.column  = (e.first_column or 0) + 1
            throw e
          
          

    javascript:
      delimiters: ["//" + "="]
      extensions: ['.js']

      to: 
        javascript: (content) ->
          ";#{content};"
        coffeescript: (content) ->
          escaped = content.replace(/`/g, '\\`')
          "\`#{escaped}\`\n"          
        html: (content) ->
          "<script>\\\\<![CDATA[\n#{content}\n\\\\]]></script>"

    html:
      delimiters: ["<!--=", "-->"]
      extensions: ['.html']


#= if not building
module.exports = getDefaults
#= end