├── .npmrc
├── src
├── lib
│ └── index.ts
├── routes
│ └── +page.svelte
├── app.d.ts
└── app.html
├── static
└── favicon.png
├── .vscode
└── settings.json
├── vite.config.ts
├── .gitignore
├── .eslintignore
├── .prettierignore
├── .prettierrc
├── tsconfig.json
├── .eslintrc.cjs
├── svelte.config.js
├── LICENSE
├── package.json
├── README.md
└── .github
└── workflows
└── deploy.yml
/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 | resolution-mode=highest
3 |
--------------------------------------------------------------------------------
/src/lib/index.ts:
--------------------------------------------------------------------------------
1 | // place files you want to import through the `$lib` alias in this folder.
2 |
--------------------------------------------------------------------------------
/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/denoland/deno-sveltekit-template/main/static/favicon.png
--------------------------------------------------------------------------------
/src/routes/+page.svelte:
--------------------------------------------------------------------------------
1 |
Welcome to SvelteKit
2 |
3 | Visit kit.svelte.dev to read the
4 | documentation.
5 |
6 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "deno.enable": true,
3 | "deno.unstable": true,
4 | "editor.formatOnSave": true,
5 | "editor.defaultFormatter": "denoland.vscode-deno"
6 | }
7 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { sveltekit } from '@sveltejs/kit/vite';
2 | import { defineConfig } from 'vite';
3 |
4 | export default defineConfig({
5 | plugins: [sveltekit()]
6 | });
7 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 | vite.config.js.timestamp-*
10 | vite.config.ts.timestamp-*
11 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 |
10 | # Ignore files for PNPM, NPM and YARN
11 | pnpm-lock.yaml
12 | package-lock.json
13 | yarn.lock
14 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 |
10 | # Ignore files for PNPM, NPM and YARN
11 | pnpm-lock.yaml
12 | package-lock.json
13 | yarn.lock
14 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "useTabs": true,
3 | "singleQuote": true,
4 | "trailingComma": "none",
5 | "printWidth": 100,
6 | "plugins": ["prettier-plugin-svelte"],
7 | "pluginSearchDirs": ["."],
8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
9 | }
10 |
--------------------------------------------------------------------------------
/src/app.d.ts:
--------------------------------------------------------------------------------
1 | // See https://kit.svelte.dev/docs/types#app
2 | // for information about these interfaces
3 | declare global {
4 | namespace App {
5 | // interface Error {}
6 | // interface Locals {}
7 | // interface PageData {}
8 | // interface Platform {}
9 | }
10 | }
11 |
12 | export {};
13 |
--------------------------------------------------------------------------------
/src/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | %sveltekit.head%
8 |
9 |
10 | %sveltekit.body%
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./.svelte-kit/tsconfig.json",
3 | "compilerOptions": {
4 | "allowJs": true,
5 | "checkJs": true,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "resolveJsonModule": true,
9 | "skipLibCheck": true,
10 | "sourceMap": true,
11 | "strict": true
12 | }
13 | // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
14 | //
15 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
16 | // from the referenced tsconfig.json - TypeScript does not merge them in
17 | }
18 |
--------------------------------------------------------------------------------
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: [
4 | 'eslint:recommended',
5 | 'plugin:@typescript-eslint/recommended',
6 | 'plugin:svelte/recommended',
7 | 'prettier'
8 | ],
9 | parser: '@typescript-eslint/parser',
10 | plugins: ['@typescript-eslint'],
11 | parserOptions: {
12 | sourceType: 'module',
13 | ecmaVersion: 2020,
14 | extraFileExtensions: ['.svelte']
15 | },
16 | env: {
17 | browser: true,
18 | es2017: true,
19 | node: true
20 | },
21 | overrides: [
22 | {
23 | files: ['*.svelte'],
24 | parser: 'svelte-eslint-parser',
25 | parserOptions: {
26 | parser: '@typescript-eslint/parser'
27 | }
28 | }
29 | ]
30 | };
31 |
--------------------------------------------------------------------------------
/svelte.config.js:
--------------------------------------------------------------------------------
1 | import adapter from 'svelte-adapter-deno';
2 | import { vitePreprocess } from '@sveltejs/kit/vite';
3 |
4 | /** @type {import('@sveltejs/kit').Config} */
5 | const config = {
6 | // Consult https://kit.svelte.dev/docs/integrations#preprocessors
7 | // for more information about preprocessors
8 | preprocess: vitePreprocess(),
9 |
10 | kit: {
11 | // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
12 | // If your environment is not supported or you settled on a specific environment, switch out the adapter.
13 | // See https://kit.svelte.dev/docs/adapters for more information about adapters.
14 | adapter: adapter()
15 | }
16 | };
17 |
18 | export default config;
19 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2023 the Deno authors
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of
4 | this software and associated documentation files (the “Software”), to deal in
5 | the Software without restriction, including without limitation the rights to
6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7 | the Software, and to permit persons to whom the Software is furnished to do so,
8 | subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "deno-sveltekit-template",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "dev": "deno run -A --unstable npm:vite dev",
7 | "build": "vite build",
8 | "preview": "vite preview",
9 | "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
10 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
11 | "lint": "prettier --plugin-search-dir . --check . && eslint .",
12 | "format": "prettier --plugin-search-dir . --write ."
13 | },
14 | "devDependencies": {
15 | "@sveltejs/adapter-auto": "^2.0.0",
16 | "@sveltejs/kit": "^1.20.4",
17 | "@typescript-eslint/eslint-plugin": "^5.45.0",
18 | "@typescript-eslint/parser": "^5.45.0",
19 | "eslint": "^8.28.0",
20 | "eslint-config-prettier": "^8.5.0",
21 | "eslint-plugin-svelte": "^2.30.0",
22 | "prettier": "^2.8.0",
23 | "prettier-plugin-svelte": "^2.10.1",
24 | "svelte": "^4.0.5",
25 | "svelte-adapter-deno": "^0.9.0",
26 | "svelte-check": "^3.4.3",
27 | "tslib": "^2.4.1",
28 | "typescript": "^5.0.0",
29 | "vite": "^4.4.2"
30 | },
31 | "type": "module"
32 | }
33 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Deno SvelteKit Template
2 |
3 | This template application uses
4 | [SvelteKit](https://kit.svelte.dev/docs/introduction) and provides a starting
5 | point for using SvelteKit on [Deno Deploy](https://deno.com/deploy).
6 |
7 | ## Local development
8 |
9 | Begin by installing the dependencies for the project:
10 |
11 | ```bash
12 | npm install
13 | ```
14 |
15 | Start the development server on `http://localhost:3000`:
16 |
17 | ```bash
18 | npm run dev
19 | ```
20 |
21 | ## Run on Deno Deploy
22 |
23 | This repo contains a GitHub workflow configuration to automatically deploy your
24 | application when you push to the main branch.
25 |
26 | Before deploying for the first time, edit `.github/workflows/deploy.yml` and
27 | include your project ID near the bottom of this file.
28 |
29 | ### Previewing production build
30 |
31 | To preview the production version of the application, build the site with this
32 | command:
33 |
34 | ```bash
35 | npm run build
36 | ```
37 |
38 | Then, run the server:
39 |
40 | ```bash
41 | cd build
42 | deno run -A --unstable index.js
43 | ```
44 |
45 | Check out the [SvelteKit](https://kit.svelte.dev/docs/introduction) docs for
46 | more information.
47 |
48 | ## License
49 |
50 | MIT
51 |
--------------------------------------------------------------------------------
/.github/workflows/deploy.yml:
--------------------------------------------------------------------------------
1 | name: ci
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | pull_request:
8 | branches:
9 | - main
10 |
11 | jobs:
12 | deploy:
13 | name: deploy
14 | runs-on: ubuntu-latest
15 | permissions:
16 | id-token: write
17 | contents: read
18 |
19 | steps:
20 | - name: Clone repository
21 | uses: actions/checkout@v2
22 |
23 | - name: Install Node
24 | uses: actions/setup-node@v2
25 | with:
26 | node-version: 16
27 |
28 | - name: Cache pnpm modules
29 | uses: actions/cache@v2
30 | with:
31 | path: ~/.pnpm-store
32 | key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
33 | restore-keys: |
34 | ${{ runner.os }}-
35 |
36 | - name: Install pnpm and node_modules
37 | uses: pnpm/action-setup@v2
38 | with:
39 | version: latest
40 | run_install: true
41 |
42 | - name: Build site
43 | run: pnpm build
44 |
45 | - name: Deploy to Deno Deploy
46 | uses: denoland/deployctl@v1
47 | with:
48 | project: # Replace with your project name
49 | entrypoint: 'build/index.js'
--------------------------------------------------------------------------------