├── .eslintrc.json ├── .gitignore ├── .prettierrc ├── .vscode ├── talk - albums component.code-snippets ├── talk - client tags.code-snippets ├── talk - component map set.code-snippets ├── talk - esbuild client config.code-snippets ├── talk - esbuild plugin return.code-snippets ├── talk - esbuild plugin.code-snippets ├── talk - esbuild server config.code-snippets ├── talk - hono.code-snippets ├── talk - html template.code-snippets ├── talk - import ReactServerDom.code-snippets ├── talk - import es-module-lexer.code-snippets ├── talk - import esbuild.code-snippets ├── talk - import react client.code-snippets ├── talk - import renderToString.code-snippets ├── talk - import serveStatic.code-snippets ├── talk - like button.code-snippets ├── talk - react client reference.code-snippets ├── talk - styledpage.code-snippets ├── talk - utils.code-snippets └── talk - webpack hack.code-snippets ├── README.md ├── app ├── Like.jsx ├── _client.jsx └── page.jsx ├── data ├── bjork-post.json ├── db.js ├── glass-animals-how-to-be.json └── lady-gaga-the-fame.json ├── package-lock.json ├── package.json ├── server.js ├── tailwind.config.cjs └── tsconfig.json /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "es2022": true 4 | }, 5 | "parserOptions": { 6 | "ecmaVersion": "latest", 7 | "sourceType": "module" 8 | }, 9 | "plugins": ["unicorn"], 10 | "extends": ["plugin:react/recommended", "plugin:react/jsx-runtime"], 11 | "root": true, 12 | "ignorePatterns": ["dist/"], 13 | "rules": { 14 | "unicorn/prefer-node-protocol": "error", 15 | "react/prop-types": "off" 16 | }, 17 | "settings": { 18 | "react": { 19 | "version": "detect" 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | build/ -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "overrides": [ 7 | { 8 | "files": ["README.md"], 9 | "options": { 10 | "useTabs": false, 11 | "tabWidth": 2 12 | } 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /.vscode/talk - albums component.code-snippets: -------------------------------------------------------------------------------- 1 | { 2 | "talk - albums component": { 3 | "scope": "", 4 | "prefix": "t:albumscomponent", 5 | "body": [ 6 | "import { Suspense } from 'react';\nimport { getAll } from '../data/db.js';\n\nasync function Albums() {\n const albums = await getAll();\n return (\n
{a.songs.length} songs
\n{a.songs.length} songs
\n\t\t\t\t\t{a.songs.length} songs
15 |