loadNodeRuntime loads the unenv node runtime from the embed filesystem.
()
| 37 | |
| 38 | // loadNodeRuntime loads the unenv node runtime from the embed filesystem. |
| 39 | func loadNodeRuntime() (err error) { |
| 40 | data, err := embedFS.ReadFile("embed/node-runtime.tgz") |
| 41 | if err == nil { |
| 42 | tarball, err := gzip.NewReader(bytes.NewReader(data)) |
| 43 | if err == nil { |
| 44 | defer tarball.Close() |
| 45 | tr := tar.NewReader(tarball) |
| 46 | for { |
| 47 | header, err := tr.Next() |
| 48 | if err != nil { |
| 49 | break |
| 50 | } |
| 51 | if header.Typeflag == tar.TypeReg { |
| 52 | name := header.Name |
| 53 | data := make([]byte, header.Size) |
| 54 | n, err := io.ReadFull(tr, data) |
| 55 | if err == nil && int64(n) == header.Size { |
| 56 | unenvNodeRuntimeMap[name] = data |
| 57 | } |
| 58 | } |
| 59 | } |
| 60 | return nil |
| 61 | } |
| 62 | } |
| 63 | return buildUnenvNodeRuntime() |
| 64 | } |
| 65 | |
| 66 | // slow path |
| 67 | func buildUnenvNodeRuntime() (err error) { |
no test coverage detected