Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

convert TS examples (deno, node, sw) to use the new hello-world.html format #488

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
251f139
Biome Lint/Format (#396)
delaneyj Dec 20, 2024
71ff8d4
Revert "Biome Lint/Format (#396)"
delaneyj Dec 20, 2024
6a12354
Merge branch 'develop'
bencroker Dec 23, 2024
4461ae0
PHP SDK 1.0.0-beta.4
bencroker Dec 24, 2024
048ddfd
Add `Stop Overcomplicating It` [deploy-site]
bencroker Dec 29, 2024
d2087ee
Update deploy-site.yml [deploy-site]
bencroker Dec 29, 2024
f0a2e27
Docs improvements [deploy-site]
bencroker Dec 29, 2024
c0db1e4
More tweaks [deploy-site]
bencroker Dec 29, 2024
2f57404
Merge branch 'develop'
bencroker Jan 2, 2025
ed45eb1
Merge branch 'develop'
bencroker Jan 2, 2025
8725ade
Merge branch 'develop'
bencroker Jan 2, 2025
d3fcd1c
Merge branch 'develop'
bencroker Jan 3, 2025
dc3ba52
Merge branch 'develop'
bencroker Jan 3, 2025
41853a5
Fix #446 [deploy-site]
bencroker Jan 3, 2025
da046cb
Merge branch 'develop'
bencroker Jan 3, 2025
3c3890e
Merge branch 'develop'
bencroker Jan 4, 2025
b1d5201
Merge branch 'develop'
bencroker Jan 4, 2025
a0cb16e
Add Datastar Expressions [deploy-site]
bencroker Jan 5, 2025
82c4a8f
Add clarification [deploy-site]
bencroker Jan 6, 2025
779946b
Fix typo [deploy-site]
bencroker Jan 6, 2025
1234d68
Tweaks to docs [deploy-site]
bencroker Jan 6, 2025
93af71b
Fixes #460 [deploy-site]
bencroker Jan 6, 2025
f3b4a9c
Add links to guide [deploy-site]
bencroker Jan 6, 2025
f0d692e
Improve nestable signals explanation [deploy-site]
bencroker Jan 8, 2025
769d722
Add `@clipboard` to docs [deploy-site]
bencroker Jan 8, 2025
a8ee0f8
Improve wording [deploy-site]
bencroker Jan 8, 2025
46d3d7f
Only send `Connection` header with HTTP/1.1
bencroker Jan 8, 2025
827e587
Fix readme
bencroker Jan 8, 2025
40fc16c
Add badges to readme
bencroker Jan 8, 2025
d438fe3
Add enterkeyhint to TODO demo [deploy-site]
bencroker Jan 9, 2025
7aa441b
Fixes link to SSE docs (#472)
kennethormandy Jan 10, 2025
9af64b6
Fix typos __outsite in docs (#476)
jmoppel Jan 11, 2025
2fb6436
First draft of renaming nest/ed to namespace/d (#477)
andersmurphy Jan 11, 2025
19971c8
Minor docs improvements [deploy-site]
bencroker Jan 11, 2025
c50e9e6
Tweak example [deploy-site]
bencroker Jan 11, 2025
320a8fd
Tweak SDK docs [deploy-site]
bencroker Jan 12, 2025
b31ec07
Remove Node and Python examples [deploy-site]
bencroker Jan 12, 2025
1f47ff1
Fix typo [deploy-site]
bencroker Jan 14, 2025
89b8561
Add signal prefix to code examples (#485) [deploy-site]
Regaez Jan 15, 2025
bd11fe4
add isomorphic Deno-service worker example
nickchomey Jan 15, 2025
f0c55c5
fix progress count
nickchomey Jan 15, 2025
e000300
remove old demo stuff
nickchomey Jan 15, 2025
024eb8c
change offline notice to use signals
nickchomey Jan 16, 2025
846b47f
add progress bar
nickchomey Jan 16, 2025
d5a1c1a
progress bar uses signals
nickchomey Jan 16, 2025
dda9e34
fixed progress signals
nickchomey Jan 16, 2025
84902c0
fix signals, add hono html
nickchomey Jan 16, 2025
8424b46
tidy up offline detector mechanism
nickchomey Jan 16, 2025
442fc35
remove built sw.js files. People can build themselves via deno run
nickchomey Jan 16, 2025
80f800a
add gitignore for build js files
nickchomey Jan 16, 2025
aa129d4
tidy up elements and css
nickchomey Jan 16, 2025
3b2c1f3
move css from inline to separate file
nickchomey Jan 16, 2025
fa22e8e
fix css
nickchomey Jan 16, 2025
2f7e7c7
Fixed the frontend final example in the getting_started guide (#494)
ichts Jan 17, 2025
57df240
Fixes #489
bencroker Jan 17, 2025
745b820
Fixes #492 [deploy-site]
bencroker Jan 17, 2025
645fd4e
switch progress bar to mergeFragment and tidy up. Also switch tostrin…
nickchomey Jan 18, 2025
2dd35da
switch to hono/tiny to shrink sw.js by 20kb/4kb gzip
nickchomey Jan 18, 2025
cf756d1
add esbuild minification for template literal content
nickchomey Jan 18, 2025
2d72e26
fix requesting sw.js instead of sw.min.js
nickchomey Jan 18, 2025
330f994
Fix typos in file upload example [deploy-site]
bencroker Jan 20, 2025
8e94c13
Fix fix [deploy-site]
bencroker Jan 20, 2025
e65d6bc
Merge branch 'develop'
bencroker Jan 21, 2025
2ac5577
Merge branch 'develop'
bencroker Jan 21, 2025
77e73bf
Merge branch 'develop'
bencroker Jan 21, 2025
76758f3
Fix sortable example [deploy-site]
bencroker Jan 21, 2025
b859ced
Improve polling example [deploy-site]
bencroker Jan 21, 2025
a021d5a
Bump PHP SDK version
bencroker Jan 21, 2025
6f66b04
Revert version number
bencroker Jan 21, 2025
96f4e37
Merge remote-tracking branch 'origin/develop' into isomorphic-deno-sw…
nickchomey Jan 22, 2025
361907d
broken sw commit
nickchomey Jan 22, 2025
754050b
remove template string minification in build step
nickchomey Jan 22, 2025
fc37130
fmt
nickchomey Jan 22, 2025
a911192
small fix
nickchomey Jan 22, 2025
bfa7c3d
fix htttp -> http in sdk reference (#512)
JLarky Jan 22, 2025
86b7b88
Add videos [deploy-site]
bencroker Jan 24, 2025
8e73df2
Tweak red [deploy-site]
bencroker Jan 24, 2025
3993454
Add SDKs to homepage [deploy-site]
bencroker Jan 24, 2025
7d5ae65
Fix typescript snippet [deploy-site]
Superpat Jan 24, 2025
8733049
Update README.md: cant -> can't (#538)
rofrol Jan 27, 2025
e6ed97a
Fix custom validity example [deploy-site]
bencroker Jan 28, 2025
e1ad51d
Fix bundler [deploy-site]
bencroker Jan 28, 2025
5c08d29
Add podcast icon [deploy-site]
bencroker Jan 29, 2025
34b1967
Merge remote-tracking branch 'origin/main' into isomorphic-deno-sw-ex…
nickchomey Jan 29, 2025
422e0ef
commit everything before changing over to common hello-world.html
nickchomey Jan 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/deploy-site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,4 @@ jobs:
flyctl deploy --local-only
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}

12 changes: 12 additions & 0 deletions build/consts.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,18 @@ var Consts = &ConstTemplateData{
Icon: "vscode-icons:file-type-php2",
SdkUrl: "https://github.com/starfederation/datastar/tree/main/sdk/php",
},
{
FileExtension: "python",
Name: "Python",
Icon: "vscode-icons:file-type-python",
SdkUrl: "https://github.com/starfederation/datastar/tree/main/sdk/python",
},
{
FileExtension: "typescript",
Name: "TypeScript",
Icon: "vscode-icons:file-type-typescript-official",
SdkUrl: "https://github.com/starfederation/datastar/tree/main/sdk/typescript",
},
{
FileExtension: "fs",
Name: "Dotnet",
Expand Down
2 changes: 1 addition & 1 deletion sdk/typescript/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Follow the links for more complete (and executable) examples

## Frameworks / Alternate runtimes

If you cant simply use the node / web versions, then you can extend the abstract
If you can't simply use the node / web versions, then you can extend the abstract
class in `./src/abstractServerSentEventGenerator.ts`. You will need to provide
implementations of the `constructor`, `readSignals`, `stream` and `send`
methods.
Expand Down
9 changes: 9 additions & 0 deletions sdk/typescript/deno.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

65 changes: 34 additions & 31 deletions sdk/typescript/examples/deno.ts
Original file line number Diff line number Diff line change
@@ -1,43 +1,46 @@
import { serve } from "https://deno.land/[email protected]/http/server.ts";
import { ServerSentEventGenerator } from "../src/web/serverSentEventGenerator.ts";

serve(async (req: Request) => {
const url = new URL(req.url);
Deno.serve({
port: 8000,
hostname: "localhost",
handler: async (req: Request) => {
const url = new URL(req.url);

if (url.pathname === "/") {
return new Response(
`<html><head><script type="module" src="https://cdn.jsdelivr.net/gh/starfederation/[email protected]/bundles/datastar.js"></script></head><body><div id="toMerge" data-signals-foo="'World'" data-on-load="@get('/merge')">Hello</div></body></html>`,
{
headers: { "Content-Type": "text/html" },
},
);
} else if (url.pathname.includes("/merge")) {
const reader = await ServerSentEventGenerator.readSignals(req);

if (url.pathname === "/") {
return new Response(
`<html><head><script type="module" src="https://cdn.jsdelivr.net/gh/starfederation/[email protected]/bundles/datastar.js"></script></head><body><div id="toMerge" data-signals-foo="'World'" data-on-load="@get('/merge')">Hello</div></body></html>`,
{
headers: { "Content-Type": "text/html" },
},
);
} else if (url.pathname.includes("/merge")) {
const reader = await ServerSentEventGenerator.readSignals(req);
if (!reader.success) {
console.error("Error while reading signals", reader.error);

if (!reader.success) {
console.error("Error while reading signals", reader.error);
return new Response(`Error while reading signals`, {
headers: { "Content-Type": "text/html" },
});
}

return new Response(`Error while reading signals`, {
headers: { "Content-Type": "text/html" },
});
}
if (!("foo" in reader.signals)) {
console.error("The foo signal is not present");

if (!("foo" in reader.signals)) {
console.error("The foo signal is not present");
return new Response("The foo signal is not present", {
headers: { "Content-Type": "text/html" },
});
}

return new Response("The foo signal is not present", {
headers: { "Content-Type": "text/html" },
return ServerSentEventGenerator.stream((stream) => {
stream.mergeFragments(
`<div id="toMerge">Hello ${reader.signals.foo}</div>`,
);
});
}

return ServerSentEventGenerator.stream((stream) => {
stream.mergeFragments(
`<div id="toMerge">Hello ${reader.signals.foo}</div>`,
);
return new Response(`Path not found: ${req.url}`, {
headers: { "Content-Type": "text/html" },
});
}

return new Response(`Path not found: ${req.url}`, {
headers: { "Content-Type": "text/html" },
});
},
});
Empty file.
27 changes: 27 additions & 0 deletions sdk/typescript/examples/isomorphic-service-worker/build.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import * as esbuild from "https://deno.land/x/esbuild/mod.js";
import { denoPlugins } from "jsr:@luca/esbuild-deno-loader";
const minify = Deno.env.get("MINIFY") === "true";
const outfile = minify
? "./public/service-worker.min.js"
: "./public/service-worker.js";

// Build with configuration based on MINIFY env var
await esbuild.build({
plugins: [...denoPlugins()],
write: true,
entryPoints: ["./service-worker.ts"],
outfile,
bundle: true,
minify,
format: "esm",
legalComments: "none",
platform: "browser",
conditions: ["worker", "browser"],
// Add TypeScript resolution
resolveExtensions: [".ts", ".js", ".mjs"],
loader: {
".ts": "ts",
},
});

esbuild.stop();
14 changes: 14 additions & 0 deletions sdk/typescript/examples/isomorphic-service-worker/deno.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"imports": {
"@hono/hono": "jsr:@hono/hono@^4.6.19",
"@luca/esbuild-deno-loader": "jsr:@luca/esbuild-deno-loader@^0.9.0"
},
"tasks": {
"build:sw": "deno run -A --unstable-sloppy-imports build.ts",
"build:sw:min": "MINIFY=true deno run -A --unstable-sloppy-imports build.ts",
"serve": "deno run -A --unstable-sloppy-imports deno.ts",
"start": "deno task build:sw & deno task serve",
"start:min": "deno task build:sw:min & MINIFY=true deno task serve"
},
"nodeModulesDir": "auto"
}
169 changes: 169 additions & 0 deletions sdk/typescript/examples/isomorphic-service-worker/deno.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading