No description
Find a file
Claude 644986b8bb
chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style
- Remove fmt from updater.go, service.go, http_client.go, cmd.go, github.go, generic_http.go; replace with string concat, coreerr.E, cli.Print
- Remove strings from updater.go (inline byte comparisons) and service.go (inline helpers)
- Replace fmt.Sprintf in error paths with string concatenation throughout
- Add cli.Print for all stdout output in updater.go (CheckForUpdates, CheckOnly, etc.)
- Fix service_examples_test.go: restore original CheckForUpdates instead of setting nil
- Test naming: all test files now follow TestFile_Function_{Good,Bad,Ugly} with all three variants mandatory
- Comments: replace prose descriptions with usage-example style on all exported functions
- Remaining banned: strings/encoding/json in github.go and generic_http.go (no Core replacement in direct deps); os/os.exec in platform files (syscall-level, unavoidable without go-process)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 08:42:13 +01:00
build fix(dx): audit error handling, file I/O, and test coverage 2026-03-17 08:53:58 +00:00
docs Align update command UX/state handling with AX conventions 2026-03-30 00:24:43 +00:00
ui feat: go-update self-updater package 2026-02-21 21:38:20 +00:00
.gitignore feat: go-update self-updater package 2026-02-21 21:38:20 +00:00
CLAUDE.md fix(dx): audit error handling, file I/O, and test coverage 2026-03-17 08:53:58 +00:00
cmd.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
cmd_unix.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
cmd_windows.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
generic_http.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
generic_http_test.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
github.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
github_internal_test.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
github_test.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
go.mod fix(dx): audit error handling, file I/O, and test coverage 2026-03-17 08:53:58 +00:00
go.sum fix(dx): audit error handling, file I/O, and test coverage 2026-03-17 08:53:58 +00:00
http_client.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
LICENSE feat: go-update self-updater package 2026-02-21 21:38:20 +00:00
Makefile feat: go-update self-updater package 2026-02-21 21:38:20 +00:00
mock_github_client_test.go feat: go-update self-updater package 2026-02-21 21:38:20 +00:00
package.json feat: go-update self-updater package 2026-02-21 21:38:20 +00:00
README.md feat: go-update self-updater package 2026-02-21 21:38:20 +00:00
service.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
service_examples_test.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
service_test.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
tests.patch feat: go-update self-updater package 2026-02-21 21:38:20 +00:00
updater.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
updater_test.go chore(ax): Pass 1 AX compliance sweep — banned imports, test naming, comment style 2026-03-31 08:42:13 +01:00
version.go feat: go-update self-updater package 2026-02-21 21:38:20 +00:00

Core Element Template

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.

Getting Started

  1. Clone the repository:

    git clone https://github.com/your-username/core-element-template.git
    
  2. Install the dependencies:

    cd core-element-template
    go mod tidy
    cd ui
    npm install
    
  3. Run the development server:

    go run ./cmd/demo-cli serve
    

    This will start the Go backend and serve the Angular custom element.

Building the Custom Element

To build the Angular custom element, run the following command:

cd ui
npm run build

This will create a single JavaScript file in the dist directory that you can use in any HTML page.

Usage

To use the updater library in your Go project, you can use the UpdateService.

GitHub-based Updates

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)
	}
}

Generic HTTP Updates

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)
	}
}

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the EUPL-1.2 License - see the LICENSE file for details.