(zipWriter *zip.Writer, fileType string, j interface{})
| 127 | } |
| 128 | |
| 129 | func AddFileToZip(zipWriter *zip.Writer, fileType string, j interface{}) error { |
| 130 | filename := fmt.Sprintf("%s.js", fileType) |
| 131 | |
| 132 | writer, err := zipWriter.Create(filename) |
| 133 | if err != nil { |
| 134 | return err |
| 135 | } |
| 136 | |
| 137 | b, err := json.Marshal(j) |
| 138 | if err != nil { |
| 139 | return fmt.Errorf("error producing JSON: %s\n", err) |
| 140 | } |
| 141 | |
| 142 | // add syntax to make json file a js object |
| 143 | content := fmt.Sprintf("const %s = %s", fileType, string(b)) |
| 144 | |
| 145 | tempFileName, tempFile, err := createTempFile(filename, []byte(content)) |
| 146 | defer os.Remove(tempFile.Name()) // clean up |
| 147 | defer tempFile.Close() |
| 148 | |
| 149 | fileToZip, err := os.Open(tempFileName) |
| 150 | if err != nil { |
| 151 | return err |
| 152 | } |
| 153 | defer fileToZip.Close() |
| 154 | |
| 155 | _, err = io.Copy(writer, fileToZip) |
| 156 | return err |
| 157 | } |
| 158 | |
| 159 | func createTempFile(filename string, b []byte) (string, *os.File, error) { |
| 160 | tempFile, err := os.CreateTemp("", filename) |
no test coverage detected