Skip to content

Instantly share code, notes, and snippets.

View mauricedb's full-sized avatar

Maurice de Beijer mauricedb

View GitHub Profile
@mauricedb
mauricedb / Subject under test
Last active December 7, 2023 14:46
Testing stateful React hooks
import { useState } from 'react';
export function useCounter(initial = 0) {
const [count, setCount] = useState(initial);
return [count, () => setCount(count + 1)];
}
@mauricedb
mauricedb / my-fetch.js
Created April 9, 2018 18:44
Local shortcut for HTTP request done before
const fs = require('fs');
const util = require('util');
const crypto = require('crypto');
const mkdrip = require('mkdirp');
const fetch = require('node-fetch');
const exists = util.promisify(fs.exists);
const readFile = util.promisify(fs.readFile);
module.exports = url => {
const fs = require("fs");
const path = require("path");
const router = require("express").Router();
const { renderToNodeStream } = require("react-dom/server");
const React = require("react");
const ReactApp = require("../build/static/ssr/main").default;
console.log(ReactApp)
const path = require("path");
const express = require("express");
const serveStatic = require("serve-static");
const reactApp = require("./react-app");
const PORT = process.env.PORT || 3001;
const app = express();
app.use(reactApp);
app.use(serveStatic(path.join(__dirname, "../build")));
{
"name": "server-side-rendering-with-create-react-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.1.1",
"react-dom": "^16.1.1",
"react-scripts": "1.0.17"
},
"scripts": {
const HtmlWebpackPlugin = require("html-webpack-plugin");
const ManifestPlugin = require("webpack-manifest-plugin");
const SWPrecacheWebpackPlugin = require("sw-precache-webpack-plugin");
const config = require("react-scripts/config/webpack.config.prod");
config.entry = "./src/index.ssr.js";
config.output.filename = "static/ssr/[name].js";
config.output.libraryTarget = "commonjs2";
@mauricedb
mauricedb / npm-install.ps1
Created November 21, 2017 09:52
Install eslint-config-prettier
npm install --save-dev eslint-config-prettier
@mauricedb
mauricedb / npm-start.ps1
Created November 21, 2017 09:50
Start development server
npm start
@mauricedb
mauricedb / create-app.ps1
Created November 21, 2017 09:49
Create applicatio
preact create default preact-workshop
@mauricedb
mauricedb / install.ps1
Created November 21, 2017 09:47
Install Preact CLI
npm install -g preact-cli