123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- 'use strict';
- const { createReadStream } = require('fs');
- const { join } = require('path');
- function routes(app, middleware, options) {
- app.get('/__webpack_dev_server__/live.bundle.js', (req, res) => {
- res.setHeader('Content-Type', 'application/javascript');
- createReadStream(
- join(__dirname, '..', '..', 'client', 'live.bundle.js')
- ).pipe(res);
- });
- app.get('/__webpack_dev_server__/sockjs.bundle.js', (req, res) => {
- res.setHeader('Content-Type', 'application/javascript');
- createReadStream(
- join(__dirname, '..', '..', 'client', 'sockjs.bundle.js')
- ).pipe(res);
- });
- app.get('/webpack-dev-server.js', (req, res) => {
- res.setHeader('Content-Type', 'application/javascript');
- createReadStream(
- join(__dirname, '..', '..', 'client', 'index.bundle.js')
- ).pipe(res);
- });
- app.get('/webpack-dev-server/*', (req, res) => {
- res.setHeader('Content-Type', 'text/html');
- createReadStream(join(__dirname, '..', '..', 'client', 'live.html')).pipe(
- res
- );
- });
- app.get('/webpack-dev-server', (req, res) => {
- res.setHeader('Content-Type', 'text/html');
- res.write(
- '<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body>'
- );
- const outputPath = middleware.getFilenameFromUrl(options.publicPath || '/');
- const filesystem = middleware.fileSystem;
- writeDirectory(options.publicPath || '/', outputPath);
- res.end('</body></html>');
- function writeDirectory(baseUrl, basePath) {
- const content = filesystem.readdirSync(basePath);
- res.write('<ul>');
- content.forEach((item) => {
- const p = `${basePath}/${item}`;
- if (filesystem.statSync(p).isFile()) {
- res.write('<li><a href="');
- res.write(baseUrl + item);
- res.write('">');
- res.write(item);
- res.write('</a></li>');
- if (/\.js$/.test(item)) {
- const html = item.substr(0, item.length - 3);
- res.write('<li><a href="');
- res.write(baseUrl + html);
- res.write('">');
- res.write(html);
- res.write('</a> (magic html for ');
- res.write(item);
- res.write(') (<a href="');
- res.write(
- baseUrl.replace(
- // eslint-disable-next-line
- /(^(https?:\/\/[^\/]+)?\/)/,
- '$1webpack-dev-server/'
- ) + html
- );
- res.write('">webpack-dev-server</a>)</li>');
- }
- } else {
- res.write('<li>');
- res.write(item);
- res.write('<br>');
- writeDirectory(`${baseUrl + item}/`, p);
- res.write('</li>');
- }
- });
- res.write('</ul>');
- }
- });
- }
- module.exports = routes;
|