Sha256: 39d23f93cd02173916e02d2f76089ee03f6e1b4a3950cf94cf1ac94ceb663975

Contents?: true

Size: 1.59 KB

Versions: 4

Compression:

Stored size: 1.59 KB

Contents

const http = require('http')
const fs = require('fs')
const path = require('path')

process.on('uncaughtException', err => console.error('uncaughtException', err))
process.on('unhandledRejection', err => console.error('unhandledRejection', err))

const publicFolder = process.argv.length > 2 ? process.argv[2] : '.'
const port = process.argv.length > 3 ? process.argv[3] : 3000

const mediaTypes = {
    css: 'text/css',
    html: 'text/html',
    js: 'text/javascript'
  }

  const server = http.createServer(function(request, response) {
    console.log(request.method + ' ' + request.url)

    if (request.url == '/update') {
      response.statusCode = 200;
      response.setHeader('Access-Control-Allow-Origin', '*');
      response.setHeader('Content-Type', 'application/json');
      return response.end('{}');
    }
    const filepath = path.join(publicFolder, request.url)
    fs.readFile(filepath, function(err, data) {
      if (err) {
        response.statusCode = 404
        return response.end('File not found or you made an invalid request.')
      }

      let mediaType = 'text/html'
      const ext = path.extname(filepath)
      if (ext.length > 0 && mediaTypes.hasOwnProperty(ext.slice(1))) {
        mediaType = mediaTypes[ext.slice(1)]
      }

      response.setHeader('Content-Type', mediaType)
      response.end(data)
    })
  })

  server.on('clientError', function onClientError(err, socket) {
    console.log('clientError', err)
    socket.end('HTTP/1.1 400 Bad Request\r\n\r\n')
  })

  server.listen(port, '127.0.0.1', function() {
    console.log('👨‍🔧 Development server is online.')
  })

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
html-pipeline-task_list-0.1.0 test/server.js
html-pipeline-task_list-0.0.3 test/server.js
html-pipeline-task_list-0.0.2 test/server.js
html-pipeline-task_list-0.0.1 test/server.js