create-qwik 0.0.8 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +20 -0
  2. package/create-qwik +106 -0
  3. package/index.js +2 -101
  4. package/package.json +5 -4
  5. package/starters/apps/starter/index.html +1 -0
  6. package/starters/apps/starter/package.json +7 -10
  7. package/starters/apps/starter/public/favicon.ico +0 -0
  8. package/starters/apps/starter/src/{index.server.tsx → entry.server.tsx} +4 -5
  9. package/starters/apps/starter/src/root.css +3 -0
  10. package/starters/apps/starter/src/root.tsx +62 -0
  11. package/starters/apps/starter/tsconfig.json +3 -3
  12. package/starters/apps/starter/vite.config.js +34 -0
  13. package/starters/apps/starter-builder/index.html +1 -0
  14. package/starters/apps/starter-builder/package.json +7 -10
  15. package/starters/apps/starter-builder/public/favicon.ico +0 -0
  16. package/starters/apps/starter-builder/src/{index.server.tsx → entry.server.tsx} +4 -8
  17. package/starters/apps/starter-builder/src/root.css +3 -0
  18. package/starters/apps/starter-builder/src/root.tsx +41 -0
  19. package/starters/apps/starter-builder/tsconfig.json +3 -3
  20. package/starters/apps/starter-builder/vite.config.js +34 -0
  21. package/starters/apps/starter-partytown/index.html +1 -0
  22. package/starters/apps/starter-partytown/package.json +8 -11
  23. package/starters/apps/starter-partytown/src/{index.server.tsx → entry.server.tsx} +6 -7
  24. package/starters/apps/starter-partytown/src/root.css +3 -0
  25. package/starters/apps/starter-partytown/src/{my-app.tsx → root.tsx} +12 -18
  26. package/starters/apps/starter-partytown/tsconfig.json +3 -3
  27. package/starters/apps/starter-partytown/vite.config.js +34 -0
  28. package/starters/apps/todo/index.html +1 -0
  29. package/starters/apps/todo/package.json +7 -11
  30. package/starters/apps/todo/public/favicon.ico +0 -0
  31. package/starters/apps/todo/src/{index.server.tsx → entry.server.tsx} +3 -4
  32. package/starters/apps/todo/src/root.css +3 -0
  33. package/starters/apps/todo/src/root.tsx +232 -0
  34. package/starters/apps/todo/src/state.ts +5 -7
  35. package/starters/apps/todo/tsconfig.json +2 -3
  36. package/starters/apps/todo/vite.config.js +34 -0
  37. package/starters/features/prettier/.prettierignore +29 -0
  38. package/starters/features/prettier/package.json +12 -0
  39. package/starters/features/tailwindcss/package.json +10 -0
  40. package/starters/features/tailwindcss/postcss.config.js +6 -0
  41. package/starters/features/tailwindcss/src/root.css +3 -0
  42. package/starters/features/tailwindcss/tailwind.config.js +7 -0
  43. package/starters/servers/cloudflare/package.json +7 -9
  44. package/starters/servers/cloudflare/{workers-site → server}/package.json +1 -1
  45. package/starters/servers/cloudflare/src/{index.cloudflare.tsx → entry.cloudflare.tsx} +11 -4
  46. package/starters/servers/cloudflare/wrangler.toml +2 -2
  47. package/starters/servers/express/package.json +1 -1
  48. package/starters/servers/express/server/index.js +4 -4
  49. package/starters/apps/starter/rollup.config.js +0 -37
  50. package/starters/apps/starter/src/my-app.tsx +0 -63
  51. package/starters/apps/starter-builder/rollup.config.js +0 -37
  52. package/starters/apps/starter-builder/src/my-app.tsx +0 -34
  53. package/starters/apps/starter-partytown/rollup.config.js +0 -37
  54. package/starters/apps/todo/rollup.config.js +0 -39
  55. package/starters/apps/todo/src/components.tsx +0 -225
  56. package/starters/servers/cloudflare/rollup.config.server.js +0 -29
