a web component that shows the replies to a linked bsky post as comments.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor to a single top-level module

rekkice 3d66a5ea 7c0d93cf

+17 -12
+7 -2
package.json
··· 1 1 { 2 2 "name": "bsky_comments_widget", 3 - "private": true, 4 - "version": "0.0.0", 3 + "version": "1.0.0", 5 4 "type": "module", 5 + "main": "dist/bsky_comments_widget.umd.cjs", 6 + "module": "dist/bsky_comments_widget.js", 7 + "unpkg": "dist/bsky_comments_widget.umd.cjs", 8 + "exports": { 9 + "default": "./dist/bsky_comments_widget.umd.cjs" 10 + }, 6 11 "scripts": { 7 12 "dev": "vite", 8 13 "build": "vite build",
+1 -1
src/bsky_comments_widget.gleam
··· 2 2 import lustre/attribute 3 3 import lustre/element.{type Element} 4 4 import lustre/element/html 5 - import widget 5 + import bsky_comments_widget/widget 6 6 7 7 pub fn main() { 8 8 let app = lustre.simple(init, update, view)
+5
src/bsky_comments_widget/ffi.gleam
··· 1 + @external(javascript, "./ffi/datetime.mjs", "getReadableDate") 2 + pub fn get_readable_date(date: String) -> String 3 + 4 + @external(javascript, "./ffi/styles.mjs", "getCss") 5 + pub fn get_css() -> String
src/ffi/datetime.mjs src/bsky_comments_widget/ffi/datetime.mjs
-5
src/ffi/ffi.gleam
··· 1 - @external(javascript, "./datetime.mjs", "getReadableDate") 2 - pub fn get_readable_date(date: String) -> String 3 - 4 - @external(javascript, "./styles.mjs", "getCss") 5 - pub fn get_css() -> String
+1 -1
src/ffi/styles.mjs src/bsky_comments_widget/ffi/styles.mjs
··· 1 1 // hacky relative path, since the path is resolved from `build/`. could be improved? 2 - import widgetStyles from "../../../../../src/bsky_comments_widget.css?inline" 2 + import widgetStyles from "../../../../../../src/bsky_comments_widget.css?inline" 3 3 4 4 export function getCss() { 5 5 return widgetStyles
+1 -1
src/main.ts
··· 1 - import { register } from "./widget.gleam" 1 + import { register } from "./bsky_comments_widget/widget.gleam" 2 2 3 3 register()
src/models.gleam src/bsky_comments_widget/models.gleam
+2 -2
src/widget.gleam src/bsky_comments_widget/widget.gleam
··· 13 13 import lustre/element/html 14 14 import rsvp 15 15 16 - import ffi/ffi 17 - import models.{type Post} 16 + import bsky_comments_widget/ffi 17 + import bsky_comments_widget/models.{type Post} 18 18 19 19 type Msg { 20 20 ApiReturnedPost(Result(models.Post, rsvp.Error))