Watch
1
0
Fork
You've already forked pkg-proxy
1
mirror of https://github.com/git-pkgs/proxy.git synced 2026-11-09 15:49:16 -05:00
pkg-proxy/internal/metadata/npm/npmbench/npmbench.go

42 lines
1.5 KiB
Go
Raw Permalink Normal View History

// Package npmbench builds npm packuments for benchmarks.
package npmbench
import (
"fmt"
"strings"
)
// readmeSentences makes each version's readme about 4KB.
const readmeSentences = 160
// Packument builds a full packument shaped like a large real one: versions
// 1.0.0 to 1.0.{versions-1}, each with dependencies, scripts and a readme,
// and a time entry for each.
func Packument(versions int) []byte {
var b strings.Builder
readme := strings.Repeat("Some documentation text. ", readmeSentences)
b.WriteString(`{"_id":"big","name":"big","dist-tags":{"latest":"1.0.` + fmt.Sprint(versions-1) + `"},"versions":{`)
for i := range versions {
if i > 0 {
b.WriteByte(',')
}
v := fmt.Sprintf("1.0.%d", i)
fmt.Fprintf(&b, `%q:{"name":"big","version":%q,"description":"A big package","main":"index.js",`+
`"scripts":{"test":"node test.js","build":"tsc -p ."},"dependencies":{`, v, v)
for d := range 25 {
if d > 0 {
b.WriteByte(',')
}
fmt.Fprintf(&b, `"dep-%d":"^%d.0.0"`, d, d)
}
fmt.Fprintf(&b, `},"readme":%q,"dist":{"shasum":"0123456789abcdef0123456789abcdef01234567",`+
`"integrity":"sha512-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",`+
`"tarball":"https://registry.npmjs.org/big/-/big-%s.tgz"}}`, readme, v)
}
b.WriteString(`},"time":{"created":"2015-01-01T00:00:00.000Z"`)
for i := range versions {
fmt.Fprintf(&b, `,"1.0.%d":"2016-01-01T00:00:00.000Z"`, i)
}
b.WriteString(`}}`)
return []byte(b.String())
}