@@ -0,0 +1,34 @@
1
+ import { defineConfig } from 'vite';
2
+ import { qwikRollup } from '@builder.io/qwik/optimizer';
3
+ import { writeFile, mkdir } from 'fs/promises';
4
+ import { dirname, resolve } from 'path';
5
+
6
+ export default defineConfig({
7
+ build: {
8
+ rollupOptions: {
9
+ output: {
10
+ chunkFileNames: 'q-[hash].js',
11
+ assetFileNames: 'q-[hash].[ext]',
12
+ },
13
+ },
14
+ },
15
+ ssr: {
16
+ noExternal: true,
17
+ },
18
+ plugins: [
19
+ qwikRollup({
20
+ srcDir: resolve('./src'),
21
+ entryStrategy: {
22
+ type: 'single',
23
+ },
24
+ symbolsOutput: (data) => {
25
+ outputJSON('./server/q-symbols.json', data);
26
+ },
27
+ }),
28
+ ],
29
+ });
30
+
31
+ async function outputJSON(path, data) {
32
+ await mkdir(dirname(path), { recursive: true });
33
+ await writeFile(path, JSON.stringify(data, null, 2));
34
+ }
@@ -0,0 +1,29 @@
1
+ **/*.log
2
+ **/.DS_Store
3
+ *.
4
+ .vscode/settings.json
5
+ .history
6
+ .yarn
7
+ bazel-*
8
+ bazel-bin
9
+ bazel-out
10
+ bazel-qwik
11
+ bazel-testlogs
12
+ dist
13
+ dist-dev
14
+ etc
15
+ external
16
+ node_modules
17
+ temp
18
+ tsc-out
19
+ tsdoc-metadata.json
20
+ integration/**/*.js
21
+ target
22
+ output
23
+ rollup.config.js
24
+ build
25
+ .cache
26
+ .vscode
27
+ .rollup.cache
28
+ dist
29
+ tsconfig.tsbuildinfo
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "qwik-project-name",
3
+ "version": "0.0.1",
4
+ "description": "The de facto standard in JS formatting",
5
+ "scripts": {
6
+ "fmt": "prettier --write .",
7
+ "fmt.check": "prettier --check ."
8
+ },
9
+ "devDependencies": {
10
+ "prettier": "2.3.0"
11
+ }
12
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "qwik-project-name",
3
+ "version": "0.0.1",
4
+ "description": "Utility-first CSS framework for rapidly building custom user interfaces",
5
+ "devDependencies": {
6
+ "autoprefixer": "10.4.2",
7
+ "postcss": "8.4.6",
8
+ "tailwindcss": "3.0.18"
9
+ }
10
+ }
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ };
@@ -0,0 +1,3 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
@@ -0,0 +1,7 @@
1
+ module.exports = {
2
+ content: ['./src/**/*.{js,ts,jsx,tsx}'],
3
+ theme: {
4
+ extend: {},
5
+ },
6
+ plugins: [],
7
+ };
@@ -3,17 +3,15 @@
3
3
  "description": "Cloudflare Workers (serverless)",
4
4
  "priority": -1,
5
5
  "scripts": {
6
- "build": "npm run clean && npm run build.client && npm run build.server",
7
- "build.client": "rollup -c",
8
- "build.server": "rollup -c rollup.config.server.js",
6
+ "build.server": "vite build --outDir server/build --ssr src/entry.cloudflare.tsx",
9
7
  "deploy": "wrangler publish",
10
- "start": "wrangler dev"
8
+ "deploy.preview": "wrangler preview",
9
+ "deploy.dev": "wrangler dev"
11
10
  },
12
11
  "devDependencies": {
13
- "@cloudflare/kv-asset-handler": "^0.2.0",
14
- "@cloudflare/workers-types": "^3.2.0",
15
- "@types/service-worker-mock": "^2.0.1",
16
- "@rollup/plugin-commonjs": "^21.0.1",
17
- "@rollup/plugin-json": "^4.1.0"
12
+ "@cloudflare/kv-asset-handler": "0.2.0",
13
+ "@cloudflare/workers-types": "3.2.0",
14
+ "@cloudflare/wrangler": "1.19.7",
15
+ "@types/service-worker-mock": "2.0.1"
18
16
  }
19
17
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "cloudflare-worker",
3
- "main": "build/index.js"
3
+ "main": "build/entry.js"
4
4
  }
@@ -1,6 +1,13 @@
1
- import { renderApp } from './index.server';
1
+ /* eslint-disable */
2
+
3
+ // @ts-ignore
4
+ import { render } from './entry.server';
5
+
6
+ // @ts-ignore
2
7
  import { getAssetFromKV } from '@cloudflare/kv-asset-handler';
3
- import symbols from '../server/build/q-symbols.json';
8
+
9
+ // @ts-ignore
10
+ import symbols from '../server/q-symbols.json';
4
11
 
5
12
  const CACHING = true;
6
13
 
@@ -30,14 +37,14 @@ async function handleQwik(event: any, request: Request) {
30
37
  }
31
38
  }
32
39
 
