This repository is a template for developers to create custom HTML elements for the core web3 framework. It includes a Go backend, an Angular custom element, and a full release cycle configuration.
-
Clone the repository:
git clone https://github.com/your-username/core-element-template.git
-
Install the dependencies:
cd core-element-template go mod tidy cd ui npm install
-
Run the development server:
go run ./cmd/demo-cli serve
This will start the Go backend and serve the Angular custom element.
To build the Angular custom element, run the following command:
cd ui
npm run buildThis will create a single JavaScript file in the dist directory that you can use in any HTML page.
To use the updater library in your Go project, you can use the UpdateService.
package main
import (
"fmt"
"log"
"github.com/snider/updater"
)
func main() {
config := updater.UpdateServiceConfig{
RepoURL: "https://github.com/owner/repo",
Channel: "stable",
CheckOnStartup: updater.CheckAndUpdateOnStartup,
}
updateService, err := updater.NewUpdateService(config)
if err != nil {
log.Fatalf("Failed to create update service: %v", err)
}
if err := updateService.Start(); err != nil {
fmt.Printf("Update check failed: %v\n", err)
}
}For updates from a generic HTTP server, the server should provide a latest.json file at the root of the RepoURL. The JSON file should have the following structure:
{
"version": "1.2.3",
"url": "https://your-server.com/path/to/release-asset"
}You can then configure the UpdateService as follows:
package main
import (
"fmt"
"log"
"github.com/snider/updater"
)
func main() {
config := updater.UpdateServiceConfig{
RepoURL: "https://your-server.com",
CheckOnStartup: updater.CheckAndUpdateOnStartup,
}
updateService, err := updater.NewUpdateService(config)
if err != nil {
log.Fatalf("Failed to create update service: %v", err)
}
if err := updateService.Start(); err != nil {
fmt.Printf("Update check failed: %v\n", err)
}
}Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the EUPL-1.2 License - see the LICENSE file for details.