OK, this is some very shitty code, but i need these charts for the pitch deck. Pushing now to clean up later

This commit is contained in:
Paul Copplestone committed 2020-01-27 15:06:12 +08:00
1 parent bdcf1f011b
commit 0d6279679d
11 files changed
+773 -716

No files matched your search

+1 -12
View File
@@ -6,7 +6,6 @@ help:
@echo "make github.issues # pull a list of all issue creators"
@echo "make github.traction # get a history of stargazers for our individual repos"
github.users:
curl -sS https://api.github.com/repos/supabase/monorepo/contributors \
| jq -r 'map_values({username: .login, avatar_url: .avatar_url}) \
@@ -21,15 +20,5 @@ github.issues:
| sort_by(.username)' \
> $(REPO_DIR)/web/src/data/contributors/issues.json
.PHONY: github.traction
github.traction: \
github.traction.monorepo \
github.traction.realtime \
github.traction.schemas
github.traction.%:
curl -sS https://api.github.com/repos/supabase/$*/stargazers \
-H 'Accept: application/vnd.github.v3.star+json' \
--compressed \
| jq -r 'map_values({repo: "@supabase/$*", starred_at: .starred_at, user: { login: .user.login, id: .user.id, avatar_url: .user.avatar_url, url: .user.url }})' \
> $(REPO_DIR)/web/src/data/stars/$*_history.json
cd web && npm run traction
+344
View File
@@ -0,0 +1,344 @@
{
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"ajv": {
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
"integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"asn1": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"requires": {
"safer-buffer": "~2.1.0"
}
},
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
},
"aws4": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
"integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
},
"bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"requires": {
"tweetnacl": "^0.14.3"
}
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"requires": {
"assert-plus": "^1.0.0"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"requires": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
}
},
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
"fast-deep-equal": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
"integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
},
"fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
},
"form-data": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
}
},
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"requires": {
"assert-plus": "^1.0.0"
}
},
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
},
"har-validator": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
"requires": {
"ajv": "^6.5.5",
"har-schema": "^2.0.0"
}
},
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"requires": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
"sshpk": "^1.7.0"
}
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
},
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
"json-schema": "0.2.3",
"verror": "1.10.0"
}
},
"mime-db": {
"version": "1.43.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
"integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
},
"mime-types": {
"version": "2.1.26",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
"integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
"requires": {
"mime-db": "1.43.0"
}
},
"oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
},
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"psl": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
"integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ=="
},
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
},
"request": {
"version": "2.88.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
"requires": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
"caseless": "~0.12.0",
"combined-stream": "~1.0.6",
"extend": "~3.0.2",
"forever-agent": "~0.6.1",
"form-data": "~2.3.2",
"har-validator": "~5.1.0",
"http-signature": "~1.2.0",
"is-typedarray": "~1.0.0",
"isstream": "~0.1.2",
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.19",
"oauth-sign": "~0.9.0",
"performance-now": "^2.1.0",
"qs": "~6.5.2",
"safe-buffer": "^5.1.2",
"tough-cookie": "~2.4.3",
"tunnel-agent": "^0.6.0",
"uuid": "^3.3.2"
}
},
"safe-buffer": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sshpk": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
"requires": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
"bcrypt-pbkdf": "^1.0.0",
"dashdash": "^1.12.0",
"ecc-jsbn": "~0.1.1",
"getpass": "^0.1.1",
"jsbn": "~0.1.0",
"safer-buffer": "^2.0.2",
"tweetnacl": "~0.14.0"
}
},
"tough-cookie": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"requires": {
"psl": "^1.1.24",
"punycode": "^1.4.1"
},
"dependencies": {
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
}
}
},
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
},
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"requires": {
"punycode": "^2.1.0"
}
},
"uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
},
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"requires": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
}
}
}
}
+35
View File
@@ -1899,6 +1899,41 @@
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz",
"integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A=="
},
"axios": {
"version": "0.19.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
"integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
"dev": true,
"requires": {
"follow-redirects": "1.5.10"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
},
"follow-redirects": {
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"dev": true,
"requires": {
"debug": "=3.1.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
}
}
},
"babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+6 -2
View File
@@ -1,11 +1,12 @@
{
"name": "supabase",
"version": "0.0.0",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "docusaurus start",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle"
"swizzle": "docusaurus swizzle",
"traction": "node traction.js"
},
"dependencies": {
"@docusaurus/core": "^2.0.0-alpha.40",
@@ -28,5 +29,8 @@
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"axios": "^0.19.2"
}
}
+3
View File
@@ -687,4 +687,7 @@ a.hash-link {
}
.section-lg {
margin: 5rem 0;
}
.hidden {
display: none;
}
-302
View File
@@ -1,302 +0,0 @@
[
{
"repo": "@supabase/monorepo",
"starred_at": "2019-10-15T09:03:38Z",
"user": {
"login": "kiwicopple",
"id": 10214025,
"avatar_url": "https://avatars0.githubusercontent.com/u/10214025?v=4",
"url": "https://api.github.com/users/kiwicopple"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-15T23:06:09Z",
"user": {
"login": "smiley",
"id": 354181,
"avatar_url": "https://avatars0.githubusercontent.com/u/354181?v=4",
"url": "https://api.github.com/users/smiley"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T00:35:24Z",
"user": {
"login": "simple555a",
"id": 16252870,
"avatar_url": "https://avatars0.githubusercontent.com/u/16252870?v=4",
"url": "https://api.github.com/users/simple555a"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T01:43:42Z",
"user": {
"login": "millette",
"id": 50741,
"avatar_url": "https://avatars1.githubusercontent.com/u/50741?v=4",
"url": "https://api.github.com/users/millette"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T02:03:11Z",
"user": {
"login": "zhiyue",
"id": 4208883,
"avatar_url": "https://avatars3.githubusercontent.com/u/4208883?v=4",
"url": "https://api.github.com/users/zhiyue"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T02:32:30Z",
"user": {
"login": "dan-dr",
"id": 6669808,
"avatar_url": "https://avatars0.githubusercontent.com/u/6669808?v=4",
"url": "https://api.github.com/users/dan-dr"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T02:42:07Z",
"user": {
"login": "jots",
"id": 115140,
"avatar_url": "https://avatars0.githubusercontent.com/u/115140?v=4",
"url": "https://api.github.com/users/jots"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T03:03:14Z",
"user": {
"login": "maxaf",
"id": 99585,
"avatar_url": "https://avatars0.githubusercontent.com/u/99585?v=4",
"url": "https://api.github.com/users/maxaf"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T05:00:57Z",
"user": {
"login": "ysm0622",
"id": 18487241,
"avatar_url": "https://avatars2.githubusercontent.com/u/18487241?v=4",
"url": "https://api.github.com/users/ysm0622"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T05:18:38Z",
"user": {
"login": "lookfirst",
"id": 85355,
"avatar_url": "https://avatars0.githubusercontent.com/u/85355?v=4",
"url": "https://api.github.com/users/lookfirst"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T06:32:11Z",
"user": {
"login": "awalias",
"id": 458736,
"avatar_url": "https://avatars3.githubusercontent.com/u/458736?v=4",
"url": "https://api.github.com/users/awalias"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T07:44:21Z",
"user": {
"login": "jumasheff",
"id": 3319967,
"avatar_url": "https://avatars3.githubusercontent.com/u/3319967?v=4",
"url": "https://api.github.com/users/jumasheff"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T10:41:03Z",
"user": {
"login": "kirushik",
"id": 152719,
"avatar_url": "https://avatars1.githubusercontent.com/u/152719?v=4",
"url": "https://api.github.com/users/kirushik"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T16:32:54Z",
"user": {
"login": "dbohdan",
"id": 3179832,
"avatar_url": "https://avatars3.githubusercontent.com/u/3179832?v=4",
"url": "https://api.github.com/users/dbohdan"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T17:28:29Z",
"user": {
"login": "i-curate",
"id": 30484092,
"avatar_url": "https://avatars0.githubusercontent.com/u/30484092?v=4",
"url": "https://api.github.com/users/i-curate"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T18:23:55Z",
"user": {
"login": "devcat",
"id": 19345643,
"avatar_url": "https://avatars1.githubusercontent.com/u/19345643?v=4",
"url": "https://api.github.com/users/devcat"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-16T23:13:13Z",
"user": {
"login": "knightlore",
"id": 2867563,
"avatar_url": "https://avatars3.githubusercontent.com/u/2867563?v=4",
"url": "https://api.github.com/users/knightlore"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-17T21:17:06Z",
"user": {
"login": "aceiii",
"id": 1176065,
"avatar_url": "https://avatars2.githubusercontent.com/u/1176065?v=4",
"url": "https://api.github.com/users/aceiii"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-18T10:24:43Z",
"user": {
"login": "gtardini",
"id": 934473,
"avatar_url": "https://avatars1.githubusercontent.com/u/934473?v=4",
"url": "https://api.github.com/users/gtardini"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-18T17:17:53Z",
"user": {
"login": "berstend",
"id": 1368633,
"avatar_url": "https://avatars3.githubusercontent.com/u/1368633?v=4",
"url": "https://api.github.com/users/berstend"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-19T02:35:26Z",
"user": {
"login": "bransorem",
"id": 79442,
"avatar_url": "https://avatars1.githubusercontent.com/u/79442?v=4",
"url": "https://api.github.com/users/bransorem"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-20T21:44:51Z",
"user": {
"login": "pindamonhangaba",
"id": 1778376,
"avatar_url": "https://avatars3.githubusercontent.com/u/1778376?v=4",
"url": "https://api.github.com/users/pindamonhangaba"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-21T07:28:23Z",
"user": {
"login": "rosancoderian",
"id": 5107597,
"avatar_url": "https://avatars1.githubusercontent.com/u/5107597?v=4",
"url": "https://api.github.com/users/rosancoderian"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-21T13:07:57Z",
"user": {
"login": "sergekov",
"id": 1754566,
"avatar_url": "https://avatars1.githubusercontent.com/u/1754566?v=4",
"url": "https://api.github.com/users/sergekov"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-21T13:32:14Z",
"user": {
"login": "jzimmek",
"id": 40382,
"avatar_url": "https://avatars2.githubusercontent.com/u/40382?v=4",
"url": "https://api.github.com/users/jzimmek"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-21T13:39:20Z",
"user": {
"login": "lowrencium",
"id": 6582186,
"avatar_url": "https://avatars0.githubusercontent.com/u/6582186?v=4",
"url": "https://api.github.com/users/lowrencium"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-21T15:37:44Z",
"user": {
"login": "gregdaynes",
"id": 43543,
"avatar_url": "https://avatars0.githubusercontent.com/u/43543?v=4",
"url": "https://api.github.com/users/gregdaynes"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-21T16:25:38Z",
"user": {
"login": "Gmora08",
"id": 2798311,
"avatar_url": "https://avatars1.githubusercontent.com/u/2798311?v=4",
"url": "https://api.github.com/users/Gmora08"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-21T18:47:26Z",
"user": {
"login": "willfore",
"id": 11682,
"avatar_url": "https://avatars0.githubusercontent.com/u/11682?v=4",
"url": "https://api.github.com/users/willfore"
}
},
{
"repo": "@supabase/monorepo",
"starred_at": "2020-01-22T01:36:28Z",
"user": {
"login": "Creamen",
"id": 12526859,
"avatar_url": "https://avatars2.githubusercontent.com/u/12526859?v=4",
"url": "https://api.github.com/users/Creamen"
}
}
]
-302
View File
@@ -1,302 +0,0 @@
[
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T12:28:35Z",
"user": {
"login": "BillBrower",
"id": 1717845,
"avatar_url": "https://avatars1.githubusercontent.com/u/1717845?v=4",
"url": "https://api.github.com/users/BillBrower"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T12:29:30Z",
"user": {
"login": "derickwarshaw",
"id": 3732616,
"avatar_url": "https://avatars0.githubusercontent.com/u/3732616?v=4",
"url": "https://api.github.com/users/derickwarshaw"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T12:54:33Z",
"user": {
"login": "s6o",
"id": 5352612,
"avatar_url": "https://avatars3.githubusercontent.com/u/5352612?v=4",
"url": "https://api.github.com/users/s6o"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T13:38:47Z",
"user": {
"login": "zaygraveyard",
"id": 603764,
"avatar_url": "https://avatars0.githubusercontent.com/u/603764?v=4",
"url": "https://api.github.com/users/zaygraveyard"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T14:03:22Z",
"user": {
"login": "rch",
"id": 80840,
"avatar_url": "https://avatars3.githubusercontent.com/u/80840?v=4",
"url": "https://api.github.com/users/rch"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T14:25:55Z",
"user": {
"login": "panphora",
"id": 364330,
"avatar_url": "https://avatars3.githubusercontent.com/u/364330?v=4",
"url": "https://api.github.com/users/panphora"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T14:27:51Z",
"user": {
"login": "geostarling",
"id": 210511,
"avatar_url": "https://avatars3.githubusercontent.com/u/210511?v=4",
"url": "https://api.github.com/users/geostarling"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T14:38:57Z",
"user": {
"login": "zephraph",
"id": 3087225,
"avatar_url": "https://avatars1.githubusercontent.com/u/3087225?v=4",
"url": "https://api.github.com/users/zephraph"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T14:39:47Z",
"user": {
"login": "ranjanprj",
"id": 774370,
"avatar_url": "https://avatars0.githubusercontent.com/u/774370?v=4",
"url": "https://api.github.com/users/ranjanprj"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T14:41:32Z",
"user": {
"login": "bplus",
"id": 50766,
"avatar_url": "https://avatars2.githubusercontent.com/u/50766?v=4",
"url": "https://api.github.com/users/bplus"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T15:20:43Z",
"user": {
"login": "napstr",
"id": 6048348,
"avatar_url": "https://avatars3.githubusercontent.com/u/6048348?v=4",
"url": "https://api.github.com/users/napstr"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T15:45:39Z",
"user": {
"login": "azappella",
"id": 395669,
"avatar_url": "https://avatars1.githubusercontent.com/u/395669?v=4",
"url": "https://api.github.com/users/azappella"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T16:01:31Z",
"user": {
"login": "queer",
"id": 23562067,
"avatar_url": "https://avatars0.githubusercontent.com/u/23562067?v=4",
"url": "https://api.github.com/users/queer"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T16:10:55Z",
"user": {
"login": "rawrmaan",
"id": 872033,
"avatar_url": "https://avatars1.githubusercontent.com/u/872033?v=4",
"url": "https://api.github.com/users/rawrmaan"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T16:18:31Z",
"user": {
"login": "cannadayr",
"id": 11142749,
"avatar_url": "https://avatars1.githubusercontent.com/u/11142749?v=4",
"url": "https://api.github.com/users/cannadayr"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T16:20:34Z",
"user": {
"login": "notpeter",
"id": 145113,
"avatar_url": "https://avatars0.githubusercontent.com/u/145113?v=4",
"url": "https://api.github.com/users/notpeter"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T17:20:34Z",
"user": {
"login": "mechabyte",
"id": 1922389,
"avatar_url": "https://avatars3.githubusercontent.com/u/1922389?v=4",
"url": "https://api.github.com/users/mechabyte"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T17:27:31Z",
"user": {
"login": "flebel",
"id": 120855,
"avatar_url": "https://avatars3.githubusercontent.com/u/120855?v=4",
"url": "https://api.github.com/users/flebel"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T17:27:56Z",
"user": {
"login": "albab",
"id": 3075882,
"avatar_url": "https://avatars1.githubusercontent.com/u/3075882?v=4",
"url": "https://api.github.com/users/albab"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T18:09:19Z",
"user": {
"login": "shamrin",
"id": 510678,
"avatar_url": "https://avatars3.githubusercontent.com/u/510678?v=4",
"url": "https://api.github.com/users/shamrin"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T18:36:28Z",
"user": {
"login": "giovannibonetti",
"id": 3451581,
"avatar_url": "https://avatars3.githubusercontent.com/u/3451581?v=4",
"url": "https://api.github.com/users/giovannibonetti"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T18:42:10Z",
"user": {
"login": "rickgorman",
"id": 4432541,
"avatar_url": "https://avatars2.githubusercontent.com/u/4432541?v=4",
"url": "https://api.github.com/users/rickgorman"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T19:10:08Z",
"user": {
"login": "lulzzz",
"id": 115672,
"avatar_url": "https://avatars0.githubusercontent.com/u/115672?v=4",
"url": "https://api.github.com/users/lulzzz"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T19:13:42Z",
"user": {
"login": "malloryerik",
"id": 10395849,
"avatar_url": "https://avatars3.githubusercontent.com/u/10395849?v=4",
"url": "https://api.github.com/users/malloryerik"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T19:17:28Z",
"user": {
"login": "emcmanus",
"id": 21946,
"avatar_url": "https://avatars3.githubusercontent.com/u/21946?v=4",
"url": "https://api.github.com/users/emcmanus"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T19:28:12Z",
"user": {
"login": "colonelpopcorn",
"id": 13068221,
"avatar_url": "https://avatars3.githubusercontent.com/u/13068221?v=4",
"url": "https://api.github.com/users/colonelpopcorn"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T19:33:08Z",
"user": {
"login": "bictorman",
"id": 729447,
"avatar_url": "https://avatars2.githubusercontent.com/u/729447?v=4",
"url": "https://api.github.com/users/bictorman"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T19:59:11Z",
"user": {
"login": "aanich-assf",
"id": 37088337,
"avatar_url": "https://avatars1.githubusercontent.com/u/37088337?v=4",
"url": "https://api.github.com/users/aanich-assf"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T20:28:39Z",
"user": {
"login": "robstolarz",
"id": 3682844,
"avatar_url": "https://avatars1.githubusercontent.com/u/3682844?v=4",
"url": "https://api.github.com/users/robstolarz"
}
},
{
"repo": "@supabase/realtime",
"starred_at": "2019-10-25T20:55:41Z",
"user": {
"login": "jeff3yan",
"id": 6830108,
"avatar_url": "https://avatars0.githubusercontent.com/u/6830108?v=4",
"url": "https://api.github.com/users/jeff3yan"
}
}
]
-42
View File
@@ -1,42 +0,0 @@
[
{
"repo": "@supabase/schemas",
"starred_at": "2020-01-16T06:32:23Z",
"user": {
"login": "awalias",
"id": 458736,
"avatar_url": "https://avatars3.githubusercontent.com/u/458736?v=4",
"url": "https://api.github.com/users/awalias"
}
},
{
"repo": "@supabase/schemas",
"starred_at": "2020-01-16T07:19:24Z",
"user": {
"login": "kiwicopple",
"id": 10214025,
"avatar_url": "https://avatars0.githubusercontent.com/u/10214025?v=4",
"url": "https://api.github.com/users/kiwicopple"
}
},
{
"repo": "@supabase/schemas",
"starred_at": "2020-01-23T02:16:26Z",
"user": {
"login": "ganeshan",
"id": 115037,
"avatar_url": "https://avatars0.githubusercontent.com/u/115037?v=4",
"url": "https://api.github.com/users/ganeshan"
}
},
{
"repo": "@supabase/schemas",
"starred_at": "2020-01-23T11:08:46Z",
"user": {
"login": "jgwconsulting",
"id": 1101369,
"avatar_url": "https://avatars2.githubusercontent.com/u/1101369?v=4",
"url": "https://api.github.com/users/jgwconsulting"
}
}
]
+230
View File
@@ -0,0 +1,230 @@
[
{
"name": "2019-12-19",
"@supabase/monorepo": 0,
"@supabase/realtime": 3,
"@supabase/schemas": 0
},
{
"name": "2020-01-16",
"@supabase/monorepo": 15,
"@supabase/realtime": 12,
"@supabase/schemas": 2
},
{
"name": "2019-10-25",
"@supabase/monorepo": 15,
"@supabase/realtime": 45,
"@supabase/schemas": 2
},
{
"name": "2019-10-26",
"@supabase/monorepo": 15,
"@supabase/realtime": 53,
"@supabase/schemas": 2
},
{
"name": "2019-10-27",
"@supabase/monorepo": 15,
"@supabase/realtime": 58,
"@supabase/schemas": 2
},
{
"name": "2019-10-28",
"@supabase/monorepo": 15,
"@supabase/realtime": 63,
"@supabase/schemas": 2
},
{
"name": "2019-10-29",
"@supabase/monorepo": 15,
"@supabase/realtime": 64,
"@supabase/schemas": 2
},
{
"name": "2019-10-30",
"@supabase/monorepo": 15,
"@supabase/realtime": 65,
"@supabase/schemas": 2
},
{
"name": "2019-10-31",
"@supabase/monorepo": 15,
"@supabase/realtime": 66,
"@supabase/schemas": 2
},
{
"name": "2019-11-03",
"@supabase/monorepo": 15,
"@supabase/realtime": 67,
"@supabase/schemas": 2
},
{
"name": "2019-11-09",
"@supabase/monorepo": 15,
"@supabase/realtime": 70,
"@supabase/schemas": 2
},
{
"name": "2019-11-10",
"@supabase/monorepo": 15,
"@supabase/realtime": 71,
"@supabase/schemas": 2
},
{
"name": "2019-11-11",
"@supabase/monorepo": 15,
"@supabase/realtime": 72,
"@supabase/schemas": 2
},
{
"name": "2019-11-21",
"@supabase/monorepo": 15,
"@supabase/realtime": 73,
"@supabase/schemas": 2
},
{
"name": "2019-11-23",
"@supabase/monorepo": 15,
"@supabase/realtime": 74,
"@supabase/schemas": 2
},
{
"name": "2019-12-10",
"@supabase/monorepo": 15,
"@supabase/realtime": 75,
"@supabase/schemas": 2
},
{
"name": "2019-12-13",
"@supabase/monorepo": 15,
"@supabase/realtime": 76,
"@supabase/schemas": 2
},
{
"name": "2019-12-17",
"@supabase/monorepo": 15,
"@supabase/realtime": 170,
"@supabase/schemas": 2
},
{
"name": "2019-12-18",
"@supabase/monorepo": 15,
"@supabase/realtime": 186,
"@supabase/schemas": 2
},
{
"name": "2020-01-15",
"@supabase/monorepo": 16,
"@supabase/realtime": 186,
"@supabase/schemas": 2
},
{
"name": "2019-12-20",
"@supabase/monorepo": 16,
"@supabase/realtime": 189,
"@supabase/schemas": 2
},
{
"name": "2019-12-21",
"@supabase/monorepo": 16,
"@supabase/realtime": 191,
"@supabase/schemas": 2
},
{
"name": "2019-12-23",
"@supabase/monorepo": 16,
"@supabase/realtime": 192,
"@supabase/schemas": 2
},
{
"name": "2019-12-29",
"@supabase/monorepo": 16,
"@supabase/realtime": 193,
"@supabase/schemas": 2
},
{
"name": "2020-01-07",
"@supabase/monorepo": 16,
"@supabase/realtime": 194,
"@supabase/schemas": 2
},
{
"name": "2020-01-11",
"@supabase/monorepo": 16,
"@supabase/realtime": 195,
"@supabase/schemas": 2
},
{
"name": "2020-01-14",
"@supabase/monorepo": 16,
"@supabase/realtime": 196,
"@supabase/schemas": 2
},
{
"name": "2019-10-15",
"@supabase/monorepo": 17,
"@supabase/realtime": 196,
"@supabase/schemas": 2
},
{
"name": "2020-01-17",
"@supabase/monorepo": 18,
"@supabase/realtime": 197,
"@supabase/schemas": 2
},
{
"name": "2020-01-18",
"@supabase/monorepo": 20,
"@supabase/realtime": 198,
"@supabase/schemas": 2
},
{
"name": "2020-01-19",
"@supabase/monorepo": 21,
"@supabase/realtime": 198,
"@supabase/schemas": 2
},
{
"name": "2020-01-20",
"@supabase/monorepo": 22,
"@supabase/realtime": 199,
"@supabase/schemas": 2
},
{
"name": "2020-01-21",
"@supabase/monorepo": 29,
"@supabase/realtime": 204,
"@supabase/schemas": 2
},
{
"name": "2020-01-22",
"@supabase/monorepo": 46,
"@supabase/realtime": 276,
"@supabase/schemas": 2
},
{
"name": "2020-01-23",
"@supabase/monorepo": 56,
"@supabase/realtime": 306,
"@supabase/schemas": 4
},
{
"name": "2020-01-24",
"@supabase/monorepo": 58,
"@supabase/realtime": 326,
"@supabase/schemas": 4
},
{
"name": "2020-01-25",
"@supabase/monorepo": 60,
"@supabase/realtime": 330,
"@supabase/schemas": 4
},
{
"name": "2020-01-26",
"@supabase/monorepo": 60,
"@supabase/realtime": 333,
"@supabase/schemas": 4
}
]
+63 -56
View File
@@ -1,62 +1,71 @@
import React from 'react'
import Layout from '@theme/Layout'
import { AreaChart, Area, Tooltip, XAxis, ResponsiveContainer } from 'recharts'
import { AreaChart, Area, Tooltip, XAxis, YAxis, ResponsiveContainer } from 'recharts'
import useDocusaurusContext from '@docusaurus/useDocusaurusContext'
import monorepo_history from '../data/stars/monorepo_history.json'
import realtime_history from '../data/stars/realtime_history.json'
import schemas_history from '../data/stars/schemas_history.json'
import stargazers from '../data/stars/stargazers.json'
const history = []
.concat(monorepo_history)
.concat(realtime_history)
.concat(schemas_history)
const CustomTooltip = props => {
const renderContent = () => {
const { payload, separator, formatter, itemStyle, itemSorter } = props
// const now = new Date()
// var data = []
// // console.log('history', history)
// for (var d = new Date(2019, 10, 1); d <= now; d.setDate(d.getDate() + 1)) {
// let dateString = d.toISOString().split('T')[0]
// data.push({
// name: dateString,
// '@supabase/monorepo': 1,
// '@supabase/realtime': 2,
// '@supabase/schemas': 3,
// })
// }
// this gives an object with dates as keys
const groups = history.reduce((groups, event) => {
const date = event.starred_at.split('T')[0]
if (!groups[date]) {
groups[date] = []
}
groups[date].push(event)
return groups
}, {})
var tally = {
'@supabase/monorepo': 0,
'@supabase/realtime': 0,
'@supabase/schemas': 0,
}
const data = Object.keys(groups)
.sort((a, b) => a > b)
.map(date => {
let monorepo = groups[date].filter(x => x.repo === '@supabase/monorepo').length
let realtime = groups[date].filter(x => x.repo === '@supabase/realtime').length
let schemas = groups[date].filter(x => x.repo === '@supabase/schemas').length
tally['@supabase/monorepo'] += monorepo
tally['@supabase/realtime'] += realtime
tally['@supabase/schemas'] += schemas
return {
name: date,
'@supabase/monorepo': tally['@supabase/monorepo'],
'@supabase/realtime': tally['@supabase/realtime'],
'@supabase/schemas': tally['@supabase/schemas'],
if (payload && payload.length) {
const listStyle = { padding: 0, margin: 0 }
const items = payload.sort(itemSorter).map((entry, i) => {
const finalItemStyle = {
display: 'block',
paddingTop: 4,
paddingBottom: 4,
color: entry.color || '#000',
...itemStyle,
}
const hasName = entry.name
const finalFormatter = entry.formatter || formatter || (() => {})
return (
<li className="recharts-tooltip-item" key={`tooltip-item-${i}`} style={finalItemStyle}>
{hasName ? <span className="recharts-tooltip-item-name">{entry.name}</span> : null}
{hasName ? <span className="recharts-tooltip-item-separator">{separator}</span> : null}
<span className="recharts-tooltip-item-value">
{finalFormatter ? finalFormatter(entry.value, entry.name, entry, i) : entry.value}
</span>
<span className="recharts-tooltip-item-unit">{entry.value || '0'}</span>
</li>
)
})
return (
<ul className="recharts-tooltip-item-list" style={listStyle}>
{items}
</ul>
)
}
})
}
if (props.active) {
const { labelStyle, label, wrapperStyle } = props
const finalStyle = {
margin: 0,
padding: 10,
backgroundColor: '#fff',
border: '1px solid #ccc',
whiteSpace: 'nowrap',
...wrapperStyle,
}
const finalLabelStyle = {
margin: 0,
...labelStyle,
}
let finalLabel = stargazers[label].name
// console.log('groupArrays', groupArrays)
return (
<div className="recharts-default-tooltip" style={finalStyle}>
<p className="recharts-tooltip-label" style={finalLabelStyle}>
{finalLabel}
</p>
{renderContent()}
</div>
)
}
return null
}
export default function Oss() {
const context = useDocusaurusContext()
@@ -74,7 +83,7 @@ export default function Oss() {
<AreaChart
width={600}
height={400}
data={data}
data={stargazers}
margin={{
top: 0,
right: 0,
@@ -82,9 +91,7 @@ export default function Oss() {
bottom: 0,
}}
>
{/* Need this to make the Tooltip show the correct "name"? */}
<XAxis dataKey="name" style={{ display: 'none' }} />
<Tooltip />
<Tooltip content={<CustomTooltip />} />
<Area
type="monotone"
dataKey="@supabase/schemas"
+91
View File
@@ -0,0 +1,91 @@
var axios = require('axios')
var fs = require('fs')
const fetchAllEvents = (repo, totalStars) => {
const MAX_PER_PAGE = 100
const baseUrl =
'https://api.github.com/repos/supabase/' + repo + '/stargazers?per_page=' + MAX_PER_PAGE
//Start fetching every page of repos.
const fetchPromises = [],
pageCount = Math.ceil(totalStars / MAX_PER_PAGE)
for (let pageI = 1; pageI <= pageCount; ++pageI) {
const fetchPagePromise = axios.get(baseUrl + '&page=' + pageI, {
headers: { Accept: 'application/vnd.github.v3.star+json' },
})
fetchPromises.push(fetchPagePromise)
}
//This promise resolves after all the fetching is done.
return Promise.all(fetchPromises)
.then(responses => {
//Parse all the responses to JSON.
return Promise.all(responses.map(response => response.data))
})
.then(results => {
//Copy the results into one big array that has all the friggin repos.
let repos = []
results.forEach(result => {
repos = repos.concat(result)
})
return repos
})
}
const formatResults = (repo, githubResponse) => {
console.log('githubResponse', githubResponse)
return githubResponse.map(x => ({
repo,
starred_at: x.starred_at,
user: { login: x.user.login, id: x.user.id, avatar_url: x.user.avatar_url, url: x.user.url },
}))
}
const main = async () => {
const schemas = await fetchAllEvents('schemas', 100)
const realtime = await fetchAllEvents('realtime', 400)
const monorepo = await fetchAllEvents('monorepo', 100)
const history = [].concat(formatResults('@supabase/schemas', schemas))
.concat(formatResults('@supabase/realtime', realtime))
.concat(formatResults('@supabase/monorepo', monorepo))
const groups = history.reduce((groups, event) => {
const date = event.starred_at.split('T')[0]
if (!groups[date]) {
groups[date] = []
}
groups[date].push(event)
return groups
}, {})
var tally = {
'@supabase/monorepo': 0,
'@supabase/realtime': 0,
'@supabase/schemas': 0,
}
const data = Object.keys(groups)
.sort((a, b) => a > b)
.map(date => {
let monorepo = groups[date].filter(x => x.repo === '@supabase/monorepo').length
let realtime = groups[date].filter(x => x.repo === '@supabase/realtime').length
let schemas = groups[date].filter(x => x.repo === '@supabase/schemas').length
tally['@supabase/monorepo'] += monorepo
tally['@supabase/realtime'] += realtime
tally['@supabase/schemas'] += schemas
return {
name: date,
'@supabase/monorepo': tally['@supabase/monorepo'],
'@supabase/realtime': tally['@supabase/realtime'],
'@supabase/schemas': tally['@supabase/schemas'],
}
})
fs.writeFile('./src/data/stars/stargazers.json', JSON.stringify(data, null, 2), 'utf8', function(
err
) {
if (err) throw err
console.log('Saved.')
})
}
main()