33
- const ssrResult = await renderApp({
40
+ const ssrResult = await render({
34
41
  url: new URL(request.url),
35
42
  symbols,
36
43
  });
37
44
 
38
45
  const response = new Response(ssrResult.html, {
39
46
  headers: {
40
- 'Content-Type': 'text/html',
47
+ 'Content-Type': 'text/html; charset=utf-8',
41
48
  'Cache-Control': `max-age=${60}`,
42
49
  },
43
50
  });
@@ -14,5 +14,5 @@ command = "npm run build"
14
14
  format = "service-worker"
15
15
 
16
16
  [site]
17
- bucket = "public" # directory with your static assets
18
- entry-point = "workers-site" # JS folder serving your assets
17
+ bucket = "dist" # directory with your static assets
18
+ entry-point = "server" # JS folder serving your assets
@@ -5,6 +5,6 @@
5
5
  "serve": "node server/index.js"
6
6
  },
7
7
  "devDependencies": {
8
- "express": "~4.17.1"
8
+ "express": "4.17.2"
9
9
  }
10
10
  }
@@ -1,15 +1,15 @@
1
1
  const express = require('express');
2
2
  const { join } = require('path');
3
3
  const { existsSync } = require('fs');
4
- const { renderApp } = require('./build/index.server.js');
5
- const symbols = require('./build/q-symbols.json');
4
+ const { render } = require('./build/entry.js');
5
+ const symbols = require('./q-symbols.json');
6
6
  const PORT = process.env.PORT || 8080;
7
7
 
