@fusion.dev/helix-templates 0.205.2 → 0.207.0
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.
- package/README.md +7 -1
- package/package.json +2 -1
- package/templates/angular/gitignore +8 -0
- package/templates/angular/package.json +2 -0
- package/templates/angular/src/app/overview.html +1 -1
- package/templates/angular/src/app/signup-form.ts +10 -1
- package/templates/angular/src/diagnostics.ts +3 -3
- package/templates/react-nextjs/app/diagnostics.ts +3 -3
- package/templates/react-nextjs/app/overview.tsx +1 -1
- package/templates/react-nextjs/app/signup-form.tsx +13 -2
- package/templates/react-nextjs/gitignore +10 -0
- package/templates/react-nextjs/package.json +2 -0
- package/templates/react-vite/gitignore +8 -0
- package/templates/react-vite/package.json +2 -0
- package/templates/react-vite/src/diagnostics.ts +3 -3
- package/templates/react-vite/src/overview.tsx +1 -1
- package/templates/react-vite/src/signup-form.tsx +13 -2
- package/templates/solid-vite/gitignore +8 -0
- package/templates/solid-vite/helix-solid.d.ts +9 -8
- package/templates/solid-vite/package.json +2 -0
- package/templates/solid-vite/src/diagnostics.ts +3 -3
- package/templates/solid-vite/src/overview.tsx +1 -1
- package/templates/svelte-vite/gitignore +8 -0
- package/templates/svelte-vite/package.json +2 -0
- package/templates/svelte-vite/src/Overview.svelte +1 -1
- package/templates/svelte-vite/src/diagnostics.ts +3 -3
- package/templates/vue-vite/gitignore +8 -0
- package/templates/vue-vite/package.json +2 -0
- package/templates/vue-vite/src/OverviewPage.vue +1 -1
- package/templates/vue-vite/src/diagnostics.ts +3 -3
- package/templates.json +1 -61
package/README.md
CHANGED
|
@@ -34,7 +34,9 @@ smoke:scaffold` builds every template and holds what each renders to React on
|
|
|
34
34
|
Vite's, in markup and in pictures, so a template that drifts fails CI.
|
|
35
35
|
|
|
36
36
|
Each one starts Helix diagnostics in development, checked against the lint data
|
|
37
|
-
of the Helix it installed
|
|
37
|
+
of the Helix it installed. A production build never loads them. Every build but
|
|
38
|
+
Angular's leaves them out, and Angular's writes them to a file of their own that
|
|
39
|
+
the page never requests.
|
|
38
40
|
|
|
39
41
|
**There is no build-free HTML template**, and that is a fact about the packages
|
|
40
42
|
rather than an omission. `@fusion.dev/helix`'s published entry re-exports bare
|
|
@@ -56,6 +58,10 @@ own name, and `HELIX_VERSION` becomes this package's version, which is the Helix
|
|
|
56
58
|
the templates were published with. The payloads sit under `templates/<id>/` in
|
|
57
59
|
this package.
|
|
58
60
|
|
|
61
|
+
Each template carries its ignore file as `gitignore`, because npm leaves a file
|
|
62
|
+
named `.gitignore` out of a published package. A scaffolder writes it into the
|
|
63
|
+
project as `.gitignore`.
|
|
64
|
+
|
|
59
65
|
**The named files are named rather than discovered.** Scanning every file for the
|
|
60
66
|
placeholder would rewrite a template that merely mentions it in prose, and a
|
|
61
67
|
rename that missed a file would ship rather than fail. The register is held to the
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion.dev/helix-templates",
|
|
3
3
|
"description": "Starter templates for Helix, as data. Read by `helix new` and by `npm create @fusion.dev/helix-app`.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.207.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"types": "./dist/index.d.ts",
|
|
18
18
|
"default": "./dist/index.js"
|
|
19
19
|
},
|
|
20
|
+
"./package.json": "./package.json",
|
|
20
21
|
"./templates.json": "./templates.json"
|
|
21
22
|
},
|
|
22
23
|
"files": [
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "ng build",
|
|
7
7
|
"dev": "ng serve",
|
|
8
|
+
"diagnostics": "helix diagnostics",
|
|
8
9
|
"ng": "ng",
|
|
9
10
|
"start": "ng serve"
|
|
10
11
|
},
|
|
@@ -22,6 +23,7 @@
|
|
|
22
23
|
"@angular/build": "^22.2.1",
|
|
23
24
|
"@angular/cli": "^22.2.1",
|
|
24
25
|
"@angular/compiler-cli": "^22.2.1",
|
|
26
|
+
"@fusion.dev/helix-cli": "^__HELIX_VERSION__",
|
|
25
27
|
"@fusion.dev/helix-diagnostics": "^__HELIX_VERSION__",
|
|
26
28
|
"typescript": "~6.0.3"
|
|
27
29
|
}
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
|
|
49
49
|
<!-- The footer is a row across the table: anything you slot goes at the
|
|
50
50
|
start, and the table's own pagination sits at the end. -->
|
|
51
|
-
<helix-text emphasis="
|
|
51
|
+
<helix-text emphasis="muted" slot="footer" variant="caption">
|
|
52
52
|
{{ members.length }} people
|
|
53
53
|
</helix-text>
|
|
54
54
|
</helix-data-table>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, CUSTOM_ELEMENTS_SCHEMA, signal } from '@angular/core'
|
|
1
|
+
import { ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, inject, signal } from '@angular/core'
|
|
2
2
|
import { teams } from './data'
|
|
3
3
|
import { DOCS } from './docs'
|
|
4
4
|
|
|
@@ -31,6 +31,7 @@ export class SignupForm {
|
|
|
31
31
|
protected readonly teams = teams
|
|
32
32
|
protected readonly handle = signal('')
|
|
33
33
|
protected readonly messages = signal<readonly Message[]>([])
|
|
34
|
+
private readonly view = inject(ChangeDetectorRef)
|
|
34
35
|
|
|
35
36
|
/**
|
|
36
37
|
* The page takes the submit, so nothing navigates. Remove `preventDefault()`
|
|
@@ -51,12 +52,20 @@ export class SignupForm {
|
|
|
51
52
|
* with `preventDefault()`, then setting the value you want. Leaving `handle`
|
|
52
53
|
* as it was does not refuse anything.
|
|
53
54
|
*
|
|
55
|
+
* **`detectChanges()` puts the cleaned value on the element before the next
|
|
56
|
+
* key arrives.** Without zone.js, Angular renders a signal change in a later
|
|
57
|
+
* task. Keys sent at machine speed, by a barcode scanner, a password manager,
|
|
58
|
+
* or a test, arrive before that task, and each one lands in the text from
|
|
59
|
+
* before the update. Typed by Playwright with no delay, `Ada L!` left the
|
|
60
|
+
* handle empty without `detectChanges()`, and `adal` with it.
|
|
61
|
+
*
|
|
54
62
|
* No typings ship for Angular, so the event's detail is named here.
|
|
55
63
|
*/
|
|
56
64
|
protected takeHandle(event: Event): void {
|
|
57
65
|
event.preventDefault()
|
|
58
66
|
const { value } = (event as CustomEvent<{ value: string }>).detail
|
|
59
67
|
this.handle.set(value.toLowerCase().replaceAll(/[^a-z0-9-]/g, ''))
|
|
68
|
+
this.view.detectChanges()
|
|
60
69
|
}
|
|
61
70
|
|
|
62
71
|
protected dismiss(id: number): void {
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* **Checked against the Helix you installed**, from the lint data it ships, so
|
|
10
10
|
* nothing is loaded from the network.
|
|
11
11
|
*
|
|
12
|
-
* To print the findings in your terminal as well, run `
|
|
13
|
-
*
|
|
14
|
-
* `
|
|
12
|
+
* To print the findings in your terminal as well, run `npm run diagnostics`
|
|
13
|
+
* beside the dev server, and add `sinks: { relay: true }` below. The script
|
|
14
|
+
* runs `helix diagnostics` from `@fusion.dev/helix-cli`.
|
|
15
15
|
*/
|
|
16
16
|
import { initDiagnostics } from '@fusion.dev/helix-diagnostics'
|
|
17
17
|
import lint from '@fusion.dev/helix/lint.json'
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* **Checked against the Helix you installed**, from the lint data it ships, so
|
|
10
10
|
* nothing is loaded from the network.
|
|
11
11
|
*
|
|
12
|
-
* To print the findings in your terminal as well, run `
|
|
13
|
-
*
|
|
14
|
-
* `
|
|
12
|
+
* To print the findings in your terminal as well, run `npm run diagnostics`
|
|
13
|
+
* beside the dev server, and add `sinks: { relay: true }` below. The script
|
|
14
|
+
* runs `helix diagnostics` from `@fusion.dev/helix-cli`.
|
|
15
15
|
*/
|
|
16
16
|
import { initDiagnostics } from '@fusion.dev/helix-diagnostics'
|
|
17
17
|
import lint from '@fusion.dev/helix/lint.json'
|
|
@@ -86,7 +86,7 @@ export function Overview() {
|
|
|
86
86
|
|
|
87
87
|
{/* The footer is a row across the table: anything you slot goes at the
|
|
88
88
|
start, and the table's own pagination sits at the end. */}
|
|
89
|
-
<helix-text emphasis="
|
|
89
|
+
<helix-text emphasis="muted" slot="footer" variant="caption">
|
|
90
90
|
{members.length} people
|
|
91
91
|
</helix-text>
|
|
92
92
|
</helix-data-table>
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { type FormEvent, useState } from 'react'
|
|
11
|
+
import { flushSync } from 'react-dom'
|
|
11
12
|
import { teams } from './data'
|
|
12
13
|
import { DOCS } from './docs'
|
|
13
14
|
|
|
@@ -83,14 +84,24 @@ export function SignupForm() {
|
|
|
83
84
|
So taking the decision means refusing the change with
|
|
84
85
|
`preventDefault()`, then setting the value you want. Leaving
|
|
85
86
|
`setHandle` uncalled refuses nothing, and the element keeps the value
|
|
86
|
-
you meant to turn down.
|
|
87
|
+
you meant to turn down.
|
|
88
|
+
|
|
89
|
+
**`flushSync` puts the cleaned value on the element before the next
|
|
90
|
+
key arrives.** React renders a state update made in a custom
|
|
91
|
+
element's event in a later task. Keys sent at machine speed, by a
|
|
92
|
+
barcode scanner, a password manager, or a test, arrive before that
|
|
93
|
+
task, and each one lands in the text from before the update. Typed
|
|
94
|
+
by Playwright with no delay, `Ada L!` left the handle empty without
|
|
95
|
+
`flushSync`, and `adal` with it. */}
|
|
87
96
|
<helix-input
|
|
88
97
|
hint="Lowercase and hyphens, whatever you type."
|
|
89
98
|
label="Handle"
|
|
90
99
|
name="handle"
|
|
91
100
|
onhelix-before-change={(event) => {
|
|
92
101
|
event.preventDefault()
|
|
93
|
-
|
|
102
|
+
flushSync(() => {
|
|
103
|
+
setHandle(event.detail.value.toLowerCase().replaceAll(/[^a-z0-9-]/g, ''))
|
|
104
|
+
})
|
|
94
105
|
}}
|
|
95
106
|
value={handle}
|
|
96
107
|
/>
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "next build",
|
|
8
8
|
"dev": "next dev",
|
|
9
|
+
"diagnostics": "helix diagnostics",
|
|
9
10
|
"start": "next start"
|
|
10
11
|
},
|
|
11
12
|
"dependencies": {
|
|
@@ -16,6 +17,7 @@
|
|
|
16
17
|
"react-dom": "^19.2.0"
|
|
17
18
|
},
|
|
18
19
|
"devDependencies": {
|
|
20
|
+
"@fusion.dev/helix-cli": "^__HELIX_VERSION__",
|
|
19
21
|
"@fusion.dev/helix-diagnostics": "^__HELIX_VERSION__",
|
|
20
22
|
"@types/node": "^22.10.0",
|
|
21
23
|
"@types/react": "^19.2.0",
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "tsc && vite build",
|
|
8
8
|
"dev": "vite",
|
|
9
|
+
"diagnostics": "helix diagnostics",
|
|
9
10
|
"preview": "vite preview"
|
|
10
11
|
},
|
|
11
12
|
"dependencies": {
|
|
@@ -15,6 +16,7 @@
|
|
|
15
16
|
"react-dom": "^19.2.0"
|
|
16
17
|
},
|
|
17
18
|
"devDependencies": {
|
|
19
|
+
"@fusion.dev/helix-cli": "^__HELIX_VERSION__",
|
|
18
20
|
"@fusion.dev/helix-diagnostics": "^__HELIX_VERSION__",
|
|
19
21
|
"@types/react": "^19.2.0",
|
|
20
22
|
"@types/react-dom": "^19.2.0",
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* **Checked against the Helix you installed**, from the lint data it ships, so
|
|
10
10
|
* nothing is loaded from the network.
|
|
11
11
|
*
|
|
12
|
-
* To print the findings in your terminal as well, run `
|
|
13
|
-
*
|
|
14
|
-
* `
|
|
12
|
+
* To print the findings in your terminal as well, run `npm run diagnostics`
|
|
13
|
+
* beside the dev server, and add `sinks: { relay: true }` below. The script
|
|
14
|
+
* runs `helix diagnostics` from `@fusion.dev/helix-cli`.
|
|
15
15
|
*/
|
|
16
16
|
import { initDiagnostics } from '@fusion.dev/helix-diagnostics'
|
|
17
17
|
import lint from '@fusion.dev/helix/lint.json'
|
|
@@ -86,7 +86,7 @@ export function Overview() {
|
|
|
86
86
|
|
|
87
87
|
{/* The footer is a row across the table: anything you slot goes at the
|
|
88
88
|
start, and the table's own pagination sits at the end. */}
|
|
89
|
-
<helix-text emphasis="
|
|
89
|
+
<helix-text emphasis="muted" slot="footer" variant="caption">
|
|
90
90
|
{members.length} people
|
|
91
91
|
</helix-text>
|
|
92
92
|
</helix-data-table>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type FormEvent, useState } from 'react'
|
|
2
|
+
import { flushSync } from 'react-dom'
|
|
2
3
|
import { teams } from './data.js'
|
|
3
4
|
import { DOCS } from './docs.js'
|
|
4
5
|
|
|
@@ -74,14 +75,24 @@ export function SignupForm() {
|
|
|
74
75
|
So taking the decision means refusing the change with
|
|
75
76
|
`preventDefault()`, then setting the value you want. Leaving
|
|
76
77
|
`setHandle` uncalled refuses nothing, and the element keeps the value
|
|
77
|
-
you meant to turn down.
|
|
78
|
+
you meant to turn down.
|
|
79
|
+
|
|
80
|
+
**`flushSync` puts the cleaned value on the element before the next
|
|
81
|
+
key arrives.** React renders a state update made in a custom
|
|
82
|
+
element's event in a later task. Keys sent at machine speed, by a
|
|
83
|
+
barcode scanner, a password manager, or a test, arrive before that
|
|
84
|
+
task, and each one lands in the text from before the update. Typed
|
|
85
|
+
by Playwright with no delay, `Ada L!` left the handle empty without
|
|
86
|
+
`flushSync`, and `adal` with it. */}
|
|
78
87
|
<helix-input
|
|
79
88
|
hint="Lowercase and hyphens, whatever you type."
|
|
80
89
|
label="Handle"
|
|
81
90
|
name="handle"
|
|
82
91
|
onhelix-before-change={(event) => {
|
|
83
92
|
event.preventDefault()
|
|
84
|
-
|
|
93
|
+
flushSync(() => {
|
|
94
|
+
setHandle(event.detail.value.toLowerCase().replaceAll(/[^a-z0-9-]/g, ''))
|
|
95
|
+
})
|
|
85
96
|
}}
|
|
86
97
|
value={handle}
|
|
87
98
|
/>
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generated from the same manifest the API pages read, so a wrong attribute or
|
|
5
5
|
* a wrong event detail is a compile error. The Solid flavor of the typings adds
|
|
6
|
-
* `prop:`, `attr:`, and `on:` to every tag, beside the plain props
|
|
6
|
+
* `prop:`, `attr:`, and `on:` to every tag, beside the plain props, and types
|
|
7
|
+
* `style` as Solid types it on a `<div>`.
|
|
8
|
+
*
|
|
9
|
+
* **A side-effect import in a `.d.ts`.** The typings augment
|
|
10
|
+
* `solid-js/jsx-runtime`, which is the JSX `jsxImportSource: "solid-js"` reads.
|
|
11
|
+
* An entry in the `types` compiler array resolves as an ambient type package,
|
|
12
|
+
* outside a package's exports map, so naming the subpath there resolves to
|
|
13
|
+
* nothing and every Helix tag comes out untyped.
|
|
7
14
|
*/
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
declare module 'solid-js' {
|
|
11
|
-
namespace JSX {
|
|
12
|
-
interface IntrinsicElements extends CustomElementsSolidJs {}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
+
import '@fusion.dev/helix/jsx'
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "tsc && vite build",
|
|
8
8
|
"dev": "vite",
|
|
9
|
+
"diagnostics": "helix diagnostics",
|
|
9
10
|
"preview": "vite preview"
|
|
10
11
|
},
|
|
11
12
|
"dependencies": {
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
"solid-js": "^1.9.15"
|
|
15
16
|
},
|
|
16
17
|
"devDependencies": {
|
|
18
|
+
"@fusion.dev/helix-cli": "^__HELIX_VERSION__",
|
|
17
19
|
"@fusion.dev/helix-diagnostics": "^__HELIX_VERSION__",
|
|
18
20
|
"typescript": "^7.0.2",
|
|
19
21
|
"vite": "^8.3.0",
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* **Checked against the Helix you installed**, from the lint data it ships, so
|
|
10
10
|
* nothing is loaded from the network.
|
|
11
11
|
*
|
|
12
|
-
* To print the findings in your terminal as well, run `
|
|
13
|
-
*
|
|
14
|
-
* `
|
|
12
|
+
* To print the findings in your terminal as well, run `npm run diagnostics`
|
|
13
|
+
* beside the dev server, and add `sinks: { relay: true }` below. The script
|
|
14
|
+
* runs `helix diagnostics` from `@fusion.dev/helix-cli`.
|
|
15
15
|
*/
|
|
16
16
|
import { initDiagnostics } from '@fusion.dev/helix-diagnostics'
|
|
17
17
|
import lint from '@fusion.dev/helix/lint.json'
|
|
@@ -77,7 +77,7 @@ export function Overview() {
|
|
|
77
77
|
|
|
78
78
|
{/* The footer is a row across the table: anything you slot goes at the
|
|
79
79
|
start, and the table's own pagination sits at the end. */}
|
|
80
|
-
<helix-text emphasis="
|
|
80
|
+
<helix-text emphasis="muted" slot="footer" variant="caption">
|
|
81
81
|
{members.length} people
|
|
82
82
|
</helix-text>
|
|
83
83
|
</helix-data-table>
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "svelte-check && vite build",
|
|
8
8
|
"dev": "vite",
|
|
9
|
+
"diagnostics": "helix diagnostics",
|
|
9
10
|
"preview": "vite preview"
|
|
10
11
|
},
|
|
11
12
|
"dependencies": {
|
|
@@ -13,6 +14,7 @@
|
|
|
13
14
|
"@fusion.dev/helix-styles": "^__HELIX_VERSION__"
|
|
14
15
|
},
|
|
15
16
|
"devDependencies": {
|
|
17
|
+
"@fusion.dev/helix-cli": "^__HELIX_VERSION__",
|
|
16
18
|
"@fusion.dev/helix-diagnostics": "^__HELIX_VERSION__",
|
|
17
19
|
"@sveltejs/vite-plugin-svelte": "^7.3.1",
|
|
18
20
|
"svelte": "^5.57.1",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
|
|
66
66
|
<!-- The footer is a row across the table: anything you slot goes at the
|
|
67
67
|
start, and the table's own pagination sits at the end. -->
|
|
68
|
-
<helix-text emphasis="
|
|
68
|
+
<helix-text emphasis="muted" slot="footer" variant="caption">
|
|
69
69
|
{members.length} people
|
|
70
70
|
</helix-text>
|
|
71
71
|
</helix-data-table>
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* **Checked against the Helix you installed**, from the lint data it ships, so
|
|
10
10
|
* nothing is loaded from the network.
|
|
11
11
|
*
|
|
12
|
-
* To print the findings in your terminal as well, run `
|
|
13
|
-
*
|
|
14
|
-
* `
|
|
12
|
+
* To print the findings in your terminal as well, run `npm run diagnostics`
|
|
13
|
+
* beside the dev server, and add `sinks: { relay: true }` below. The script
|
|
14
|
+
* runs `helix diagnostics` from `@fusion.dev/helix-cli`.
|
|
15
15
|
*/
|
|
16
16
|
import { initDiagnostics } from '@fusion.dev/helix-diagnostics'
|
|
17
17
|
import lint from '@fusion.dev/helix/lint.json'
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "vue-tsc && vite build",
|
|
8
8
|
"dev": "vite",
|
|
9
|
+
"diagnostics": "helix diagnostics",
|
|
9
10
|
"preview": "vite preview"
|
|
10
11
|
},
|
|
11
12
|
"dependencies": {
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
"vue": "^3.5.43"
|
|
15
16
|
},
|
|
16
17
|
"devDependencies": {
|
|
18
|
+
"@fusion.dev/helix-cli": "^__HELIX_VERSION__",
|
|
17
19
|
"@fusion.dev/helix-diagnostics": "^__HELIX_VERSION__",
|
|
18
20
|
"@vitejs/plugin-vue": "^6.0.9",
|
|
19
21
|
"typescript": "~6.0.3",
|
|
@@ -64,7 +64,7 @@ import { DOCS } from './docs.ts'
|
|
|
64
64
|
|
|
65
65
|
<!-- The footer is a row across the table: anything you slot goes at the
|
|
66
66
|
start, and the table's own pagination sits at the end. -->
|
|
67
|
-
<helix-text emphasis="
|
|
67
|
+
<helix-text emphasis="muted" slot="footer" variant="caption">
|
|
68
68
|
{{ members.length }} people
|
|
69
69
|
</helix-text>
|
|
70
70
|
</helix-data-table>
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* **Checked against the Helix you installed**, from the lint data it ships, so
|
|
10
10
|
* nothing is loaded from the network.
|
|
11
11
|
*
|
|
12
|
-
* To print the findings in your terminal as well, run `
|
|
13
|
-
*
|
|
14
|
-
* `
|
|
12
|
+
* To print the findings in your terminal as well, run `npm run diagnostics`
|
|
13
|
+
* beside the dev server, and add `sinks: { relay: true }` below. The script
|
|
14
|
+
* runs `helix diagnostics` from `@fusion.dev/helix-cli`.
|
|
15
15
|
*/
|
|
16
16
|
import { initDiagnostics } from '@fusion.dev/helix-diagnostics'
|
|
17
17
|
import lint from '@fusion.dev/helix/lint.json'
|
package/templates.json
CHANGED
|
@@ -1,61 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"placeholder": "__PROJECT_NAME__",
|
|
3
|
-
"templates": [
|
|
4
|
-
{
|
|
5
|
-
"description": "React and TypeScript on Vite. The shortest path to a running app.",
|
|
6
|
-
"id": "react-vite",
|
|
7
|
-
"named": [
|
|
8
|
-
"index.html",
|
|
9
|
-
"package.json"
|
|
10
|
-
],
|
|
11
|
-
"title": "React (Vite)"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"description": "React and TypeScript on the Next.js App Router, with the three pages as real routes.",
|
|
15
|
-
"id": "react-nextjs",
|
|
16
|
-
"named": [
|
|
17
|
-
"app/layout.tsx",
|
|
18
|
-
"package.json"
|
|
19
|
-
],
|
|
20
|
-
"title": "React (Next.js)"
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"description": "Vue and TypeScript on Vite.",
|
|
24
|
-
"id": "vue-vite",
|
|
25
|
-
"named": [
|
|
26
|
-
"index.html",
|
|
27
|
-
"package.json"
|
|
28
|
-
],
|
|
29
|
-
"title": "Vue (Vite)"
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"description": "Angular and TypeScript on the Angular CLI.",
|
|
33
|
-
"id": "angular",
|
|
34
|
-
"named": [
|
|
35
|
-
"angular.json",
|
|
36
|
-
"package.json",
|
|
37
|
-
"src/index.html"
|
|
38
|
-
],
|
|
39
|
-
"title": "Angular"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"description": "Svelte and TypeScript on Vite.",
|
|
43
|
-
"id": "svelte-vite",
|
|
44
|
-
"named": [
|
|
45
|
-
"index.html",
|
|
46
|
-
"package.json"
|
|
47
|
-
],
|
|
48
|
-
"title": "Svelte (Vite)"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"description": "Solid and TypeScript on Vite.",
|
|
52
|
-
"id": "solid-vite",
|
|
53
|
-
"named": [
|
|
54
|
-
"index.html",
|
|
55
|
-
"package.json"
|
|
56
|
-
],
|
|
57
|
-
"title": "Solid (Vite)"
|
|
58
|
-
}
|
|
59
|
-
],
|
|
60
|
-
"version": "__HELIX_VERSION__"
|
|
61
|
-
}
|
|
1
|
+
{"placeholder":"__PROJECT_NAME__","templates":[{"description":"React and TypeScript on Vite. The shortest path to a running app.","id":"react-vite","named":["index.html","package.json"],"title":"React (Vite)"},{"description":"React and TypeScript on the Next.js App Router, with the three pages as real routes.","id":"react-nextjs","named":["app/layout.tsx","package.json"],"title":"React (Next.js)"},{"description":"Vue and TypeScript on Vite.","id":"vue-vite","named":["index.html","package.json"],"title":"Vue (Vite)"},{"description":"Angular and TypeScript on the Angular CLI.","id":"angular","named":["angular.json","package.json","src/index.html"],"title":"Angular"},{"description":"Svelte and TypeScript on Vite.","id":"svelte-vite","named":["index.html","package.json"],"title":"Svelte (Vite)"},{"description":"Solid and TypeScript on Vite.","id":"solid-vite","named":["index.html","package.json"],"title":"Solid (Vite)"}],"version":"__HELIX_VERSION__"}
|