mirror of
https://github.com/LukeHagar/sveltesociety.dev.git
synced 2025-12-10 04:21:49 +00:00
Fetch stars from Gitlab
This commit is contained in:
244
package-lock.json
generated
244
package-lock.json
generated
@@ -5,12 +5,12 @@
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "sveltesociety.dev",
|
||||
"version": "0.0.1",
|
||||
"dependencies": {
|
||||
"svelte-highlight": "^3.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@octokit/graphql": "^4.7.0",
|
||||
"@sveltejs/adapter-static": "next",
|
||||
"@sveltejs/kit": "next",
|
||||
"@types/jest": "^27.0.1",
|
||||
@@ -19,6 +19,7 @@
|
||||
"eslint": "^7.22.0",
|
||||
"eslint-config-prettier": "^8.1.0",
|
||||
"eslint-plugin-svelte3": "^3.2.0",
|
||||
"graphql-request": "^3.5.0",
|
||||
"jest": "^27.1.0",
|
||||
"mdsvex": "^0.9.3",
|
||||
"prettier": "~2.2.1",
|
||||
@@ -1026,68 +1027,6 @@
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/endpoint": {
|
||||
"version": "6.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz",
|
||||
"integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@octokit/types": "^6.0.3",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/graphql": {
|
||||
"version": "4.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz",
|
||||
"integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@octokit/request": "^5.6.0",
|
||||
"@octokit/types": "^6.0.3",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/openapi-types": {
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-10.1.0.tgz",
|
||||
"integrity": "sha512-Nq5TMBwijRXco+Bm/Rq1n5maxxXsHLwd/Cm3lyNeOxbjyzAOSD0qmr4TwKCD4TN4rHZ7lq/tARuqSv/WJHF7IA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@octokit/request": {
|
||||
"version": "5.6.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.1.tgz",
|
||||
"integrity": "sha512-Ls2cfs1OfXaOKzkcxnqw5MR6drMA/zWX/LIS/p8Yjdz7QKTPQLMsB3R+OvoxE6XnXeXEE2X7xe4G4l4X0gRiKQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@octokit/endpoint": "^6.0.1",
|
||||
"@octokit/request-error": "^2.1.0",
|
||||
"@octokit/types": "^6.16.1",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/request-error": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz",
|
||||
"integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@octokit/types": "^6.0.3",
|
||||
"deprecation": "^2.0.0",
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/types": {
|
||||
"version": "6.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.27.0.tgz",
|
||||
"integrity": "sha512-ha27f8DToxXBPEJdzHCCuqpw7AgKfjhWGdNf3yIlBAhAsaexBXTfWw36zNSsncALXGvJq4EjLy1p3Wz45Aqb4A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": "^10.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/pluginutils": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz",
|
||||
@@ -1999,6 +1938,15 @@
|
||||
"safe-buffer": "~5.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/cross-fetch": {
|
||||
"version": "3.1.4",
|
||||
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz",
|
||||
"integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"node-fetch": "2.6.1"
|
||||
}
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
@@ -2104,12 +2052,6 @@
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/deprecation": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
|
||||
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/detect-indent": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
|
||||
@@ -2646,6 +2588,18 @@
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/extract-files": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz",
|
||||
"integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^10.17.0 || ^12.0.0 || >= 13.7.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/jaydenseric"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-deep-equal": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||
@@ -2921,6 +2875,30 @@
|
||||
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/graphql": {
|
||||
"version": "15.5.3",
|
||||
"resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz",
|
||||
"integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">= 10.x"
|
||||
}
|
||||
},
|
||||
"node_modules/graphql-request": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.5.0.tgz",
|
||||
"integrity": "sha512-Io89QpfU4rqiMbqM/KwMBzKaDLOppi8FU8sEccCE4JqCgz95W9Q8bvxQ4NfPALLSMvg9nafgg8AkYRmgKSlukA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"cross-fetch": "^3.0.6",
|
||||
"extract-files": "^9.0.0",
|
||||
"form-data": "^3.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"graphql": "14.x || 15.x"
|
||||
}
|
||||
},
|
||||
"node_modules/has": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
||||
@@ -3154,15 +3132,6 @@
|
||||
"node": ">=0.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-plain-object": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
|
||||
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-potential-custom-element-name": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
|
||||
@@ -5519,12 +5488,6 @@
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/universal-user-agent": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
|
||||
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/universalify": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
||||
@@ -6584,68 +6547,6 @@
|
||||
"fastq": "^1.6.0"
|
||||
}
|
||||
},
|
||||
"@octokit/endpoint": {
|
||||
"version": "6.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz",
|
||||
"integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/types": "^6.0.3",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/graphql": {
|
||||
"version": "4.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz",
|
||||
"integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/request": "^5.6.0",
|
||||
"@octokit/types": "^6.0.3",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/openapi-types": {
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-10.1.0.tgz",
|
||||
"integrity": "sha512-Nq5TMBwijRXco+Bm/Rq1n5maxxXsHLwd/Cm3lyNeOxbjyzAOSD0qmr4TwKCD4TN4rHZ7lq/tARuqSv/WJHF7IA==",
|
||||
"dev": true
|
||||
},
|
||||
"@octokit/request": {
|
||||
"version": "5.6.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.1.tgz",
|
||||
"integrity": "sha512-Ls2cfs1OfXaOKzkcxnqw5MR6drMA/zWX/LIS/p8Yjdz7QKTPQLMsB3R+OvoxE6XnXeXEE2X7xe4G4l4X0gRiKQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/endpoint": "^6.0.1",
|
||||
"@octokit/request-error": "^2.1.0",
|
||||
"@octokit/types": "^6.16.1",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/request-error": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz",
|
||||
"integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/types": "^6.0.3",
|
||||
"deprecation": "^2.0.0",
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"@octokit/types": {
|
||||
"version": "6.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.27.0.tgz",
|
||||
"integrity": "sha512-ha27f8DToxXBPEJdzHCCuqpw7AgKfjhWGdNf3yIlBAhAsaexBXTfWw36zNSsncALXGvJq4EjLy1p3Wz45Aqb4A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/openapi-types": "^10.1.0"
|
||||
}
|
||||
},
|
||||
"@rollup/pluginutils": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz",
|
||||
@@ -7334,6 +7235,15 @@
|
||||
"safe-buffer": "~5.1.1"
|
||||
}
|
||||
},
|
||||
"cross-fetch": {
|
||||
"version": "3.1.4",
|
||||
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz",
|
||||
"integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"node-fetch": "2.6.1"
|
||||
}
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
@@ -7418,12 +7328,6 @@
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||
"dev": true
|
||||
},
|
||||
"deprecation": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
|
||||
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
|
||||
"dev": true
|
||||
},
|
||||
"detect-indent": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
|
||||
@@ -7816,6 +7720,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"extract-files": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz",
|
||||
"integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||
@@ -8029,6 +7939,24 @@
|
||||
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
|
||||
"dev": true
|
||||
},
|
||||
"graphql": {
|
||||
"version": "15.5.3",
|
||||
"resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz",
|
||||
"integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"graphql-request": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.5.0.tgz",
|
||||
"integrity": "sha512-Io89QpfU4rqiMbqM/KwMBzKaDLOppi8FU8sEccCE4JqCgz95W9Q8bvxQ4NfPALLSMvg9nafgg8AkYRmgKSlukA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-fetch": "^3.0.6",
|
||||
"extract-files": "^9.0.0",
|
||||
"form-data": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
||||
@@ -8199,12 +8127,6 @@
|
||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||
"dev": true
|
||||
},
|
||||
"is-plain-object": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
|
||||
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
|
||||
"dev": true
|
||||
},
|
||||
"is-potential-custom-element-name": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
|
||||
@@ -9943,12 +9865,6 @@
|
||||
"@types/unist": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"universal-user-agent": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
|
||||
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==",
|
||||
"dev": true
|
||||
},
|
||||
"universalify": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
"test": "jest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@octokit/graphql": "^4.7.0",
|
||||
"@sveltejs/adapter-static": "next",
|
||||
"@sveltejs/kit": "next",
|
||||
"@types/jest": "^27.0.1",
|
||||
@@ -20,6 +19,7 @@
|
||||
"eslint": "^7.22.0",
|
||||
"eslint-config-prettier": "^8.1.0",
|
||||
"eslint-plugin-svelte3": "^3.2.0",
|
||||
"graphql-request": "^3.5.0",
|
||||
"jest": "^27.1.0",
|
||||
"mdsvex": "^0.9.3",
|
||||
"prettier": "~2.2.1",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
import fs from 'fs';
|
||||
import { graphql } from '@octokit/graphql';
|
||||
import { request, gql } from 'graphql-request';
|
||||
import prettier from 'prettier';
|
||||
|
||||
const files = [
|
||||
@@ -20,62 +20,83 @@ if (!process.env.GH_TOKEN) {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const getGithubRepo = ({ url }) => {
|
||||
const match = url.match(/github.com\/([^#/]+)\/([^#/]+)/);
|
||||
const getRepo = ({ url }) => {
|
||||
const match = url.match(/(github.com|gitlab.com)\/([^#/]+)\/([^#/]+)/);
|
||||
if (match) {
|
||||
const [, owner, name] = match;
|
||||
return `${owner}/${name}`;
|
||||
const [, site, owner, name] = match;
|
||||
const id = `${site}/${owner}/${name}`;
|
||||
return { site, owner, name, id };
|
||||
}
|
||||
};
|
||||
|
||||
const repos = files.flatMap(
|
||||
const reposWithDuplicates = files.flatMap(
|
||||
(file) =>
|
||||
JSON.parse(fs.readFileSync(file))
|
||||
.map(getGithubRepo)
|
||||
.map(getRepo)
|
||||
.filter((x) => x) // filter undefined
|
||||
);
|
||||
const repos = getUnique(reposWithDuplicates);
|
||||
|
||||
const uniqueRepos = [...new Set(repos)].map((repo) => {
|
||||
const [owner, name] = repo.split('/');
|
||||
return { owner, name };
|
||||
});
|
||||
const githubRepos = repos.filter((repo) => repo.site === 'github.com');
|
||||
const gitlabRepos = repos.filter((repo) => repo.site === 'gitlab.com');
|
||||
|
||||
const repoQuery = (repo, id) => `
|
||||
r${id}: repository(owner: "${repo.owner}", name: "${repo.name}") {
|
||||
const gitlabRepoQuery = (repo, idx) => `
|
||||
r${idx}: project(fullPath: "${repo.owner}/${repo.name}") {
|
||||
...frag
|
||||
}
|
||||
`;
|
||||
|
||||
const response = await graphql(
|
||||
/* GraphQL */ `
|
||||
{
|
||||
${uniqueRepos.map(repoQuery).join('')}
|
||||
}
|
||||
fragment frag on Repository {
|
||||
owner {
|
||||
login
|
||||
}
|
||||
name
|
||||
stargazerCount
|
||||
}
|
||||
`,
|
||||
const gitlabQuery = gql`
|
||||
{
|
||||
headers: {
|
||||
authorization: `token ${process.env.GH_TOKEN}`
|
||||
}
|
||||
${gitlabRepos.map(gitlabRepoQuery).join('')}
|
||||
}
|
||||
fragment frag on Project {
|
||||
starCount
|
||||
fullPath
|
||||
}
|
||||
`;
|
||||
|
||||
const gitlabResponse = await request('https://gitlab.com/api/graphql', gitlabQuery);
|
||||
|
||||
const ghRepoQuery = (repo, idx) => `
|
||||
r${idx}: repository(owner: "${repo.owner}", name: "${repo.name}") {
|
||||
...frag
|
||||
}
|
||||
`;
|
||||
|
||||
const ghQuery = gql`
|
||||
{
|
||||
${githubRepos.map(ghRepoQuery).join('')}
|
||||
}
|
||||
fragment frag on Repository {
|
||||
resourcePath
|
||||
stargazerCount
|
||||
}
|
||||
`;
|
||||
|
||||
const ghResponse = await request(
|
||||
'https://api.github.com/graphql',
|
||||
ghQuery,
|
||||
{},
|
||||
{ authorization: `token ${process.env.GH_TOKEN}` }
|
||||
);
|
||||
|
||||
const repoData = Object.fromEntries(
|
||||
Object.values(response).map((repo) => [`${repo.owner.login}/${repo.name}`, repo])
|
||||
);
|
||||
const repoData = {};
|
||||
|
||||
for (const repo of Object.values(gitlabResponse)) {
|
||||
repoData[`gitlab.com/${repo.fullPath}`] = { stars: repo.starCount };
|
||||
}
|
||||
|
||||
for (const repo of Object.values(ghResponse)) {
|
||||
repoData[`github.com${repo.resourcePath}`] = { stars: repo.stargazerCount };
|
||||
}
|
||||
|
||||
for (const file of files) {
|
||||
const data = JSON.parse(fs.readFileSync(file));
|
||||
for (const item of data) {
|
||||
const repo = getGithubRepo(item);
|
||||
if (repo && repoData[repo]) {
|
||||
item.stars = repoData[repo].stargazerCount;
|
||||
const repo = getRepo(item);
|
||||
if (repo && repoData[repo.id]) {
|
||||
item.stars = repoData[repo.id].stars;
|
||||
}
|
||||
}
|
||||
prettySave(file, JSON.stringify(data), 'json');
|
||||
@@ -90,3 +111,11 @@ function prettySave(filePath, text, parser = 'babel') {
|
||||
fs.writeFileSync(filePath, formatted);
|
||||
});
|
||||
}
|
||||
|
||||
function getUnique(repos) {
|
||||
const urls = repos.map((repo) => `${repo.site}/${repo.owner}/${repo.name}`);
|
||||
return [...new Set(urls)].map((url) => {
|
||||
const [site, owner, name] = url.split('/');
|
||||
return { site, owner, name };
|
||||
});
|
||||
}
|
||||
|
||||
@@ -37,14 +37,14 @@
|
||||
"npm": "https://www.npmjs.com/package/sswr",
|
||||
"tags": ["components and libraries", "fonts and icons"],
|
||||
"addedOn": "2021-07-29T00:00:00Z",
|
||||
"stars": 57
|
||||
"stars": 59
|
||||
},
|
||||
{
|
||||
"title": "svelte-adapter-firebase",
|
||||
"description": "SvelteKit adapter for Firebase Hosting rewrites to either Cloud Functions or Cloud Run for a Svelte SSR experience",
|
||||
"url": "https://github.com/jthegedus/svelte-adapter-firebase",
|
||||
"npm": "https://www.npmjs.com/package/svelte-adapter-firebase",
|
||||
"stars": 53,
|
||||
"stars": 54,
|
||||
"tags": ["integrations"],
|
||||
"addedOn": "2021-03-31T00:00:00Z",
|
||||
"category": "SvelteKit Adapters"
|
||||
@@ -64,7 +64,7 @@
|
||||
"description": "SvelteKit adapter that generates a standalone Deno server.",
|
||||
"url": "https://github.com/pluvial/svelte-adapter-deno",
|
||||
"npm": "https://www.npmjs.com/package/svelte-adapter-deno",
|
||||
"stars": 25,
|
||||
"stars": 26,
|
||||
"tags": ["integrations"],
|
||||
"addedOn": "2021-07-12T00:00:00Z",
|
||||
"category": "SvelteKit Adapters"
|
||||
@@ -105,7 +105,7 @@
|
||||
"tags": ["components and libraries"],
|
||||
"addedOn": "2021-03-24T01:02:03Z",
|
||||
"category": "Integration",
|
||||
"stars": 492
|
||||
"stars": 497
|
||||
},
|
||||
{
|
||||
"title": "svelte-time-picker",
|
||||
@@ -114,7 +114,8 @@
|
||||
"description": "Time Picker UI for Svelte, inspired by the MaterialUI React Time Picker",
|
||||
"tags": ["components and libraries", "time and date"],
|
||||
"addedOn": "2021-03-04T07:27:00Z",
|
||||
"category": "Forms & User Input"
|
||||
"category": "Forms & User Input",
|
||||
"stars": 1
|
||||
},
|
||||
{
|
||||
"title": "svelte-formula",
|
||||
@@ -131,7 +132,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "A lightweight datepicker with neat animations and a unique UX",
|
||||
"npm": "svelte-calendar",
|
||||
"stars": 329,
|
||||
"stars": 331,
|
||||
"tags": ["components and libraries", "time and date"],
|
||||
"title": "svelte-calendar",
|
||||
"url": "https://github.com/6eDesign/svelte-calendar"
|
||||
@@ -141,7 +142,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "Svelte tags input is a component to use with Svelte and easily enter tags and customize some functions",
|
||||
"npm": "svelte-tags-input",
|
||||
"stars": 147,
|
||||
"stars": 151,
|
||||
"tags": ["components and libraries", "inputs and widgets"],
|
||||
"title": "svelte-tags-input",
|
||||
"url": "https://github.com/agustinl/svelte-tags-input"
|
||||
@@ -151,7 +152,7 @@
|
||||
"category": "Developer Experience",
|
||||
"description": "Generate a JSON documentation for a Svelte component",
|
||||
"npm": "sveltedoc-parser",
|
||||
"stars": 57,
|
||||
"stars": 58,
|
||||
"tags": ["components and libraries", "development and documentation"],
|
||||
"title": "sveltedoc-parser",
|
||||
"url": "https://github.com/alexprey/sveltedoc-parser"
|
||||
@@ -201,7 +202,7 @@
|
||||
"category": "Routers",
|
||||
"description": "Highly declarative, very tiny (~3.8 Kb), dependency free router",
|
||||
"npm": "tinro",
|
||||
"stars": 465,
|
||||
"stars": 468,
|
||||
"tags": ["routers"],
|
||||
"title": "tinro",
|
||||
"url": "https://github.com/AlexxNB/tinro"
|
||||
@@ -231,7 +232,7 @@
|
||||
"category": "",
|
||||
"description": "Component that performs fullscreen in DOM Elements",
|
||||
"npm": "svelte-fullscreen",
|
||||
"stars": 25,
|
||||
"stars": 27,
|
||||
"tags": ["components and libraries", "layout and structure"],
|
||||
"title": "svelte-fullscreen",
|
||||
"url": "https://github.com/andrelmlins/svelte-fullscreen"
|
||||
@@ -251,7 +252,7 @@
|
||||
"category": "",
|
||||
"description": "Infinite Scroll Component to Svelte",
|
||||
"npm": "svelte-infinite-scroll",
|
||||
"stars": 120,
|
||||
"stars": 121,
|
||||
"tags": ["components and libraries"],
|
||||
"title": "svelte-infinite-scroll",
|
||||
"url": "https://github.com/andrelmlins/svelte-infinite-scroll"
|
||||
@@ -261,7 +262,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "Generate dynamic forms for sveltejs, Sveltekit, Routify and Sapper",
|
||||
"npm": "svelte-formly",
|
||||
"stars": 134,
|
||||
"stars": 135,
|
||||
"tags": [
|
||||
"components and libraries",
|
||||
"forms",
|
||||
@@ -277,7 +278,7 @@
|
||||
"category": "Stores",
|
||||
"description": "Svelte store with a websocket backend",
|
||||
"npm": "svelte-websocket-store",
|
||||
"stars": 86,
|
||||
"stars": 91,
|
||||
"tags": ["components and libraries", "stores and state"],
|
||||
"title": "svelte-websocket-store",
|
||||
"url": "https://github.com/arlac77/svelte-websocket-store"
|
||||
@@ -287,7 +288,7 @@
|
||||
"category": "Design System",
|
||||
"description": "Bootstrap 4 components for Svelte",
|
||||
"npm": "sveltestrap",
|
||||
"stars": 689,
|
||||
"stars": 704,
|
||||
"tags": ["components and libraries", "component sets"],
|
||||
"title": "sveltestrap",
|
||||
"url": "https://github.com/bestguy/sveltestrap"
|
||||
@@ -297,7 +298,7 @@
|
||||
"category": "User Interaction",
|
||||
"description": "A GDPR compliant cookie consent banner implementation",
|
||||
"npm": "@beyonk/gdpr-cookie-consent-banner",
|
||||
"stars": 80,
|
||||
"stars": 81,
|
||||
"tags": ["components and libraries", "inputs and widgets"],
|
||||
"title": "@beyonk/gdpr-cookie-consent-banner",
|
||||
"url": "https://github.com/beyonk-adventures/gdpr-cookie-consent-banner"
|
||||
@@ -327,7 +328,7 @@
|
||||
"category": "Integration",
|
||||
"description": "A Facebook pixel module for Svelte / Sapper",
|
||||
"npm": "@beyonk/svelte-facebook-pixel",
|
||||
"stars": 9,
|
||||
"stars": 10,
|
||||
"tags": ["components and libraries", "third party services"],
|
||||
"title": "@beyonk/svelte-facebook-pixel",
|
||||
"url": "https://github.com/beyonk-adventures/svelte-facebook-pixel"
|
||||
@@ -337,7 +338,7 @@
|
||||
"category": "Integration",
|
||||
"description": "Google Analytics tracking module for Svelte / Sapper",
|
||||
"npm": "@beyonk/svelte-google-analytics",
|
||||
"stars": 27,
|
||||
"stars": 28,
|
||||
"tags": ["components and libraries", "third party services"],
|
||||
"title": "@beyonk/svelte-google-analytics",
|
||||
"url": "https://github.com/beyonk-adventures/svelte-google-analytics"
|
||||
@@ -347,7 +348,7 @@
|
||||
"category": "Integration",
|
||||
"description": "Google Maps integration for Svelte",
|
||||
"npm": "@beyonk/svelte-googlemaps",
|
||||
"stars": 42,
|
||||
"stars": 43,
|
||||
"tags": ["components and libraries", "maps"],
|
||||
"title": "@beyonk/svelte-googlemaps",
|
||||
"url": "https://github.com/beyonk-adventures/svelte-googlemaps"
|
||||
@@ -357,7 +358,7 @@
|
||||
"category": "Integration",
|
||||
"description": "Mapbox integration for Svelte",
|
||||
"npm": "@beyonk/svelte-mapbox",
|
||||
"stars": 149,
|
||||
"stars": 150,
|
||||
"tags": ["components and libraries", "maps"],
|
||||
"title": "@beyonk/svelte-mapbox",
|
||||
"url": "https://github.com/beyonk-adventures/svelte-mapbox"
|
||||
@@ -367,7 +368,7 @@
|
||||
"category": "User Interaction",
|
||||
"description": "Svelte toast notifications that can be used in any JS application",
|
||||
"npm": "@beyonk/svelte-notifications",
|
||||
"stars": 195,
|
||||
"stars": 194,
|
||||
"tags": ["components and libraries", "notifications"],
|
||||
"title": "@beyonk/svelte-notifications",
|
||||
"url": "https://github.com/beyonk-adventures/svelte-notifications"
|
||||
@@ -447,7 +448,7 @@
|
||||
"category": "Design System",
|
||||
"description": "Bulma components for Svelte",
|
||||
"npm": "svelma",
|
||||
"stars": 436,
|
||||
"stars": 438,
|
||||
"tags": ["components and libraries", "component sets"],
|
||||
"title": "svelma",
|
||||
"url": "https://github.com/c0bra/svelma"
|
||||
@@ -457,7 +458,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "Svelte forms validation made easy",
|
||||
"npm": "svelte-forms",
|
||||
"stars": 165,
|
||||
"stars": 168,
|
||||
"tags": ["components and libraries", "forms and validation"],
|
||||
"title": "svelte-forms",
|
||||
"url": "https://github.com/chainlist/svelte-forms"
|
||||
@@ -477,7 +478,7 @@
|
||||
"category": "User Interaction",
|
||||
"description": "A Svelte component to hide your header on scroll",
|
||||
"npm": "svelte-headroom",
|
||||
"stars": 59,
|
||||
"stars": 60,
|
||||
"tags": ["components and libraries", "layout and structure"],
|
||||
"title": "svelte-headroom",
|
||||
"url": "https://github.com/collardeau/svelte-headroom"
|
||||
@@ -487,7 +488,7 @@
|
||||
"category": "",
|
||||
"description": "Tiny FontAwesome 5 component for Svelte",
|
||||
"npm": "svelte-fa",
|
||||
"stars": 148,
|
||||
"stars": 151,
|
||||
"tags": ["components and libraries", "fonts and icons"],
|
||||
"title": "svelte-fa",
|
||||
"url": "https://github.com/Cweili/svelte-fa"
|
||||
@@ -507,7 +508,7 @@
|
||||
"category": "User Interaction",
|
||||
"description": "Component for moveable, draggable, resizable, scalable, rotatable, and more",
|
||||
"npm": "svelte-moveable",
|
||||
"stars": 6087,
|
||||
"stars": 6111,
|
||||
"tags": ["components and libraries", "interactions"],
|
||||
"title": "svelte-moveable",
|
||||
"url": "https://github.com/daybrush/moveable/tree/master/packages/svelte-moveable"
|
||||
@@ -577,7 +578,7 @@
|
||||
"category": "Routers",
|
||||
"description": "A declarative Svelte routing library with SSR support",
|
||||
"npm": "svelte-routing",
|
||||
"stars": 1446,
|
||||
"stars": 1456,
|
||||
"tags": ["routers"],
|
||||
"title": "svelte-routing",
|
||||
"url": "https://github.com/EmilTholin/svelte-routing"
|
||||
@@ -587,7 +588,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "A rate component for Svelte apps",
|
||||
"npm": "svelte-rate-it",
|
||||
"stars": 35,
|
||||
"stars": 36,
|
||||
"tags": ["components and libraries", "inputs and widgets"],
|
||||
"title": "svelte-rate-it",
|
||||
"url": "https://github.com/emrekara37/svelte-rate-it"
|
||||
@@ -597,7 +598,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "A user interface for inputting date ranges",
|
||||
"npm": "@equipmentshare/date-range-input",
|
||||
"stars": 13,
|
||||
"stars": 14,
|
||||
"tags": ["components and libraries", "time and date"],
|
||||
"title": "@equipmentshare/date-range-input",
|
||||
"url": "https://github.com/EquipmentShare/date-range-input"
|
||||
@@ -627,7 +628,7 @@
|
||||
"category": "User Interaction",
|
||||
"description": "A simple, small, and content-agnostic modal for Svelte",
|
||||
"npm": "svelte-simple-modal",
|
||||
"stars": 187,
|
||||
"stars": 190,
|
||||
"tags": ["components and libraries", "layout and structure"],
|
||||
"title": "svelte-simple-modal",
|
||||
"url": "https://github.com/flekschas/svelte-simple-modal"
|
||||
@@ -639,7 +640,7 @@
|
||||
"tags": ["components and libraries", "stores and state", "graphql"],
|
||||
"title": "@urql/svelte",
|
||||
"url": "https://github.com/FormidableLabs/urql/tree/master/packages/svelte-urql",
|
||||
"stars": 6285
|
||||
"stars": 6318
|
||||
},
|
||||
{
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
@@ -656,7 +657,7 @@
|
||||
"category": "Integration",
|
||||
"description": "Svelte controlling native components via Nativescript",
|
||||
"npm": "svelte-native",
|
||||
"stars": 954,
|
||||
"stars": 963,
|
||||
"tags": ["native"],
|
||||
"title": "svelte-native",
|
||||
"url": "https://github.com/halfnelson/svelte-native"
|
||||
@@ -666,7 +667,7 @@
|
||||
"category": "",
|
||||
"description": "A simple and reusable typewriter effect for your Svelte applications",
|
||||
"npm": "svelte-typewriter",
|
||||
"stars": 123,
|
||||
"stars": 124,
|
||||
"tags": ["components and libraries"],
|
||||
"title": "svelte-typewriter",
|
||||
"url": "https://github.com/henriquehbr/svelte-typewriter"
|
||||
@@ -686,7 +687,7 @@
|
||||
"category": "",
|
||||
"description": "A simple and reusable flexbox component for Svelte",
|
||||
"npm": "svelte-flex",
|
||||
"stars": 40,
|
||||
"stars": 41,
|
||||
"tags": ["components and libraries", "layout and structure"],
|
||||
"title": "svelte-flex",
|
||||
"url": "https://github.com/himynameisdave/svelte-flex"
|
||||
@@ -696,7 +697,7 @@
|
||||
"category": "Data Visualisation",
|
||||
"description": "Svelte bindings for frappe-charts.",
|
||||
"npm": "svelte-frappe-charts",
|
||||
"stars": 152,
|
||||
"stars": 154,
|
||||
"tags": ["charts", "components and libraries"],
|
||||
"title": "svelte-frappe-charts",
|
||||
"url": "https://github.com/himynameisdave/svelte-frappe-charts"
|
||||
@@ -706,7 +707,7 @@
|
||||
"category": "Design System",
|
||||
"description": "Easy-to-use, Customizable Material Design components for Svelte",
|
||||
"npm": "svmd",
|
||||
"stars": 8,
|
||||
"stars": 7,
|
||||
"tags": ["components and libraries", "component sets"],
|
||||
"title": "svmd",
|
||||
"url": "https://github.com/hkh12/svmd"
|
||||
@@ -716,7 +717,7 @@
|
||||
"category": "Design System",
|
||||
"description": "Svelte Material UI Components",
|
||||
"npm": "svelte-material-ui",
|
||||
"stars": 1842,
|
||||
"stars": 1857,
|
||||
"tags": ["components and libraries", "component sets"],
|
||||
"title": "svelte-material-ui",
|
||||
"url": "https://github.com/hperrin/svelte-material-ui"
|
||||
@@ -736,7 +737,7 @@
|
||||
"category": "Design System",
|
||||
"description": "A pretty cool UI kit for Svelte",
|
||||
"npm": "attractions",
|
||||
"stars": 347,
|
||||
"stars": 353,
|
||||
"tags": ["components and libraries"],
|
||||
"title": "attractions",
|
||||
"url": "https://github.com/illright/attractions"
|
||||
@@ -746,7 +747,7 @@
|
||||
"category": "Routers",
|
||||
"description": "Router for SPAs using Svelte 3",
|
||||
"npm": "svelte-spa-router",
|
||||
"stars": 886,
|
||||
"stars": 896,
|
||||
"tags": ["routers"],
|
||||
"title": "svelte-spa-router",
|
||||
"url": "https://github.com/ItalyPaleAle/svelte-spa-router"
|
||||
@@ -776,7 +777,7 @@
|
||||
"category": "Routers",
|
||||
"description": "Svelte router using a store and components",
|
||||
"npm": "@jamen/svelte-router",
|
||||
"stars": 8,
|
||||
"stars": 7,
|
||||
"tags": ["routers"],
|
||||
"title": "@jamen/svelte-router",
|
||||
"url": "https://github.com/jamen/svelte-router"
|
||||
@@ -826,7 +827,7 @@
|
||||
"category": "Data Visualisation",
|
||||
"description": "A simple tool for comparing two images.",
|
||||
"npm": "svelte-compare-image-slider",
|
||||
"stars": 10,
|
||||
"stars": 11,
|
||||
"tags": ["components and libraries", "images"],
|
||||
"title": "svelte-compare-image-slider",
|
||||
"url": "https://github.com/johnwalley/compare-image-slider"
|
||||
@@ -836,7 +837,7 @@
|
||||
"category": "Routers",
|
||||
"description": "Svelte router specially designed for Single Page Applications (SPA)",
|
||||
"npm": "svelte-router-spa",
|
||||
"stars": 361,
|
||||
"stars": 362,
|
||||
"tags": ["routers"],
|
||||
"title": "svelte-router-spa",
|
||||
"url": "https://github.com/jorgegorka/svelte-router"
|
||||
@@ -856,7 +857,7 @@
|
||||
"category": "",
|
||||
"description": "Internationalization library for Svelte",
|
||||
"npm": "svelte-i18n",
|
||||
"stars": 570,
|
||||
"stars": 576,
|
||||
"tags": ["components and libraries", "internationalization"],
|
||||
"title": "svelte-i18n",
|
||||
"url": "https://github.com/kaisermann/svelte-i18n"
|
||||
@@ -896,7 +897,7 @@
|
||||
"category": "User Interaction",
|
||||
"description": "Simple and flexible notifications system",
|
||||
"npm": "svelte-notifications",
|
||||
"stars": 284,
|
||||
"stars": 287,
|
||||
"tags": ["components and libraries", "notifications"],
|
||||
"title": "svelte-notifications",
|
||||
"url": "https://github.com/keenethics/svelte-notifications"
|
||||
@@ -956,7 +957,7 @@
|
||||
"category": "Testing",
|
||||
"description": "A Jest transformer for Svelte - compile your components before importing them into tests.",
|
||||
"npm": "svelte-jester",
|
||||
"stars": 87,
|
||||
"stars": 88,
|
||||
"tags": ["testing"],
|
||||
"title": "svelte-jester",
|
||||
"url": "https://github.com/mihar-22/svelte-jester"
|
||||
@@ -986,7 +987,7 @@
|
||||
"category": "Integration",
|
||||
"description": "Lottie player component for use with Svelte for viewing Lottie animations.",
|
||||
"npm": "@lottiefiles/svelte-lottie-player",
|
||||
"stars": 65,
|
||||
"stars": 66,
|
||||
"tags": ["components and libraries"],
|
||||
"title": "@lottiefiles/svelte-lottie-player",
|
||||
"url": "https://github.com/LottieFiles/svelte-lottie-player"
|
||||
@@ -996,7 +997,7 @@
|
||||
"category": "Developer Experience",
|
||||
"description": "Universal PWA Builder (WIP)",
|
||||
"npm": "@pwa/cli",
|
||||
"stars": 3049,
|
||||
"stars": 3050,
|
||||
"tags": ["integrations", "cli tools"],
|
||||
"title": "@pwa/cli",
|
||||
"url": "https://github.com/lukeed/pwa"
|
||||
@@ -1016,7 +1017,7 @@
|
||||
"category": "",
|
||||
"description": "A Svelte component that monitors an element enters or leaves the viewport.🔥",
|
||||
"npm": "svelte-inview",
|
||||
"stars": 73,
|
||||
"stars": 76,
|
||||
"tags": ["components and libraries", "async loading", "intersection observer", "viewport"],
|
||||
"title": "svelte-inview",
|
||||
"url": "https://github.com/maciekgrzybek/svelte-inview"
|
||||
@@ -1026,7 +1027,7 @@
|
||||
"category": "Design System",
|
||||
"description": "Material design components for Svelte using Tailwind CSS",
|
||||
"npm": "smelte",
|
||||
"stars": 1049,
|
||||
"stars": 1057,
|
||||
"tags": ["components and libraries", "component sets"],
|
||||
"title": "smelte",
|
||||
"url": "https://github.com/matyunya/smelte"
|
||||
@@ -1066,7 +1067,7 @@
|
||||
"category": "Routers",
|
||||
"description": "Simple, declarative routing for single page apps built with Svelte",
|
||||
"npm": "svelte-navigator",
|
||||
"stars": 199,
|
||||
"stars": 203,
|
||||
"tags": ["routers"],
|
||||
"title": "svelte-navigator",
|
||||
"url": "https://github.com/mefechoel/svelte-navigator"
|
||||
@@ -1103,7 +1104,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "",
|
||||
"description": "compile time eval for svelte components",
|
||||
"stars": 2,
|
||||
"stars": 3,
|
||||
"tags": ["preprocessors", "ssr"],
|
||||
"title": "svelte-preval",
|
||||
"url": "https://github.com/milahu/svelte-preval"
|
||||
@@ -1116,14 +1117,14 @@
|
||||
"tags": ["components and libraries", "layout and structure"],
|
||||
"title": "@egjs/svelte-infinitegrid",
|
||||
"url": "https://github.com/naver/egjs-infinitegrid/blob/master/packages/svelte-infinitegrid",
|
||||
"stars": 867
|
||||
"stars": 875
|
||||
},
|
||||
{
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "User Interaction",
|
||||
"description": "Svelte Component that tracks a users progress through a page as they scroll",
|
||||
"npm": "svelte-page-progress",
|
||||
"stars": 12,
|
||||
"stars": 13,
|
||||
"tags": ["intersection observer", "viewport", "components and libraries"],
|
||||
"title": "svelte-page-progress",
|
||||
"url": "https://github.com/NomanGul/svelte-page-progress"
|
||||
@@ -1143,7 +1144,7 @@
|
||||
"category": "",
|
||||
"description": "Internationalize your Svelte apps using format-message and Intl object",
|
||||
"npm": "svelte-intl",
|
||||
"stars": 38,
|
||||
"stars": 40,
|
||||
"tags": ["components and libraries", "internationalization"],
|
||||
"title": "svelte-intl",
|
||||
"url": "https://github.com/Panya/svelte-intl"
|
||||
@@ -1152,7 +1153,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Forms & User Input",
|
||||
"description": "Style it your way UI components with dynamic Form Builder.",
|
||||
"stars": 24,
|
||||
"stars": 25,
|
||||
"tags": [
|
||||
"components and libraries",
|
||||
"templates",
|
||||
@@ -1180,7 +1181,7 @@
|
||||
"category": "Routers",
|
||||
"description": "Basic router with queryParams and hash-based routing support",
|
||||
"npm": "yrv",
|
||||
"stars": 158,
|
||||
"stars": 157,
|
||||
"tags": ["routers"],
|
||||
"title": "yrv",
|
||||
"url": "https://github.com/pateketrueke/yrv"
|
||||
@@ -1200,7 +1201,7 @@
|
||||
"category": "",
|
||||
"description": "SVG placeholder components for loading content",
|
||||
"npm": "svelte-content-loader",
|
||||
"stars": 117,
|
||||
"stars": 118,
|
||||
"tags": ["components and libraries", "async loading"],
|
||||
"title": "svelte-content-loader",
|
||||
"url": "https://github.com/PaulMaly/svelte-content-loader"
|
||||
@@ -1220,7 +1221,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "IMask input component and action for Svelte 3.",
|
||||
"npm": "svelte-imask",
|
||||
"stars": 51,
|
||||
"stars": 52,
|
||||
"tags": ["components and libraries", "inputs and widgets"],
|
||||
"title": "svelte-imask",
|
||||
"url": "https://github.com/PaulMaly/svelte-imask"
|
||||
@@ -1329,7 +1330,7 @@
|
||||
"category": "",
|
||||
"description": "A markdown preprocessor for Svelte",
|
||||
"npm": "mdsvex",
|
||||
"stars": 855,
|
||||
"stars": 862,
|
||||
"tags": ["integrations", "preprocessors"],
|
||||
"title": "mdsvex",
|
||||
"url": "https://github.com/pngwn/MDsveX"
|
||||
@@ -1368,7 +1369,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Forms & User Input",
|
||||
"description": "Simple autocomplete / typeahead component for Svelte",
|
||||
"stars": 162,
|
||||
"stars": 165,
|
||||
"tags": ["components and libraries", "inputs and widgets"],
|
||||
"title": "Simple Svelte Autocomplete",
|
||||
"url": "https://github.com/pstanoev/simple-svelte-autocomplete"
|
||||
@@ -1378,7 +1379,7 @@
|
||||
"category": "Routers",
|
||||
"description": "Simple Svelte 3 hash based router with global routes",
|
||||
"npm": "svelte-hash-router",
|
||||
"stars": 34,
|
||||
"stars": 35,
|
||||
"tags": ["routers"],
|
||||
"title": "svelte-hash-router",
|
||||
"url": "https://github.com/pynnl/svelte-hash-router"
|
||||
@@ -1398,7 +1399,7 @@
|
||||
"category": "Developer Experience",
|
||||
"description": "Development helper for inspecting and opening Svelte components in your editor",
|
||||
"npm": "svelte-inspector",
|
||||
"stars": 58,
|
||||
"stars": 60,
|
||||
"tags": ["components and libraries", "development and documentation"],
|
||||
"title": "svelte-inspector",
|
||||
"url": "https://github.com/qutran/svelte-inspector"
|
||||
@@ -1428,7 +1429,7 @@
|
||||
"category": "Data Visualisation",
|
||||
"description": "Experimental charting library for Svelte",
|
||||
"npm": "@sveltejs/pancake",
|
||||
"stars": 831,
|
||||
"stars": 837,
|
||||
"tags": ["components and libraries", "charts"],
|
||||
"title": "@sveltejs/pancake",
|
||||
"url": "https://github.com/Rich-Harris/pancake"
|
||||
@@ -1438,7 +1439,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "A select component for Svelte apps",
|
||||
"npm": "svelte-select",
|
||||
"stars": 541,
|
||||
"stars": 547,
|
||||
"tags": ["components and libraries", "inputs and widgets"],
|
||||
"title": "svelte-select",
|
||||
"url": "https://github.com/rob-balfre/svelte-select"
|
||||
@@ -1448,7 +1449,7 @@
|
||||
"category": "",
|
||||
"description": "Awesome SVG icon component for Svelte JS, built with Font Awesome icons",
|
||||
"npm": "svelte-awesome",
|
||||
"stars": 224,
|
||||
"stars": 229,
|
||||
"tags": ["components and libraries", "fonts and icons"],
|
||||
"title": "svelte-awesome",
|
||||
"url": "https://github.com/RobBrazier/svelte-awesome"
|
||||
@@ -1488,7 +1489,7 @@
|
||||
"category": "Data Visualisation",
|
||||
"description": "Customizable version of GitHub's contribution graph",
|
||||
"npm": "svelte-heatmap",
|
||||
"stars": 88,
|
||||
"stars": 89,
|
||||
"tags": ["components and libraries", "time and date"],
|
||||
"title": "svelte-heatmap",
|
||||
"url": "https://github.com/scottbedard/svelte-heatmap"
|
||||
@@ -1498,7 +1499,7 @@
|
||||
"category": "User Interaction",
|
||||
"description": "A carousel with touch support",
|
||||
"npm": "svelte-swipe",
|
||||
"stars": 188,
|
||||
"stars": 191,
|
||||
"tags": ["components and libraries", "layout and structure"],
|
||||
"title": "svelte-swipe",
|
||||
"url": "https://github.com/SharifClick/svelte-swipe"
|
||||
@@ -1528,7 +1529,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "Range Slider Input, with Multi-handle and Pips features",
|
||||
"npm": "svelte-range-slider-pips",
|
||||
"stars": 90,
|
||||
"stars": 93,
|
||||
"tags": [
|
||||
"components and libraries",
|
||||
"inputs and widgets",
|
||||
@@ -1543,7 +1544,7 @@
|
||||
"category": "",
|
||||
"description": "An infinite scroll component for Svelte apps",
|
||||
"npm": "svelte-infinite-loading",
|
||||
"stars": 89,
|
||||
"stars": 90,
|
||||
"tags": ["components and libraries"],
|
||||
"title": "svelte-infinite-loading",
|
||||
"url": "https://github.com/Skayo/svelte-infinite-loading"
|
||||
@@ -1573,7 +1574,7 @@
|
||||
"category": "Routers",
|
||||
"description": "Simple Svelte Router for Single Page Applications (SPA)",
|
||||
"npm": "@spaceavocado/svelte-router",
|
||||
"stars": 53,
|
||||
"stars": 54,
|
||||
"tags": ["routers"],
|
||||
"title": "@spaceavocado/svelte-router",
|
||||
"url": "https://github.com/spaceavocado/svelte-router"
|
||||
@@ -1602,7 +1603,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Testing",
|
||||
"description": "UI component dev & test",
|
||||
"stars": 64353,
|
||||
"stars": 64520,
|
||||
"tags": ["testing"],
|
||||
"title": "storybookjs",
|
||||
"url": "https://github.com/storybookjs/storybook"
|
||||
@@ -1642,7 +1643,7 @@
|
||||
"category": "",
|
||||
"description": "A (very experimental) project to bring WebGL to Svelte",
|
||||
"npm": "@sveltejs/gl",
|
||||
"stars": 501,
|
||||
"stars": 503,
|
||||
"tags": ["webgl"],
|
||||
"title": "@sveltejs/gl",
|
||||
"url": "https://github.com/sveltejs/gl"
|
||||
@@ -1652,7 +1653,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "The `<Repl>` component used on the Svelte website",
|
||||
"npm": "@sveltejs/svelte-repl",
|
||||
"stars": 239,
|
||||
"stars": 242,
|
||||
"tags": ["components and libraries", "inputs and widgets"],
|
||||
"title": "@sveltejs/svelte-repl",
|
||||
"url": "https://github.com/sveltejs/svelte-repl"
|
||||
@@ -1662,7 +1663,7 @@
|
||||
"category": "",
|
||||
"description": "A `<Scroller>` component for Svelte apps",
|
||||
"npm": "@sveltejs/svelte-scroller",
|
||||
"stars": 193,
|
||||
"stars": 195,
|
||||
"tags": ["components and libraries", "layout and structure"],
|
||||
"title": "@sveltejs/svelte-scroller",
|
||||
"url": "https://github.com/sveltejs/svelte-scroller"
|
||||
@@ -1682,7 +1683,7 @@
|
||||
"category": "Design Pattern",
|
||||
"description": "A virtual list component for Svelte apps",
|
||||
"npm": "@sveltejs/svelte-virtual-list",
|
||||
"stars": 434,
|
||||
"stars": 436,
|
||||
"tags": ["components and libraries", "layout and structure"],
|
||||
"title": "@sveltejs/svelte-virtual-list",
|
||||
"url": "https://github.com/sveltejs/svelte-virtual-list"
|
||||
@@ -1692,7 +1693,7 @@
|
||||
"category": "Routers",
|
||||
"description": "abstract-state-router renderer for Svelte",
|
||||
"npm": "svelte-state-renderer",
|
||||
"stars": 31,
|
||||
"stars": 32,
|
||||
"tags": ["routers"],
|
||||
"title": "svelte-state-renderer",
|
||||
"url": "https://github.com/TehShrike/svelte-state-renderer"
|
||||
@@ -1702,7 +1703,7 @@
|
||||
"category": "Testing",
|
||||
"description": "Simple and complete DOM testing utilities that encourage good practices",
|
||||
"npm": "@testing-library/svelte",
|
||||
"stars": 423,
|
||||
"stars": 424,
|
||||
"tags": ["testing"],
|
||||
"title": "@testing-library/svelte",
|
||||
"url": "https://github.com/testing-library/svelte-testing-library"
|
||||
@@ -1712,7 +1713,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "Svelte component for file upload and file dropzone.",
|
||||
"npm": "svelte-file-dropzone",
|
||||
"stars": 65,
|
||||
"stars": 67,
|
||||
"tags": ["components and libraries", "inputs and widgets"],
|
||||
"title": "svelte-file-dropzone",
|
||||
"url": "https://github.com/thecodejack/svelte-file-dropzone"
|
||||
@@ -1722,7 +1723,7 @@
|
||||
"category": "Integration",
|
||||
"description": "Svelte integration for Apollo GraphQL",
|
||||
"npm": "svelte-apollo",
|
||||
"stars": 721,
|
||||
"stars": 730,
|
||||
"tags": ["components and libraries", "stores and state"],
|
||||
"title": "svelte-apollo",
|
||||
"url": "https://github.com/timhall/svelte-apollo"
|
||||
@@ -1752,7 +1753,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "A lightweight library for managing forms in Svelte",
|
||||
"npm": "svelte-forms-lib",
|
||||
"stars": 312,
|
||||
"stars": 319,
|
||||
"tags": ["components and libraries", "forms and validation"],
|
||||
"title": "svelte-forms-lib",
|
||||
"url": "https://github.com/tjinauyeung/svelte-forms-lib"
|
||||
@@ -1762,7 +1763,7 @@
|
||||
"category": "User Interaction",
|
||||
"description": "A responsive, draggable and resizable grid layout, for Svelte",
|
||||
"npm": "svelte-grid",
|
||||
"stars": 553,
|
||||
"stars": 558,
|
||||
"tags": ["components and libraries", "layout and structure"],
|
||||
"title": "svelte-grid",
|
||||
"url": "https://github.com/vaheqelyan/svelte-grid"
|
||||
@@ -1792,7 +1793,7 @@
|
||||
"category": "Design System",
|
||||
"description": "A set of Svelte UI components inspired by Google's Material Design",
|
||||
"npm": "svelte-mui",
|
||||
"stars": 246,
|
||||
"stars": 247,
|
||||
"tags": ["components and libraries", "component sets"],
|
||||
"title": "svelte-mui",
|
||||
"url": "https://github.com/vikignt/svelte-mui"
|
||||
@@ -1801,7 +1802,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "",
|
||||
"description": "Focused on making embedding and using media elements for the web simple.",
|
||||
"stars": 1725,
|
||||
"stars": 1732,
|
||||
"tags": ["video", "audio", "components and libraries", "inputs and widgets"],
|
||||
"title": "Vime",
|
||||
"url": "https://github.com/vime-js/vime"
|
||||
@@ -1811,7 +1812,7 @@
|
||||
"category": "",
|
||||
"description": "🔌 Simple Svelte component to detect offline & online changes.",
|
||||
"npm": "s-offline",
|
||||
"stars": 22,
|
||||
"stars": 23,
|
||||
"tags": ["offline and online detection", "network events"],
|
||||
"title": "s-offline",
|
||||
"url": "https://github.com/vinayakkulkarni/s-offline"
|
||||
@@ -1861,7 +1862,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "Input masking component for Svelte (credit cards, phones, dates, numbers, etc.)",
|
||||
"npm": "svelte-input-mask",
|
||||
"stars": 69,
|
||||
"stars": 70,
|
||||
"tags": ["components and libraries", "inputs and widgets"],
|
||||
"title": "svelte-input-mask",
|
||||
"url": "https://github.com/xnimorz/svelte-input-mask"
|
||||
@@ -1871,7 +1872,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "Easily customizable library for validation scenarios in svelte components.",
|
||||
"npm": "svelidation",
|
||||
"stars": 46,
|
||||
"stars": 47,
|
||||
"tags": ["components and libraries", "forms and validation"],
|
||||
"title": "svelidation",
|
||||
"url": "https://github.com/yazonnile/svelidation"
|
||||
@@ -1881,7 +1882,7 @@
|
||||
"category": "Forms & User Input",
|
||||
"description": "A Svelte component wrapper around FullCalendar.",
|
||||
"npm": "svelte-fullcalendar",
|
||||
"stars": 83,
|
||||
"stars": 84,
|
||||
"tags": ["components and libraries", "time and date"],
|
||||
"title": "svelte-fullcalendar",
|
||||
"url": "https://github.com/YogliB/svelte-fullcalendar"
|
||||
@@ -1911,7 +1912,7 @@
|
||||
"category": "Design System",
|
||||
"description": "Svelte UI kit based on Atol design",
|
||||
"npm": "svelte-atoms",
|
||||
"stars": 10,
|
||||
"stars": 13,
|
||||
"tags": ["components and libraries", "component sets"],
|
||||
"title": "svelte-atoms",
|
||||
"url": "https://gitlab.com/az67128/svelte-atoms"
|
||||
@@ -1931,7 +1932,7 @@
|
||||
"category": "",
|
||||
"description": "A tiny but mighty list virtualization library for Svelte, with zero dependencies - Supports variable heights/widths, sticky items, scrolling to index, and more!",
|
||||
"npm": "svelte-tiny-virtual-list",
|
||||
"stars": 117,
|
||||
"stars": 118,
|
||||
"tags": ["components and libraries"],
|
||||
"title": "svelte-tiny-virtual-list",
|
||||
"url": "https://github.com/Skayo/svelte-tiny-virtual-list"
|
||||
@@ -1991,7 +1992,7 @@
|
||||
"category": "Integration",
|
||||
"description": "Use Appwrite in Svelte components",
|
||||
"npm": "svelte-appwrite",
|
||||
"stars": 41,
|
||||
"stars": 43,
|
||||
"tags": ["components and libraries", "component sets"],
|
||||
"title": "svelte-appwrite",
|
||||
"url": "https://github.com/appwrite/sdk-for-svelte"
|
||||
@@ -2001,7 +2002,7 @@
|
||||
"category": "",
|
||||
"description": "svelte-pdf provides a component for rendering PDF documents using PDF.js",
|
||||
"npm": "svelte-pdf",
|
||||
"stars": 67,
|
||||
"stars": 68,
|
||||
"tags": ["components and libraries", "pdf"],
|
||||
"title": "svelte-pdf",
|
||||
"url": "https://github.com/vinodnimbalkar/svelte-pdf"
|
||||
@@ -2011,7 +2012,7 @@
|
||||
"category": "Routers",
|
||||
"description": "Light & reactive one-component router for Svelte",
|
||||
"npm": "svelte-micro",
|
||||
"stars": 55,
|
||||
"stars": 62,
|
||||
"tags": ["routers"],
|
||||
"title": "svelte-micro",
|
||||
"url": "https://github.com/ayndqy/svelte-micro"
|
||||
@@ -2041,7 +2042,7 @@
|
||||
"category": "User Interaction",
|
||||
"description": "A collection of renderless/headless components for Svelte",
|
||||
"npm": "renderless-svelte",
|
||||
"stars": 163,
|
||||
"stars": 165,
|
||||
"tags": ["components and libraries", "component sets"],
|
||||
"title": "Renderless Svelte",
|
||||
"url": "https://github.com/stephane-vanraes/renderless-svelte"
|
||||
@@ -2064,7 +2065,7 @@
|
||||
"tags": ["components and libraries", "stores and state"],
|
||||
"title": "@sveltestack/svelte-query",
|
||||
"url": "https://github.com/SvelteStack/svelte-query",
|
||||
"stars": 343
|
||||
"stars": 350
|
||||
},
|
||||
{
|
||||
"title": "svelte-parallax",
|
||||
@@ -2089,7 +2090,7 @@
|
||||
"category": "Stores",
|
||||
"description": "A (high order) store that keep its value through pages and reloads",
|
||||
"npm": "@macfja/svelte-persistent-store",
|
||||
"stars": 58,
|
||||
"stars": 61,
|
||||
"tags": ["stores and state"],
|
||||
"title": "Persistent Store",
|
||||
"url": "https://github.com/MacFJA/svelte-persistent-store"
|
||||
@@ -2119,7 +2120,7 @@
|
||||
"category": "Stores",
|
||||
"description": "Immutable store for Svelte with full Typescript support and Redux Devtools integration",
|
||||
"npm": "svelte-restate",
|
||||
"stars": 8,
|
||||
"stars": 9,
|
||||
"tags": ["stores and state"],
|
||||
"title": "Svelte Restate",
|
||||
"url": "https://github.com/endenwer/svelte-restate"
|
||||
@@ -2129,7 +2130,7 @@
|
||||
"category": "User Interaction",
|
||||
"description": "Declarative pincode component for Svelte",
|
||||
"npm": "svelte-pincode",
|
||||
"stars": 3,
|
||||
"stars": 4,
|
||||
"tags": ["component sets", "components and libraries"],
|
||||
"title": "svelte-pincode",
|
||||
"url": "https://github.com/metonym/svelte-pincode"
|
||||
@@ -2139,7 +2140,7 @@
|
||||
"category": "Animations",
|
||||
"description": "Official tsParticles Svelte Component - Easily create highly customizable particle animations and use them as animated backgrounds for your website.",
|
||||
"npm": "svelte-particles",
|
||||
"stars": 2245,
|
||||
"stars": 2281,
|
||||
"tags": ["components and libraries", "component sets", "typescript", "animations"],
|
||||
"title": "svelte-particles",
|
||||
"url": "https://github.com/matteobruni/tsparticles"
|
||||
@@ -2149,7 +2150,7 @@
|
||||
"category": "Rich Text Editor",
|
||||
"description": "Svelte components for tiptap v2",
|
||||
"npm": "svelte-tiptap",
|
||||
"stars": 6,
|
||||
"stars": 8,
|
||||
"tags": ["components and libraries", "rich text editor"],
|
||||
"title": "svelte-tiptap",
|
||||
"url": "https://github.com/sibiraj-s/svelte-tiptap"
|
||||
@@ -2171,7 +2172,7 @@
|
||||
"description": "Full-sized drag & drop event calendar with resource view",
|
||||
"image": "",
|
||||
"npm": "@event-calendar/core",
|
||||
"stars": 39,
|
||||
"stars": 41,
|
||||
"tags": ["components and libraries", "time and date"],
|
||||
"title": "Event Calendar",
|
||||
"url": "https://github.com/vkurko/calendar"
|
||||
@@ -2181,7 +2182,7 @@
|
||||
"category": "Design System",
|
||||
"description": "Straight-forward Svelte UI, made with Windi CSS",
|
||||
"npm": "@kahi-ui/framework",
|
||||
"stars": 44,
|
||||
"stars": 51,
|
||||
"tags": ["components and libraries"],
|
||||
"title": "Kahi UI",
|
||||
"url": "https://github.com/novacbn/kahi-ui"
|
||||
@@ -2208,6 +2209,7 @@
|
||||
],
|
||||
"image": "",
|
||||
"addedOn": "2021-09-07T10:00:00Z",
|
||||
"category": "Forms & User Input"
|
||||
"category": "Forms & User Input",
|
||||
"stars": 4
|
||||
}
|
||||
]
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Svelte",
|
||||
"description": "A truffle box for Svelte, a seed for building an Ethereum dapp using Truffle",
|
||||
"stars": 47,
|
||||
"stars": 48,
|
||||
"tags": [],
|
||||
"title": "antony/svelte-box",
|
||||
"url": "https://github.com/antony/svelte-box"
|
||||
@@ -57,7 +57,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Svelte",
|
||||
"description": "Electron Svelte boilerplate",
|
||||
"stars": 46,
|
||||
"stars": 47,
|
||||
"tags": ["electron"],
|
||||
"title": "Blade67/Sveltron",
|
||||
"url": "https://github.com/Blade67/Sveltron"
|
||||
@@ -219,7 +219,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Svelte",
|
||||
"description": "Tailwindcss v1 + Svelte v3 = <3",
|
||||
"stars": 107,
|
||||
"stars": 106,
|
||||
"tags": [],
|
||||
"title": "marcograhl/tailwindcss-svelte-starter",
|
||||
"url": "https://github.com/marcograhl/tailwindcss-svelte-starter"
|
||||
@@ -327,7 +327,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Svelte",
|
||||
"description": "Svelte application boilerplate with Webpack, Sass, BabelJS, Fetch, PostCSS, Jest, and .Env",
|
||||
"stars": 239,
|
||||
"stars": 240,
|
||||
"tags": [],
|
||||
"title": "pankod/svelte-boilerplate",
|
||||
"url": "https://github.com/pankod/svelte-boilerplate"
|
||||
@@ -400,7 +400,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Svelte",
|
||||
"description": "Clone of official Svelte template with added HMR support using Nollup",
|
||||
"stars": 59,
|
||||
"stars": 60,
|
||||
"tags": [],
|
||||
"title": "rixo/svelte-template-hot",
|
||||
"url": "https://github.com/rixo/svelte-template-hot"
|
||||
@@ -410,7 +410,7 @@
|
||||
"category": "Svelte",
|
||||
"description": "Yeoman generator generating a boilerplate Svelte.js app with all of svelte-preprocess' options",
|
||||
"npm": "generator-svelte",
|
||||
"stars": 24,
|
||||
"stars": 25,
|
||||
"tags": ["preprocessors"],
|
||||
"title": "generator-svelte",
|
||||
"url": "https://github.com/Samuel-Martineau/generator-svelte"
|
||||
@@ -464,7 +464,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Svelte",
|
||||
"description": "A base for building shareable Svelte components",
|
||||
"stars": 435,
|
||||
"stars": 439,
|
||||
"tags": [],
|
||||
"title": "sveltejs/component-template",
|
||||
"url": "https://github.com/sveltejs/component-template"
|
||||
@@ -473,7 +473,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Sapper",
|
||||
"description": "Starter template for Sapper apps",
|
||||
"stars": 724,
|
||||
"stars": 725,
|
||||
"tags": [],
|
||||
"title": "sveltejs/sapper-template",
|
||||
"url": "https://github.com/sveltejs/sapper-template"
|
||||
@@ -482,7 +482,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Svelte",
|
||||
"description": "Template for building basic applications with Svelte with rollup",
|
||||
"stars": 1293,
|
||||
"stars": 1309,
|
||||
"tags": [],
|
||||
"title": "sveltejs/template",
|
||||
"url": "https://github.com/sveltejs/template"
|
||||
@@ -518,7 +518,7 @@
|
||||
"addedOn": "2020-09-29T14:39:13Z",
|
||||
"category": "Svelte",
|
||||
"description": "A showcase app for all Ionic UI elements to create awesome mobile apps. Published as web app too.",
|
||||
"stars": 193,
|
||||
"stars": 194,
|
||||
"tags": ["components and libraries", "component sets", "mobile"],
|
||||
"title": "Ionic Svelte UI demo",
|
||||
"url": "https://github.com/Tommertom/svelte-ionic-app"
|
||||
@@ -572,7 +572,7 @@
|
||||
"addedOn": "2021-06-24T14:39:13Z",
|
||||
"category": "SvelteKit",
|
||||
"description": "SvelteKit template with TailwindCSS, Storybook, TypeScript and Sass.",
|
||||
"stars": 29,
|
||||
"stars": 30,
|
||||
"tags": [],
|
||||
"title": "tejasag/sveltetron-9000",
|
||||
"url": "https://github.com/tejasag/sveltetron-9000"
|
||||
@@ -581,7 +581,7 @@
|
||||
"addedOn": "2021-06-24T14:39:14Z",
|
||||
"category": "SvelteKit",
|
||||
"description": "SvelteKit Starter template with Typescript, Postcss, scss, TailwindCSS, Storybook, husky, and eslint.",
|
||||
"stars": 144,
|
||||
"stars": 148,
|
||||
"tags": [],
|
||||
"title": "navneetsharmaui/sveltekit-starter",
|
||||
"url": "https://github.com/navneetsharmaui/sveltekit-starter"
|
||||
@@ -599,7 +599,7 @@
|
||||
"addedOn": "2021-06-24T14:39:16Z",
|
||||
"category": "SvelteKit",
|
||||
"description": "SvelteKit template with Stripe Checkout and Typescript.",
|
||||
"stars": 29,
|
||||
"stars": 30,
|
||||
"tags": [],
|
||||
"title": "srmullen/sveltekit-stripe",
|
||||
"url": "https://github.com/srmullen/sveltekit-stripe"
|
||||
@@ -608,7 +608,7 @@
|
||||
"addedOn": "2021-06-24T14:39:17Z",
|
||||
"category": "SvelteKit",
|
||||
"description": "A minimalistic blog template built with SvelteKit and MDsveX",
|
||||
"stars": 35,
|
||||
"stars": 36,
|
||||
"tags": [],
|
||||
"title": "mvasigh/sveltekit-mdsvex-blog",
|
||||
"url": "https://github.com/mvasigh/sveltekit-mdsvex-blog"
|
||||
@@ -626,7 +626,7 @@
|
||||
"addedOn": "2021-06-24T14:39:19Z",
|
||||
"category": "SvelteKit",
|
||||
"description": "Personal website and blog written from scratch with SvelteKit and TailwindCSS.",
|
||||
"stars": 47,
|
||||
"stars": 50,
|
||||
"tags": [],
|
||||
"title": "mhatvan/markushatvan.com",
|
||||
"url": "https://github.com/mhatvan/markushatvan.com"
|
||||
@@ -653,7 +653,7 @@
|
||||
"addedOn": "2021-06-24T14:39:22Z",
|
||||
"category": "Svelte Add",
|
||||
"description": "Add Tailwind CSS to your Svelte project",
|
||||
"stars": 282,
|
||||
"stars": 289,
|
||||
"tags": [],
|
||||
"title": "svelte-add/tailwindcss",
|
||||
"url": "https://github.com/svelte-add/tailwindcss"
|
||||
@@ -698,7 +698,7 @@
|
||||
"addedOn": "2021-06-24T14:39:28Z",
|
||||
"category": "Svelte Add",
|
||||
"description": "Add mdsvex to your Svelte project",
|
||||
"stars": 35,
|
||||
"stars": 36,
|
||||
"tags": [],
|
||||
"title": "svelte-add/mdsvex",
|
||||
"url": "https://github.com/svelte-add/mdsvex"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"description": "Compile Svelte components with Rollup",
|
||||
"url": "https://github.com/sveltejs/rollup-plugin-svelte",
|
||||
"tags": ["official"],
|
||||
"stars": 400
|
||||
"stars": 402
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -15,7 +15,7 @@
|
||||
"description": "Webpack loader for svelte components",
|
||||
"url": "https://github.com/sveltejs/svelte-loader",
|
||||
"tags": ["official"],
|
||||
"stars": 491
|
||||
"stars": 492
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -24,7 +24,7 @@
|
||||
"description": "This is the official svelte plugin for vite",
|
||||
"url": "https://github.com/sveltejs/vite-plugin-svelte",
|
||||
"tags": ["official"],
|
||||
"stars": 213
|
||||
"stars": 225
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -33,7 +33,7 @@
|
||||
"description": "An esbuild plugin to compile Svelte components",
|
||||
"url": "https://github.com/EMH333/esbuild-svelte",
|
||||
"tags": [],
|
||||
"stars": 106
|
||||
"stars": 110
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -51,7 +51,7 @@
|
||||
"description": "A parcel plugin that enables svelte support",
|
||||
"url": "https://github.com/DeMoorJasper/parcel-plugin-svelte",
|
||||
"tags": [],
|
||||
"stars": 216
|
||||
"stars": 217
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -105,7 +105,7 @@
|
||||
"description": "An extension that allows inspection of Svelte component hierarchy and state in the Firefox and Chrome developer tools",
|
||||
"url": "https://github.com/RedHatter/svelte-devtools",
|
||||
"tags": [],
|
||||
"stars": 553
|
||||
"stars": 552
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -114,7 +114,7 @@
|
||||
"description": "A ✨ magical ✨ Svelte preprocessor with sensible defaults and support for: PostCSS, SCSS, Less, Stylus, Coffeescript, TypeScript, Pug and much more",
|
||||
"url": "https://github.com/sveltejs/svelte-preprocess",
|
||||
"tags": ["official"],
|
||||
"stars": 1119
|
||||
"stars": 1124
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -141,7 +141,7 @@
|
||||
"description": "Svelte preprocessor for sass",
|
||||
"url": "https://github.com/ls-age/svelte-preprocess-sass",
|
||||
"tags": [],
|
||||
"stars": 83
|
||||
"stars": 84
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -186,7 +186,7 @@
|
||||
"description": "Format your svelte components using prettier.",
|
||||
"url": "https://github.com/sveltejs/prettier-plugin-svelte",
|
||||
"tags": ["official"],
|
||||
"stars": 381
|
||||
"stars": 388
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -213,7 +213,7 @@
|
||||
"description": "Vim syntax highlighting and indentation for Svelte 3 components.",
|
||||
"url": "https://github.com/evanleck/vim-svelte",
|
||||
"tags": [],
|
||||
"stars": 192
|
||||
"stars": 193
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -222,7 +222,7 @@
|
||||
"description": "Vim syntax and indent plugin for .svelte files",
|
||||
"url": "https://github.com/leafOfTree/vim-svelte-plugin",
|
||||
"tags": [],
|
||||
"stars": 65
|
||||
"stars": 67
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -231,7 +231,7 @@
|
||||
"description": "Svelte support for (Neo)Vim",
|
||||
"url": "https://github.com/coc-extensions/coc-svelte",
|
||||
"tags": [],
|
||||
"stars": 97
|
||||
"stars": 98
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
@@ -240,7 +240,7 @@
|
||||
"description": "Emacs major mode including support for Svelte",
|
||||
"url": "https://github.com/fxbois/web-mode",
|
||||
"tags": [],
|
||||
"stars": 1454
|
||||
"stars": 1458
|
||||
},
|
||||
{
|
||||
"addedOn": "2021-08-09T10:14:05.723Z",
|
||||
|
||||
Reference in New Issue
Block a user