MCPcopy Create free account
hub / github.com/stackgl/shader-school / loadedAnswers

Function loadedAnswers

index.js:43–111  ·  view source on GitHub ↗
(err)

Source from the content-addressed store, hash-verified

41 })
42
43 function loadedAnswers(err) {
44 if (err) throw err
45 var exNames = Object.keys(exercises)
46 var exLinks = exNames.map(function(k) { return exercises[k] })
47 var exSlugs = exLinks.map(function(k) { return exmap[k] })
48 var exFiles = exSlugs.map(function(link, i) {
49 var dir = path.resolve(root, link)
50
51 return fs.readdirSync(dir).map(function(name) {
52 return path.resolve(dir, name)
53 })
54 })
55
56 var exRoutes = exLinks.map(function(link, i) {
57 return require('./exercises/' + link + '/server.js')(exFiles[i])
58 })
59
60 var menu = beefy({
61 cwd: path.join(__dirname, 'menu')
62 , entries: ['index.js']
63 , quiet: false
64 , watchify: false
65 })
66
67 http.createServer(function(req, res) {
68 // Force the addition of a query string. This
69 // works around an issue in beefy until it gets fixed:
70 // https://github.com/stackgl/shader-school/issues/107
71 req.url = req.url.indexOf('?') === -1
72 ? req.url + '?'
73 : req.url
74
75 var uri = url.parse(req.url).pathname
76 var paths = uri.split('/').filter(Boolean)
77
78 if (uri === '/style.css') {
79 res.setHeader('content-type', 'text/css')
80 res.end(styles())
81 return
82 }
83
84 if (paths[0] === 'open') {
85 var exPath = exmap[paths[1]]
86 if (exPath) {
87 opener(path.join(root, exPath))
88 }
89 return res.end(closeWindow)
90 }
91
92 for (var i = 0; i < exLinks.length; i++) {
93 if (uri.indexOf(exLinks[i]) === 1) {
94 req.url = req.url
95 .replace(exLinks[i], '')
96 .replace(/\/+/g, '/')
97
98 return exRoutes[i](req, res)
99 }
100 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected