MCPcopy Index your code
hub / github.com/sqlc-dev/sqlc / fetch

Method fetch

internal/ext/wasm/wasm.go:75–114  ·  view source on GitHub ↗
(ctx context.Context, uri string)

Source from the content-addressed store, hash-verified

73}
74
75func (r *Runner) fetch(ctx context.Context, uri string) ([]byte, string, error) {
76 var body io.ReadCloser
77
78 switch {
79
80 case strings.HasPrefix(uri, "file://"):
81 file, err := os.Open(strings.TrimPrefix(uri, "file://"))
82 if err != nil {
83 return nil, "", fmt.Errorf("os.Open: %s %w", uri, err)
84 }
85 body = file
86
87 case strings.HasPrefix(uri, "https://"):
88 req, err := http.NewRequestWithContext(ctx, "GET", uri, nil)
89 if err != nil {
90 return nil, "", fmt.Errorf("http.Get: %s %w", uri, err)
91 }
92 req.Header.Set("User-Agent", fmt.Sprintf("sqlc/%s Go/%s (%s %s)", info.Version, runtime.Version(), runtime.GOOS, runtime.GOARCH))
93 resp, err := http.DefaultClient.Do(req)
94 if err != nil {
95 return nil, "", fmt.Errorf("http.Get: %s %w", r.URL, err)
96 }
97 body = resp.Body
98
99 default:
100 return nil, "", fmt.Errorf("unknown scheme: %s", r.URL)
101 }
102
103 defer body.Close()
104
105 wmod, err := io.ReadAll(body)
106 if err != nil {
107 return nil, "", fmt.Errorf("readall: %w", err)
108 }
109
110 sum := sha256.Sum256(wmod)
111 actual := fmt.Sprintf("%x", sum)
112
113 return wmod, actual, nil
114}
115
116func (r *Runner) loadAndCompileWASM(ctx context.Context, cache string, expected string) (*runtimeAndCode, error) {
117 pluginDir := filepath.Join(cache, expected)

Callers 2

getChecksumMethod · 0.95
loadAndCompileWASMMethod · 0.95

Calls 2

OpenMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected