aboutsummaryrefslogtreecommitdiffstats
path: root/lib/init.client.moon
blob: d39143d23d7f090cd844eb1e6fddc65cf67113f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
export MODE, print, warn, relative, append, on_client
export window, document

window = js.global
{ :document, :console } = window

MODE = 'CLIENT'

deep_tostring = (tbl, space='') ->
  buf = space .. tostring tbl

  return buf unless 'table' == type tbl

  buf = buf .. ' {\n'
  for k,v in pairs tbl
    buf = buf .. "#{space} [#{k}]: #{deep_tostring v, space .. '  '}\n"
  buf = buf .. "#{space}}"
  buf

print = (...) ->
  contents = [deep_tostring v for v in *{ ... } ]
  console\log table.unpack contents

warn = (...) ->
  contents = [deep_tostring v for v in *{ ... } ]
  console\warn table.unpack contents

package.path = '/?.shared.moon.lua;/?.client.moon.lua;/?.moon.lua;/?/init.moon.lua;/?.lua;/?/init.lua'

-- relative imports
relative = do
  _require = require

  (base, sub) ->
    sub = 0 unless 'number' == type sub

    for i=1, sub
      base = base\match '^(.*)%.%w+$'

    (name, x) ->
      name = base .. name if '.' == name\sub 1, 1
      _require name

append = document.body\appendChild
on_client = (f, ...) -> f ...