func validateWebAssemblyVersions()

in ci-tools/main.go [243:278]


func validateWebAssemblyVersions() error {
	wasmVersionsFilePath := lookupWasmVersionsJSONPath()
	wasmVersionsFileBytes, err := os.ReadFile(wasmVersionsFilePath)
	if err != nil {
		return fmt.Errorf("file %s not found", wasmVersionsFilePath)
	}

	var wasmVersions map[string]any
	if len(wasmVersionsFileBytes) == 0 {
		return nil
	} else {
		err = json.Unmarshal(wasmVersionsFileBytes, &wasmVersions)
		if err != nil {
			return err
		}
	}

	if len(wasmVersions) == 0 {
		return nil
	}

	var errorsList strings.Builder
	for _, version := range wasmVersions["versions"].([]any) {
		artifact := version.(map[string]any)["artifact"]
		_, err = os.Stat(fmt.Sprintf("web/public/%s", artifact.(string)))
		if err != nil {
			errorsList.WriteString(fmt.Sprintf("version %s: artifact not found: %s \n", version.(map[string]any)["version"].(string), artifact))
		}
	}

	if errorsList.Len() > 0 {
		return errors.New(errorsList.String())
	}

	return nil
}