From fe4b02e8a141b794cad91c78a169d393627e5bf2 Mon Sep 17 00:00:00 2001 From: Jason Schwarzenberger Date: Fri, 27 Nov 2020 13:43:47 +1300 Subject: [PATCH] add svelte app. --- webapp/.gitignore | 5 + webapp/README.md | 152 + webapp/package.json | 27 + webapp/scripts/setupTypeScript.js | 307 ++ webapp/src/ambient.d.ts | 39 + webapp/src/client.js | 5 + webapp/src/components/Comment.svelte | 60 + webapp/src/components/Nav.svelte | 59 + webapp/src/components/StoryInfo.svelte | 28 + webapp/src/node_modules/images/successkid.jpg | Bin 0 -> 78652 bytes webapp/src/routes/[id].json.js | 9 + webapp/src/routes/[id].svelte | 111 + webapp/src/routes/_error.svelte | 40 + webapp/src/routes/_layout.svelte | 21 + webapp/src/routes/index.json.js | 9 + webapp/src/routes/index.svelte | 50 + webapp/src/server.js | 17 + webapp/src/service-worker.js | 86 + webapp/src/template.html | 33 + webapp/src/utils/logos.js | 11 + webapp/static/favicon.png | Bin 0 -> 3127 bytes webapp/static/global.css | 36 + webapp/static/logo-192.png | Bin 0 -> 4760 bytes webapp/static/logo-512.png | Bin 0 -> 13928 bytes webapp/static/manifest.json | 20 + webapp/webpack.config.js | 90 + webapp/yarn.lock | 2612 +++++++++++++++++ 27 files changed, 3827 insertions(+) create mode 100644 webapp/.gitignore create mode 100644 webapp/README.md create mode 100644 webapp/package.json create mode 100644 webapp/scripts/setupTypeScript.js create mode 100644 webapp/src/ambient.d.ts create mode 100644 webapp/src/client.js create mode 100644 webapp/src/components/Comment.svelte create mode 100644 webapp/src/components/Nav.svelte create mode 100644 webapp/src/components/StoryInfo.svelte create mode 100644 webapp/src/node_modules/images/successkid.jpg create mode 100644 webapp/src/routes/[id].json.js create mode 100644 webapp/src/routes/[id].svelte create mode 100644 webapp/src/routes/_error.svelte create mode 100644 webapp/src/routes/_layout.svelte create mode 100644 webapp/src/routes/index.json.js create mode 100644 webapp/src/routes/index.svelte create mode 100644 webapp/src/server.js create mode 100644 webapp/src/service-worker.js create mode 100644 webapp/src/template.html create mode 100644 webapp/src/utils/logos.js create mode 100644 webapp/static/favicon.png create mode 100644 webapp/static/global.css create mode 100644 webapp/static/logo-192.png create mode 100644 webapp/static/logo-512.png create mode 100644 webapp/static/manifest.json create mode 100644 webapp/webpack.config.js create mode 100644 webapp/yarn.lock diff --git a/webapp/.gitignore b/webapp/.gitignore new file mode 100644 index 0000000..f220e37 --- /dev/null +++ b/webapp/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +/node_modules/ +/src/node_modules/@sapper/ +yarn-error.log +/__sapper__/ diff --git a/webapp/README.md b/webapp/README.md new file mode 100644 index 0000000..8f52269 --- /dev/null +++ b/webapp/README.md @@ -0,0 +1,152 @@ +# sapper-template + +The default template for setting up a [Sapper](https://github.com/sveltejs/sapper) project. Can use either Rollup or webpack as bundler. + + +## Getting started + + +### Using `degit` + +To create a new Sapper project based on Rollup locally, run + +```bash +npx degit "sveltejs/sapper-template#rollup" my-app +``` + +For a webpack-based project, instead run + +```bash +npx degit "sveltejs/sapper-template#webpack" my-app +``` + +[`degit`](https://github.com/Rich-Harris/degit) is a scaffolding tool that lets you create a directory from a branch in a repository. + +Replace `my-app` with the path where you wish to create the project. + + +### Using GitHub templates + +Alternatively, you can create the new project as a GitHub repository using GitHub's template feature. + +Go to either [sapper-template-rollup](https://github.com/sveltejs/sapper-template-rollup) or [sapper-template-webpack](https://github.com/sveltejs/sapper-template-webpack) and click on "Use this template" to create a new project repository initialized by the template. + + +### Running the project + +Once you have created the project, install dependencies and run the project in development mode: + +```bash +cd my-app +npm install # or yarn +npm run dev +``` + +This will start the development server on [localhost:3000](http://localhost:3000). Open it and click around. + +You now have a fully functional Sapper project! To get started developing, consult [sapper.svelte.dev](https://sapper.svelte.dev). + +### Using TypeScript + +By default, the template uses plain JavaScript. If you wish to use TypeScript instead, you need some changes to the project: + + * Add `typescript` as well as typings as dependences in `package.json` + * Configure the bundler to use [`svelte-preprocess`](https://github.com/sveltejs/svelte-preprocess) and transpile the TypeScript code. + * Add a `tsconfig.json` file + * Update the project code to TypeScript + +The template comes with a script that will perform these changes for you by running + +```bash +node scripts/setupTypeScript.js +``` + +`@sapper` dependencies are resolved through `src/node_modules/@sapper`, which is created during the build. You therefore need to run or build the project once to avoid warnings about missing dependencies. + +The script does not support webpack at the moment. + +## Directory structure + +Sapper expects to find two directories in the root of your project — `src` and `static`. + + +### src + +The [src](src) directory contains the entry points for your app — `client.js`, `server.js` and (optionally) a `service-worker.js` — along with a `template.html` file and a `routes` directory. + + +#### src/routes + +This is the heart of your Sapper app. There are two kinds of routes — *pages*, and *server routes*. + +**Pages** are Svelte components written in `.svelte` files. When a user first visits the application, they will be served a server-rendered version of the route in question, plus some JavaScript that 'hydrates' the page and initialises a client-side router. From that point forward, navigating to other pages is handled entirely on the client for a fast, app-like feel. (Sapper will preload and cache the code for these subsequent pages, so that navigation is instantaneous.) + +**Server routes** are modules written in `.js` files, that export functions corresponding to HTTP methods. Each function receives Express `request` and `response` objects as arguments, plus a `next` function. This is useful for creating a JSON API, for example. + +There are three simple rules for naming the files that define your routes: + +* A file called `src/routes/about.svelte` corresponds to the `/about` route. A file called `src/routes/blog/[slug].svelte` corresponds to the `/blog/:slug` route, in which case `params.slug` is available to the route +* The file `src/routes/index.svelte` (or `src/routes/index.js`) corresponds to the root of your app. `src/routes/about/index.svelte` is treated the same as `src/routes/about.svelte`. +* Files and directories with a leading underscore do *not* create routes. This allows you to colocate helper modules and components with the routes that depend on them — for example you could have a file called `src/routes/_helpers/datetime.js` and it would *not* create a `/_helpers/datetime` route. + + +#### src/node_modules/images + +Images added to `src/node_modules/images` can be imported into your code using `import 'images/'`. They will be given a dynamically generated filename containing a hash, allowing for efficient caching and serving the images on a CDN. + +See [`index.svelte`](src/routes/index.svelte) for an example. + + +#### src/node_modules/@sapper + +This directory is managed by Sapper and generated when building. It contains all the code you import from `@sapper` modules. + + +### static + +The [static](static) directory contains static assets that should be served publicly. Files in this directory will be available directly under the root URL, e.g. an `image.jpg` will be available as `/image.jpg`. + +The default [service-worker.js](src/service-worker.js) will preload and cache these files, by retrieving a list of `files` from the generated manifest: + +```js +import { files } from '@sapper/service-worker'; +``` + +If you have static files you do not want to cache, you should exclude them from this list after importing it (and before passing it to `cache.addAll`). + +Static files are served using [sirv](https://github.com/lukeed/sirv). + + +## Bundler configuration + +Sapper uses Rollup or webpack to provide code-splitting and dynamic imports, as well as compiling your Svelte components. With webpack, it also provides hot module reloading. As long as you don't do anything daft, you can edit the configuration files to add whatever plugins you'd like. + + +## Production mode and deployment + +To start a production version of your app, run `npm run build && npm start`. This will disable live reloading, and activate the appropriate bundler plugins. + +You can deploy your application to any environment that supports Node 10 or above. As an example, to deploy to [Vercel Now](https://vercel.com) when using `sapper export`, run these commands: + +```bash +npm install -g vercel +vercel +``` + +If your app can't be exported to a static site, you can use the [now-sapper](https://github.com/thgh/now-sapper) builder. You can find instructions on how to do so in its [README](https://github.com/thgh/now-sapper#basic-usage). + + +## Using external components + +When using Svelte components installed from npm, such as [@sveltejs/svelte-virtual-list](https://github.com/sveltejs/svelte-virtual-list), Svelte needs the original component source (rather than any precompiled JavaScript that ships with the component). This allows the component to be rendered server-side, and also keeps your client-side app smaller. + +Because of that, it's essential that the bundler doesn't treat the package as an *external dependency*. You can either modify the `external` option under `server` in [rollup.config.js](rollup.config.js) or the `externals` option in [webpack.config.js](webpack.config.js), or simply install the package to `devDependencies` rather than `dependencies`, which will cause it to get bundled (and therefore compiled) with your app: + +```bash +npm install -D @sveltejs/svelte-virtual-list +``` + + +## Bugs and feedback + +Sapper is in early development, and may have the odd rough edge here and there. Please be vocal over on the [Sapper issue tracker](https://github.com/sveltejs/sapper/issues). diff --git a/webapp/package.json b/webapp/package.json new file mode 100644 index 0000000..1239717 --- /dev/null +++ b/webapp/package.json @@ -0,0 +1,27 @@ +{ + "name": "TODO", + "description": "TODO", + "version": "0.0.1", + "scripts": { + "dev": "sapper dev", + "build": "sapper build", + "export": "sapper export", + "start": "node __sapper__/build" + }, + "dependencies": { + "compression": "^1.7.1", + "date-fns": "^2.16.1", + "isomorphic-fetch": "^3.0.0", + "node-fetch": "^2.6.1", + "polka": "next", + "sirv": "^1.0.0" + }, + "devDependencies": { + "file-loader": "^6.0.0", + "sapper": "^0.28.0", + "svelte": "^3.17.3", + "svelte-loader": "^2.9.0", + "webpack": "^4.7.0", + "webpack-modules": "^1.0.0" + } +} diff --git a/webapp/scripts/setupTypeScript.js b/webapp/scripts/setupTypeScript.js new file mode 100644 index 0000000..1e714d7 --- /dev/null +++ b/webapp/scripts/setupTypeScript.js @@ -0,0 +1,307 @@ +/** + * Run this script to convert the project to TypeScript. This is only guaranteed to work + * on the unmodified default template; if you have done code changes you are likely need + * to touch up the generated project manually. + */ + +// @ts-check +const fs = require('fs'); +const path = require('path'); +const { argv } = require('process'); + +const projectRoot = argv[2] || path.join(__dirname, '..'); + +const isRollup = fs.existsSync(path.join(projectRoot, "rollup.config.js")); + +function warn(message) { + console.warn('Warning: ' + message); +} + +function replaceInFile(fileName, replacements) { + if (fs.existsSync(fileName)) { + let contents = fs.readFileSync(fileName, 'utf8'); + let hadUpdates = false; + + replacements.forEach(([from, to]) => { + const newContents = contents.replace(from, to); + + const isAlreadyApplied = typeof to !== 'string' || contents.includes(to); + + if (newContents !== contents) { + contents = newContents; + hadUpdates = true; + } else if (!isAlreadyApplied) { + warn(`Wanted to update "${from}" in ${fileName}, but did not find it.`); + } + }); + + if (hadUpdates) { + fs.writeFileSync(fileName, contents); + } else { + console.log(`${fileName} had already been updated.`); + } + } else { + warn(`Wanted to update ${fileName} but the file did not exist.`); + } +} + +function createFile(fileName, contents) { + if (fs.existsSync(fileName)) { + warn(`Wanted to create ${fileName}, but it already existed. Leaving existing file.`); + } else { + fs.writeFileSync(fileName, contents); + } +} + +function addDepsToPackageJson() { + const pkgJSONPath = path.join(projectRoot, 'package.json'); + const packageJSON = JSON.parse(fs.readFileSync(pkgJSONPath, 'utf8')); + packageJSON.devDependencies = Object.assign(packageJSON.devDependencies, { + ...(isRollup ? { '@rollup/plugin-typescript': '^6.0.0' } : { 'ts-loader': '^8.0.4' }), + '@tsconfig/svelte': '^1.0.10', + '@types/compression': '^1.7.0', + '@types/node': '^14.11.1', + '@types/polka': '^0.5.1', + 'svelte-check': '^1.0.46', + 'svelte-preprocess': '^4.3.0', + tslib: '^2.0.1', + typescript: '^4.0.3' + }); + + // Add script for checking + packageJSON.scripts = Object.assign(packageJSON.scripts, { + validate: 'svelte-check --ignore src/node_modules/@sapper' + }); + + // Write the package JSON + fs.writeFileSync(pkgJSONPath, JSON.stringify(packageJSON, null, ' ')); +} + +function changeJsExtensionToTs(dir) { + const elements = fs.readdirSync(dir, { withFileTypes: true }); + + for (let i = 0; i < elements.length; i++) { + if (elements[i].isDirectory()) { + changeJsExtensionToTs(path.join(dir, elements[i].name)); + } else if (elements[i].name.match(/^[^_]((?!json).)*js$/)) { + fs.renameSync(path.join(dir, elements[i].name), path.join(dir, elements[i].name).replace('.js', '.ts')); + } + } +} + +function updateSingleSvelteFile({ view, vars, contextModule }) { + replaceInFile(path.join(projectRoot, 'src', `${view}.svelte`), [ + [/(?:/gm, (m, attrs) => ``], + ...(vars ? vars.map(({ name, type }) => [`export let ${name};`, `export let ${name}: ${type};`]) : []), + ...(contextModule ? contextModule.map(({ js, ts }) => [js, ts]) : []) + ]); +} + +// Switch the *.svelte file to use TS +function updateSvelteFiles() { + [ + { + view: 'components/Nav', + vars: [{ name: 'segment', type: 'string' }] + }, + { + view: 'routes/_layout', + vars: [{ name: 'segment', type: 'string' }] + }, + { + view: 'routes/_error', + vars: [ + { name: 'status', type: 'number' }, + { name: 'error', type: 'Error' } + ] + }, + { + view: 'routes/blog/index', + vars: [{ name: 'posts', type: '{ slug: string; title: string, html: any }[]' }], + contextModule: [ + { + js: '.then(r => r.json())', + ts: '.then((r: { json: () => any; }) => r.json())' + }, + { + js: '.then(posts => {', + ts: '.then((posts: { slug: string; title: string, html: any }[]) => {' + } + ] + }, + { + view: 'routes/blog/[slug]', + vars: [{ name: 'post', type: '{ slug: string; title: string, html: any }' }] + } + ].forEach(updateSingleSvelteFile); +} + +function updateRollupConfig() { + // Edit rollup config + replaceInFile(path.join(projectRoot, 'rollup.config.js'), [ + // Edit imports + [ + /'rollup-plugin-terser';\n(?!import sveltePreprocess)/, + `'rollup-plugin-terser'; +import sveltePreprocess from 'svelte-preprocess'; +import typescript from '@rollup/plugin-typescript'; +` + ], + // Edit inputs + [ + /(?`, `self.addEventListener('activate', (event: ExtendableEvent) =>`], + [`self.addEventListener('install', event =>`, `self.addEventListener('install', (event: ExtendableEvent) =>`], + [`addEventListener('fetch', event =>`, `addEventListener('fetch', (event: FetchEvent) =>`], + ]); +} + +function createTsConfig() { + const tsconfig = `{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "lib": ["DOM", "ES2017", "WebWorker"] + }, + "include": ["src/**/*", "src/node_modules/**/*"], + "exclude": ["node_modules/*", "__sapper__/*", "static/*"] + }`; + + createFile(path.join(projectRoot, 'tsconfig.json'), tsconfig); +} + +// Adds the extension recommendation +function configureVsCode() { + const dir = path.join(projectRoot, '.vscode'); + + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + + createFile(path.join(projectRoot, '.vscode', 'extensions.json'), `{"recommendations": ["svelte.svelte-vscode"]}`); +} + +function deleteThisScript() { + fs.unlinkSync(path.join(__filename)); + + // Check for Mac's DS_store file, and if it's the only one left remove it + const remainingFiles = fs.readdirSync(path.join(__dirname)); + if (remainingFiles.length === 1 && remainingFiles[0] === '.DS_store') { + fs.unlinkSync(path.join(__dirname, '.DS_store')); + } + + // Check if the scripts folder is empty + if (fs.readdirSync(path.join(__dirname)).length === 0) { + // Remove the scripts folder + fs.rmdirSync(path.join(__dirname)); + } +} + +console.log(`Adding TypeScript with ${isRollup ? "Rollup" : "webpack" }...`); + +addDepsToPackageJson(); + +changeJsExtensionToTs(path.join(projectRoot, 'src')); + +updateSvelteFiles(); + +if (isRollup) { + updateRollupConfig(); +} else { + updateWebpackConfig(); +} + +updateServiceWorker(); + +createTsConfig(); + +configureVsCode(); + +// Delete this script, but not during testing +if (!argv[2]) { + deleteThisScript(); +} + +console.log('Converted to TypeScript.'); + +if (fs.existsSync(path.join(projectRoot, 'node_modules'))) { + console.log(` +Next: +1. run 'npm install' again to install TypeScript dependencies +2. run 'npm run build' for the @sapper imports in your project to work +`); +} diff --git a/webapp/src/ambient.d.ts b/webapp/src/ambient.d.ts new file mode 100644 index 0000000..ec71cae --- /dev/null +++ b/webapp/src/ambient.d.ts @@ -0,0 +1,39 @@ +/** + * These declarations tell TypeScript that we allow import of images, e.g. + * ``` + + + + ``` + */ +declare module "*.gif" { + const value: string; + export = value; +} + +declare module "*.jpg" { + const value: string; + export = value; +} + +declare module "*.jpeg" { + const value: string; + export = value; +} + +declare module "*.png" { + const value: string; + export = value; +} + +declare module "*.svg" { + const value: string; + export = value; +} + +declare module "*.webp" { + const value: string; + export = value; +} diff --git a/webapp/src/client.js b/webapp/src/client.js new file mode 100644 index 0000000..cec9172 --- /dev/null +++ b/webapp/src/client.js @@ -0,0 +1,5 @@ +import * as sapper from '@sapper/app'; + +sapper.start({ + target: document.querySelector('#sapper') +}); \ No newline at end of file diff --git a/webapp/src/components/Comment.svelte b/webapp/src/components/Comment.svelte new file mode 100644 index 0000000..bbed67e --- /dev/null +++ b/webapp/src/components/Comment.svelte @@ -0,0 +1,60 @@ + + + + +
+
+ {comment.author} + | + {dateString} + {#if comment.comments.length} + + {/if} +
+
+ {@html comment.text} +
+ {#if showComments && comment.comments.length} +
+ {#each comment.comments as child} + + {/each} +
+ {/if} +
diff --git a/webapp/src/components/Nav.svelte b/webapp/src/components/Nav.svelte new file mode 100644 index 0000000..cd31a7c --- /dev/null +++ b/webapp/src/components/Nav.svelte @@ -0,0 +1,59 @@ + + + + + diff --git a/webapp/src/components/StoryInfo.svelte b/webapp/src/components/StoryInfo.svelte new file mode 100644 index 0000000..253e37e --- /dev/null +++ b/webapp/src/components/StoryInfo.svelte @@ -0,0 +1,28 @@ + + + + + +{#if story.author && story.author_link} + by + {story.author} +{:else if story.author}by {story.author}{/if} +on +{story.source} +{#if story.score}• {story.score} points{/if} +{#if story.num_comments} + • + {story.num_comments} + comments +{/if} diff --git a/webapp/src/node_modules/images/successkid.jpg b/webapp/src/node_modules/images/successkid.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ad19cc9d99e73f69d5aac6da52c2510c137dad4 GIT binary patch literal 78652 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 Ipj9*f+05sZI{*Lx literal 0 HcmV?d00001 diff --git a/webapp/src/routes/[id].json.js b/webapp/src/routes/[id].json.js new file mode 100644 index 0000000..dd0bd52 --- /dev/null +++ b/webapp/src/routes/[id].json.js @@ -0,0 +1,9 @@ +import fetch from 'node-fetch'; + +export async function get(req, res) { + const response = await fetch(`http://localhost:33842/api/${req.params.id}`); + res.writeHead(200, { + 'Content-Type': 'application/json' + }); + res.end(await response.text()); +} \ No newline at end of file diff --git a/webapp/src/routes/[id].svelte b/webapp/src/routes/[id].svelte new file mode 100644 index 0000000..53b0985 --- /dev/null +++ b/webapp/src/routes/[id].svelte @@ -0,0 +1,111 @@ + + + + + + + + {story.title} + + +

{story.title}

+ + +
+ {@html story.text} +
+ +{#if hasComments} +
+

Comments

+ {#if related.length} +

+ Other discussions: + {#each related as r} + {#if r.num_comments} + {r.source} + {/if} + {/each} +

+ {/if} + {#if story.comments.length} +
+ {#each story.comments as comment} + + {/each} +
+ {/if} +{/if} diff --git a/webapp/src/routes/_error.svelte b/webapp/src/routes/_error.svelte new file mode 100644 index 0000000..320e587 --- /dev/null +++ b/webapp/src/routes/_error.svelte @@ -0,0 +1,40 @@ + + + + + + {status} + + +

{status}

+ +

{error.message}

+ +{#if dev && error.stack} +
{error.stack}
+{/if} diff --git a/webapp/src/routes/_layout.svelte b/webapp/src/routes/_layout.svelte new file mode 100644 index 0000000..72eb7ed --- /dev/null +++ b/webapp/src/routes/_layout.svelte @@ -0,0 +1,21 @@ + + + + +