8
8
  async function startServer() {
9
9
  async function handleQwik(req, res) {
10
- const result = await renderApp({
10
+ const result = await render({
11
11
  symbols,
12
- url: new URL(req.url),
12
+ url: new URL(`${req.protocol}://${req.hostname}${req.url}`),
13
13
  debug: true,
14
14
  });
15
15
  res.send(result.html);
@@ -1,37 +0,0 @@
1
- import { nodeResolve } from '@rollup/plugin-node-resolve';
2
- import { qwikRollup } from '@builder.io/qwik/optimizer';
3
- import { writeFile, mkdir } from "fs/promises";
4
- import { dirname } from "path";
5
-
6
- export default async function () {
7
- return {
8
- input: [
9
- 'src/index.server.tsx',
10
- 'src/my-app.tsx'
11
- ],
12
- plugins: [
13
- nodeResolve(),
14
- qwikRollup({
15
- symbolsOutput: (data) => {
16
- outputJSON('./server/build/q-symbols.json', data);
17
- },
18
- })
19
- ],
20
- output: [
21
- {
22
- chunkFileNames: 'q-[hash].js',
23
- dir: 'public/build',
24
- format: 'es',
25
- },
26
- {
27
- dir: 'server/build',
28
- format: 'cjs',
29
- },
30
- ],
31
- };
32
- }
33
-
34
- async function outputJSON(path, data) {
35
- await mkdir(dirname(path), {recursive: true});
36
- await writeFile(path, JSON.stringify(data, null, 2));
37
- }
@@ -1,63 +0,0 @@
1
- import { h } from '@builder.io/qwik';
2
- import { qComponent, qHook, useEvent } from '@builder.io/qwik';
3
-
4
- export const MyApp = qComponent<{}, { name: string }>({
5
- tagName: 'my-app', // optional
6
- onMount: qHook(() => ({ name: 'World' })),
7
- onRender: qHook((props, state) => {
8
- return (
9
- <div>
10
- <p style={{ 'text-align': 'center' }}>
11
- <a href="https://github.com/builderio/qwik">
12
- <img
13
- alt="Qwik Logo"
14
- width={400}
15
- src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F667ab6c2283d4c4d878fb9083aacc10f"
16
- />
17
- </a>
18
- </p>
19
- <p>Congratulations Qwik is working!</p>
20
-
21
- <p>Next steps:</p>
22
- <ol>
23
- <li>
24
- Open dev-tools network tab and notice that no JavaScript was downloaded to render this
25
- page. (Zero JavaScript no matter the size of your app.)
26
- </li>
27
- <li>
28
- Try interacting with this component by changing{' '}
29
- <input
30
- value={state.name}
31
- on:keyup={qHook<typeof MyApp>((props, state) => {
32
- const event = useEvent<KeyboardEvent>();
33
- const input = event.target as HTMLInputElement;
34
- state.name = input.value;
35
- })}
36
- ></input>
37
- .
38
- </li>
39
- <li>
40
- Observe that the binding changes: <code>Hello {state.name}!</code>
41
- </li>
42
- <li>
43
- Notice that Qwik automatically lazily-loaded and hydrated the component upon interaction
44
- without the developer having to code that behavior. (Lazy hydration is what gives even
45
- large apps instant on behavior.)
46
- </li>
47
- <li>
48
- Read the docs <a href="https://github.com/builderio/qwik">here</a>.
49
- </li>
50
- <li>Replace the content of this component with your code.</li>
51
- <li>Build amazing web-sites with unbeatable startup performance.</li>
52
- </ol>
53
- <hr />
54
- <p style={{ 'text-align': 'center' }}>
55
- Made with ❤️ by{' '}
56
- <a target="_blank" href="https://www.builder.io/">
57
- Builder.io
58
- </a>
59
- </p>
60
- </div>
61
- );
62
- }),
63
- });
@@ -1,37 +0,0 @@
1
- import { nodeResolve } from '@rollup/plugin-node-resolve';
2
- import { qwikRollup } from '@builder.io/qwik/optimizer';
3
- import { writeFile, mkdir } from "fs/promises";
4
- import { dirname } from "path";
5
-
6
- export default async function () {
7
- return {
8
- input: [
9
- 'src/index.server.tsx',
10
- 'src/my-app.tsx'
11
- ],
12
- plugins: [
13
- nodeResolve(),
14
- qwikRollup({
15
- symbolsOutput: (data) => {
16
- outputJSON('./server/build/q-symbols.json', data);
17
- },
18
- })
19
- ],
20
- output: [
21
- {
22
- chunkFileNames: 'q-[hash].js',
23
- dir: 'public/build',
24
- format: 'es',
25
- },
26
- {
27
- dir: 'server/build',
28
- format: 'cjs',
29
- },
30
- ],
31
- };
32
- }
33
-
34
- async function outputJSON(path, data) {
35
- await mkdir(dirname(path), {recursive: true});
36
- await writeFile(path, JSON.stringify(data, null, 2));
37
- }
@@ -1,34 +0,0 @@
1
- import { h, Fragment } from '@builder.io/qwik';
2
- import { qComponent, qHook } from '@builder.io/qwik';
3
-
4
- export const Header = qComponent<{}, { name: string }>({
5
- onRender: qHook(() => {
6
- return (
7
- <p style={{ 'text-align': 'center' }}>
8
- <a href="https://github.com/builderio/qwik">
9
- <img
10
- alt="Qwik Logo"
11
- width={400}
12
- src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F667ab6c2283d4c4d878fb9083aacc10f"
13
- />
14
- </a>
15
- </p>
16
- );
17
- }),
18
- });
19
-
20
- export const Footer = qComponent<{}, { name: string }>({
21
- onRender: qHook(() => {
22
- return (
23
- <>
24
- <hr />
25
- <p style={{ 'text-align': 'center' }}>
26
- Made with ❤️ by{' '}
27
- <a target="_blank" href="https://www.builder.io/">
28
- Builder.io
29
- </a>
30
- </p>
31
- </>
32
- );
33
- }),
34
- });
@@ -1,37 +0,0 @@
1
- import { nodeResolve } from '@rollup/plugin-node-resolve';
2
- import { qwikRollup } from '@builder.io/qwik/optimizer';
3
- import { writeFile, mkdir } from "fs/promises";
4
- import { dirname } from "path";
5
-
6
- export default async function () {
7
- return {
8
- input: [
9
- 'src/index.server.tsx',
10
- 'src/my-app.tsx'
11
- ],
12
- plugins: [
13
- nodeResolve(),
14
- qwikRollup({
15
- symbolsOutput: (data) => {
16
- outputJSON('./server/build/q-symbols.json', data);
17
- },
18
- })
19
- ],
20
- output: [
21
- {
22
- chunkFileNames: 'q-[hash].js',
23
- dir: 'public/build',
24
- format: 'es',
25
- },
26
- {
27
- dir: 'server/build',
28
- format: 'cjs',
29
- },
30
- ],
31
- };
32
- }
33
-
34
- async function outputJSON(path, data) {
35
- await mkdir(dirname(path), {recursive: true});
36
- await writeFile(path, JSON.stringify(data, null, 2));
37
- }
@@ -1,39 +0,0 @@
1
- import { nodeResolve } from '@rollup/plugin-node-resolve';
2
- import { qwikRollup } from '@builder.io/qwik/optimizer';
3
- import { terser } from "rollup-plugin-terser";
4
- import { writeFile, mkdir } from "fs/promises";
5
- import { dirname } from "path";
6
-
7
- export default async function () {
8
- return {
9
- input: [
10
- 'src/index.server.tsx',
11
- 'src/components.tsx'
12
- ],
13
- plugins: [
14
- nodeResolve(),
15
- qwikRollup({
16
- symbolsOutput: (data) => {
17
- outputJSON('./server/build/q-symbols.json', data);
18
- },
19
- }),
20
- terser(),
21
- ],
22
- output: [
23
- {
24
- chunkFileNames: 'q-[hash].js',
25
- dir: 'public/build',
26
- format: 'es',
27
- },
28
- {
29
- dir: 'server/build',
30
- format: 'cjs',
31
- },
32
- ],
33
- };
34
- }
35
-
36
- async function outputJSON(path, data) {
37
- await mkdir(dirname(path), {recursive: true});
38
- await writeFile(path, JSON.stringify(data, null, 2));
39
- }