Fetch stars from Gitlab

This commit is contained in:
Ambar Mutha
2021-09-07 16:17:36 +05:30
parent be73ba9f2a
commit 308158ec22
6 changed files with 278 additions and 331 deletions

244
package-lock.json generated
View File

@@ -5,12 +5,12 @@
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "sveltesociety.dev",
"version": "0.0.1", "version": "0.0.1",
"dependencies": { "dependencies": {
"svelte-highlight": "^3.2.0" "svelte-highlight": "^3.2.0"
}, },
"devDependencies": { "devDependencies": {
"@octokit/graphql": "^4.7.0",
"@sveltejs/adapter-static": "next", "@sveltejs/adapter-static": "next",
"@sveltejs/kit": "next", "@sveltejs/kit": "next",
"@types/jest": "^27.0.1", "@types/jest": "^27.0.1",
@@ -19,6 +19,7 @@
"eslint": "^7.22.0", "eslint": "^7.22.0",
"eslint-config-prettier": "^8.1.0", "eslint-config-prettier": "^8.1.0",
"eslint-plugin-svelte3": "^3.2.0", "eslint-plugin-svelte3": "^3.2.0",
"graphql-request": "^3.5.0",
"jest": "^27.1.0", "jest": "^27.1.0",
"mdsvex": "^0.9.3", "mdsvex": "^0.9.3",
"prettier": "~2.2.1", "prettier": "~2.2.1",
@@ -1026,68 +1027,6 @@
"node": ">= 8" "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": { "node_modules/@rollup/pluginutils": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz",
@@ -1999,6 +1938,15 @@
"safe-buffer": "~5.1.1" "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": { "node_modules/cross-spawn": {
"version": "7.0.3", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -2104,12 +2052,6 @@
"node": ">=0.4.0" "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": { "node_modules/detect-indent": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", "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" "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": { "node_modules/fast-deep-equal": {
"version": "3.1.3", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -2921,6 +2875,30 @@
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
"dev": true "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": { "node_modules/has": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -3154,15 +3132,6 @@
"node": ">=0.12.0" "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": { "node_modules/is-potential-custom-element-name": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "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" "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": { "node_modules/universalify": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -6584,68 +6547,6 @@
"fastq": "^1.6.0" "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": { "@rollup/pluginutils": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz",
@@ -7334,6 +7235,15 @@
"safe-buffer": "~5.1.1" "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": { "cross-spawn": {
"version": "7.0.3", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -7418,12 +7328,6 @@
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true "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": { "detect-indent": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", "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": { "fast-deep-equal": {
"version": "3.1.3", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -8029,6 +7939,24 @@
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
"dev": true "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": { "has": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -8199,12 +8127,6 @@
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true "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": { "is-potential-custom-element-name": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "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" "@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": { "universalify": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",

View File

@@ -11,7 +11,6 @@
"test": "jest" "test": "jest"
}, },
"devDependencies": { "devDependencies": {
"@octokit/graphql": "^4.7.0",
"@sveltejs/adapter-static": "next", "@sveltejs/adapter-static": "next",
"@sveltejs/kit": "next", "@sveltejs/kit": "next",
"@types/jest": "^27.0.1", "@types/jest": "^27.0.1",
@@ -20,6 +19,7 @@
"eslint": "^7.22.0", "eslint": "^7.22.0",
"eslint-config-prettier": "^8.1.0", "eslint-config-prettier": "^8.1.0",
"eslint-plugin-svelte3": "^3.2.0", "eslint-plugin-svelte3": "^3.2.0",
"graphql-request": "^3.5.0",
"jest": "^27.1.0", "jest": "^27.1.0",
"mdsvex": "^0.9.3", "mdsvex": "^0.9.3",
"prettier": "~2.2.1", "prettier": "~2.2.1",

View File

@@ -6,7 +6,7 @@
*/ */
import fs from 'fs'; import fs from 'fs';
import { graphql } from '@octokit/graphql'; import { request, gql } from 'graphql-request';
import prettier from 'prettier'; import prettier from 'prettier';
const files = [ const files = [
@@ -20,62 +20,83 @@ if (!process.env.GH_TOKEN) {
process.exit(1); process.exit(1);
} }
const getGithubRepo = ({ url }) => { const getRepo = ({ url }) => {
const match = url.match(/github.com\/([^#/]+)\/([^#/]+)/); const match = url.match(/(github.com|gitlab.com)\/([^#/]+)\/([^#/]+)/);
if (match) { if (match) {
const [, owner, name] = match; const [, site, owner, name] = match;
return `${owner}/${name}`; const id = `${site}/${owner}/${name}`;
return { site, owner, name, id };
} }
}; };
const repos = files.flatMap( const reposWithDuplicates = files.flatMap(
(file) => (file) =>
JSON.parse(fs.readFileSync(file)) JSON.parse(fs.readFileSync(file))
.map(getGithubRepo) .map(getRepo)
.filter((x) => x) // filter undefined .filter((x) => x) // filter undefined
); );
const repos = getUnique(reposWithDuplicates);
const uniqueRepos = [...new Set(repos)].map((repo) => { const githubRepos = repos.filter((repo) => repo.site === 'github.com');
const [owner, name] = repo.split('/'); const gitlabRepos = repos.filter((repo) => repo.site === 'gitlab.com');
return { owner, name };
});
const repoQuery = (repo, id) => ` const gitlabRepoQuery = (repo, idx) => `
r${id}: repository(owner: "${repo.owner}", name: "${repo.name}") { r${idx}: project(fullPath: "${repo.owner}/${repo.name}") {
...frag ...frag
} }
`; `;
const response = await graphql( const gitlabQuery = gql`
/* GraphQL */ `
{ {
${uniqueRepos.map(repoQuery).join('')} ${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 { fragment frag on Repository {
owner { resourcePath
login
}
name
stargazerCount stargazerCount
} }
`, `;
{
headers: { const ghResponse = await request(
authorization: `token ${process.env.GH_TOKEN}` 'https://api.github.com/graphql',
} ghQuery,
} {},
{ authorization: `token ${process.env.GH_TOKEN}` }
); );
const repoData = Object.fromEntries( const repoData = {};
Object.values(response).map((repo) => [`${repo.owner.login}/${repo.name}`, repo])
); 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) { for (const file of files) {
const data = JSON.parse(fs.readFileSync(file)); const data = JSON.parse(fs.readFileSync(file));
for (const item of data) { for (const item of data) {
const repo = getGithubRepo(item); const repo = getRepo(item);
if (repo && repoData[repo]) { if (repo && repoData[repo.id]) {
item.stars = repoData[repo].stargazerCount; item.stars = repoData[repo.id].stars;
} }
} }
prettySave(file, JSON.stringify(data), 'json'); prettySave(file, JSON.stringify(data), 'json');
@@ -90,3 +111,11 @@ function prettySave(filePath, text, parser = 'babel') {
fs.writeFileSync(filePath, formatted); 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 };
});
}

View File

@@ -37,14 +37,14 @@
"npm": "https://www.npmjs.com/package/sswr", "npm": "https://www.npmjs.com/package/sswr",
"tags": ["components and libraries", "fonts and icons"], "tags": ["components and libraries", "fonts and icons"],
"addedOn": "2021-07-29T00:00:00Z", "addedOn": "2021-07-29T00:00:00Z",
"stars": 57 "stars": 59
}, },
{ {
"title": "svelte-adapter-firebase", "title": "svelte-adapter-firebase",
"description": "SvelteKit adapter for Firebase Hosting rewrites to either Cloud Functions or Cloud Run for a Svelte SSR experience", "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", "url": "https://github.com/jthegedus/svelte-adapter-firebase",
"npm": "https://www.npmjs.com/package/svelte-adapter-firebase", "npm": "https://www.npmjs.com/package/svelte-adapter-firebase",
"stars": 53, "stars": 54,
"tags": ["integrations"], "tags": ["integrations"],
"addedOn": "2021-03-31T00:00:00Z", "addedOn": "2021-03-31T00:00:00Z",
"category": "SvelteKit Adapters" "category": "SvelteKit Adapters"
@@ -64,7 +64,7 @@
"description": "SvelteKit adapter that generates a standalone Deno server.", "description": "SvelteKit adapter that generates a standalone Deno server.",
"url": "https://github.com/pluvial/svelte-adapter-deno", "url": "https://github.com/pluvial/svelte-adapter-deno",
"npm": "https://www.npmjs.com/package/svelte-adapter-deno", "npm": "https://www.npmjs.com/package/svelte-adapter-deno",
"stars": 25, "stars": 26,
"tags": ["integrations"], "tags": ["integrations"],
"addedOn": "2021-07-12T00:00:00Z", "addedOn": "2021-07-12T00:00:00Z",
"category": "SvelteKit Adapters" "category": "SvelteKit Adapters"
@@ -105,7 +105,7 @@
"tags": ["components and libraries"], "tags": ["components and libraries"],
"addedOn": "2021-03-24T01:02:03Z", "addedOn": "2021-03-24T01:02:03Z",
"category": "Integration", "category": "Integration",
"stars": 492 "stars": 497
}, },
{ {
"title": "svelte-time-picker", "title": "svelte-time-picker",
@@ -114,7 +114,8 @@
"description": "Time Picker UI for Svelte, inspired by the MaterialUI React Time Picker", "description": "Time Picker UI for Svelte, inspired by the MaterialUI React Time Picker",
"tags": ["components and libraries", "time and date"], "tags": ["components and libraries", "time and date"],
"addedOn": "2021-03-04T07:27:00Z", "addedOn": "2021-03-04T07:27:00Z",
"category": "Forms & User Input" "category": "Forms & User Input",
"stars": 1
}, },
{ {
"title": "svelte-formula", "title": "svelte-formula",
@@ -131,7 +132,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "A lightweight datepicker with neat animations and a unique UX", "description": "A lightweight datepicker with neat animations and a unique UX",
"npm": "svelte-calendar", "npm": "svelte-calendar",
"stars": 329, "stars": 331,
"tags": ["components and libraries", "time and date"], "tags": ["components and libraries", "time and date"],
"title": "svelte-calendar", "title": "svelte-calendar",
"url": "https://github.com/6eDesign/svelte-calendar" "url": "https://github.com/6eDesign/svelte-calendar"
@@ -141,7 +142,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "Svelte tags input is a component to use with Svelte and easily enter tags and customize some functions", "description": "Svelte tags input is a component to use with Svelte and easily enter tags and customize some functions",
"npm": "svelte-tags-input", "npm": "svelte-tags-input",
"stars": 147, "stars": 151,
"tags": ["components and libraries", "inputs and widgets"], "tags": ["components and libraries", "inputs and widgets"],
"title": "svelte-tags-input", "title": "svelte-tags-input",
"url": "https://github.com/agustinl/svelte-tags-input" "url": "https://github.com/agustinl/svelte-tags-input"
@@ -151,7 +152,7 @@
"category": "Developer Experience", "category": "Developer Experience",
"description": "Generate a JSON documentation for a Svelte component", "description": "Generate a JSON documentation for a Svelte component",
"npm": "sveltedoc-parser", "npm": "sveltedoc-parser",
"stars": 57, "stars": 58,
"tags": ["components and libraries", "development and documentation"], "tags": ["components and libraries", "development and documentation"],
"title": "sveltedoc-parser", "title": "sveltedoc-parser",
"url": "https://github.com/alexprey/sveltedoc-parser" "url": "https://github.com/alexprey/sveltedoc-parser"
@@ -201,7 +202,7 @@
"category": "Routers", "category": "Routers",
"description": "Highly declarative, very tiny (~3.8 Kb), dependency free router", "description": "Highly declarative, very tiny (~3.8 Kb), dependency free router",
"npm": "tinro", "npm": "tinro",
"stars": 465, "stars": 468,
"tags": ["routers"], "tags": ["routers"],
"title": "tinro", "title": "tinro",
"url": "https://github.com/AlexxNB/tinro" "url": "https://github.com/AlexxNB/tinro"
@@ -231,7 +232,7 @@
"category": "", "category": "",
"description": "Component that performs fullscreen in DOM Elements", "description": "Component that performs fullscreen in DOM Elements",
"npm": "svelte-fullscreen", "npm": "svelte-fullscreen",
"stars": 25, "stars": 27,
"tags": ["components and libraries", "layout and structure"], "tags": ["components and libraries", "layout and structure"],
"title": "svelte-fullscreen", "title": "svelte-fullscreen",
"url": "https://github.com/andrelmlins/svelte-fullscreen" "url": "https://github.com/andrelmlins/svelte-fullscreen"
@@ -251,7 +252,7 @@
"category": "", "category": "",
"description": "Infinite Scroll Component to Svelte", "description": "Infinite Scroll Component to Svelte",
"npm": "svelte-infinite-scroll", "npm": "svelte-infinite-scroll",
"stars": 120, "stars": 121,
"tags": ["components and libraries"], "tags": ["components and libraries"],
"title": "svelte-infinite-scroll", "title": "svelte-infinite-scroll",
"url": "https://github.com/andrelmlins/svelte-infinite-scroll" "url": "https://github.com/andrelmlins/svelte-infinite-scroll"
@@ -261,7 +262,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "Generate dynamic forms for sveltejs, Sveltekit, Routify and Sapper", "description": "Generate dynamic forms for sveltejs, Sveltekit, Routify and Sapper",
"npm": "svelte-formly", "npm": "svelte-formly",
"stars": 134, "stars": 135,
"tags": [ "tags": [
"components and libraries", "components and libraries",
"forms", "forms",
@@ -277,7 +278,7 @@
"category": "Stores", "category": "Stores",
"description": "Svelte store with a websocket backend", "description": "Svelte store with a websocket backend",
"npm": "svelte-websocket-store", "npm": "svelte-websocket-store",
"stars": 86, "stars": 91,
"tags": ["components and libraries", "stores and state"], "tags": ["components and libraries", "stores and state"],
"title": "svelte-websocket-store", "title": "svelte-websocket-store",
"url": "https://github.com/arlac77/svelte-websocket-store" "url": "https://github.com/arlac77/svelte-websocket-store"
@@ -287,7 +288,7 @@
"category": "Design System", "category": "Design System",
"description": "Bootstrap 4 components for Svelte", "description": "Bootstrap 4 components for Svelte",
"npm": "sveltestrap", "npm": "sveltestrap",
"stars": 689, "stars": 704,
"tags": ["components and libraries", "component sets"], "tags": ["components and libraries", "component sets"],
"title": "sveltestrap", "title": "sveltestrap",
"url": "https://github.com/bestguy/sveltestrap" "url": "https://github.com/bestguy/sveltestrap"
@@ -297,7 +298,7 @@
"category": "User Interaction", "category": "User Interaction",
"description": "A GDPR compliant cookie consent banner implementation", "description": "A GDPR compliant cookie consent banner implementation",
"npm": "@beyonk/gdpr-cookie-consent-banner", "npm": "@beyonk/gdpr-cookie-consent-banner",
"stars": 80, "stars": 81,
"tags": ["components and libraries", "inputs and widgets"], "tags": ["components and libraries", "inputs and widgets"],
"title": "@beyonk/gdpr-cookie-consent-banner", "title": "@beyonk/gdpr-cookie-consent-banner",
"url": "https://github.com/beyonk-adventures/gdpr-cookie-consent-banner" "url": "https://github.com/beyonk-adventures/gdpr-cookie-consent-banner"
@@ -327,7 +328,7 @@
"category": "Integration", "category": "Integration",
"description": "A Facebook pixel module for Svelte / Sapper", "description": "A Facebook pixel module for Svelte / Sapper",
"npm": "@beyonk/svelte-facebook-pixel", "npm": "@beyonk/svelte-facebook-pixel",
"stars": 9, "stars": 10,
"tags": ["components and libraries", "third party services"], "tags": ["components and libraries", "third party services"],
"title": "@beyonk/svelte-facebook-pixel", "title": "@beyonk/svelte-facebook-pixel",
"url": "https://github.com/beyonk-adventures/svelte-facebook-pixel" "url": "https://github.com/beyonk-adventures/svelte-facebook-pixel"
@@ -337,7 +338,7 @@
"category": "Integration", "category": "Integration",
"description": "Google Analytics tracking module for Svelte / Sapper", "description": "Google Analytics tracking module for Svelte / Sapper",
"npm": "@beyonk/svelte-google-analytics", "npm": "@beyonk/svelte-google-analytics",
"stars": 27, "stars": 28,
"tags": ["components and libraries", "third party services"], "tags": ["components and libraries", "third party services"],
"title": "@beyonk/svelte-google-analytics", "title": "@beyonk/svelte-google-analytics",
"url": "https://github.com/beyonk-adventures/svelte-google-analytics" "url": "https://github.com/beyonk-adventures/svelte-google-analytics"
@@ -347,7 +348,7 @@
"category": "Integration", "category": "Integration",
"description": "Google Maps integration for Svelte", "description": "Google Maps integration for Svelte",
"npm": "@beyonk/svelte-googlemaps", "npm": "@beyonk/svelte-googlemaps",
"stars": 42, "stars": 43,
"tags": ["components and libraries", "maps"], "tags": ["components and libraries", "maps"],
"title": "@beyonk/svelte-googlemaps", "title": "@beyonk/svelte-googlemaps",
"url": "https://github.com/beyonk-adventures/svelte-googlemaps" "url": "https://github.com/beyonk-adventures/svelte-googlemaps"
@@ -357,7 +358,7 @@
"category": "Integration", "category": "Integration",
"description": "Mapbox integration for Svelte", "description": "Mapbox integration for Svelte",
"npm": "@beyonk/svelte-mapbox", "npm": "@beyonk/svelte-mapbox",
"stars": 149, "stars": 150,
"tags": ["components and libraries", "maps"], "tags": ["components and libraries", "maps"],
"title": "@beyonk/svelte-mapbox", "title": "@beyonk/svelte-mapbox",
"url": "https://github.com/beyonk-adventures/svelte-mapbox" "url": "https://github.com/beyonk-adventures/svelte-mapbox"
@@ -367,7 +368,7 @@
"category": "User Interaction", "category": "User Interaction",
"description": "Svelte toast notifications that can be used in any JS application", "description": "Svelte toast notifications that can be used in any JS application",
"npm": "@beyonk/svelte-notifications", "npm": "@beyonk/svelte-notifications",
"stars": 195, "stars": 194,
"tags": ["components and libraries", "notifications"], "tags": ["components and libraries", "notifications"],
"title": "@beyonk/svelte-notifications", "title": "@beyonk/svelte-notifications",
"url": "https://github.com/beyonk-adventures/svelte-notifications" "url": "https://github.com/beyonk-adventures/svelte-notifications"
@@ -447,7 +448,7 @@
"category": "Design System", "category": "Design System",
"description": "Bulma components for Svelte", "description": "Bulma components for Svelte",
"npm": "svelma", "npm": "svelma",
"stars": 436, "stars": 438,
"tags": ["components and libraries", "component sets"], "tags": ["components and libraries", "component sets"],
"title": "svelma", "title": "svelma",
"url": "https://github.com/c0bra/svelma" "url": "https://github.com/c0bra/svelma"
@@ -457,7 +458,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "Svelte forms validation made easy", "description": "Svelte forms validation made easy",
"npm": "svelte-forms", "npm": "svelte-forms",
"stars": 165, "stars": 168,
"tags": ["components and libraries", "forms and validation"], "tags": ["components and libraries", "forms and validation"],
"title": "svelte-forms", "title": "svelte-forms",
"url": "https://github.com/chainlist/svelte-forms" "url": "https://github.com/chainlist/svelte-forms"
@@ -477,7 +478,7 @@
"category": "User Interaction", "category": "User Interaction",
"description": "A Svelte component to hide your header on scroll", "description": "A Svelte component to hide your header on scroll",
"npm": "svelte-headroom", "npm": "svelte-headroom",
"stars": 59, "stars": 60,
"tags": ["components and libraries", "layout and structure"], "tags": ["components and libraries", "layout and structure"],
"title": "svelte-headroom", "title": "svelte-headroom",
"url": "https://github.com/collardeau/svelte-headroom" "url": "https://github.com/collardeau/svelte-headroom"
@@ -487,7 +488,7 @@
"category": "", "category": "",
"description": "Tiny FontAwesome 5 component for Svelte", "description": "Tiny FontAwesome 5 component for Svelte",
"npm": "svelte-fa", "npm": "svelte-fa",
"stars": 148, "stars": 151,
"tags": ["components and libraries", "fonts and icons"], "tags": ["components and libraries", "fonts and icons"],
"title": "svelte-fa", "title": "svelte-fa",
"url": "https://github.com/Cweili/svelte-fa" "url": "https://github.com/Cweili/svelte-fa"
@@ -507,7 +508,7 @@
"category": "User Interaction", "category": "User Interaction",
"description": "Component for moveable, draggable, resizable, scalable, rotatable, and more", "description": "Component for moveable, draggable, resizable, scalable, rotatable, and more",
"npm": "svelte-moveable", "npm": "svelte-moveable",
"stars": 6087, "stars": 6111,
"tags": ["components and libraries", "interactions"], "tags": ["components and libraries", "interactions"],
"title": "svelte-moveable", "title": "svelte-moveable",
"url": "https://github.com/daybrush/moveable/tree/master/packages/svelte-moveable" "url": "https://github.com/daybrush/moveable/tree/master/packages/svelte-moveable"
@@ -577,7 +578,7 @@
"category": "Routers", "category": "Routers",
"description": "A declarative Svelte routing library with SSR support", "description": "A declarative Svelte routing library with SSR support",
"npm": "svelte-routing", "npm": "svelte-routing",
"stars": 1446, "stars": 1456,
"tags": ["routers"], "tags": ["routers"],
"title": "svelte-routing", "title": "svelte-routing",
"url": "https://github.com/EmilTholin/svelte-routing" "url": "https://github.com/EmilTholin/svelte-routing"
@@ -587,7 +588,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "A rate component for Svelte apps", "description": "A rate component for Svelte apps",
"npm": "svelte-rate-it", "npm": "svelte-rate-it",
"stars": 35, "stars": 36,
"tags": ["components and libraries", "inputs and widgets"], "tags": ["components and libraries", "inputs and widgets"],
"title": "svelte-rate-it", "title": "svelte-rate-it",
"url": "https://github.com/emrekara37/svelte-rate-it" "url": "https://github.com/emrekara37/svelte-rate-it"
@@ -597,7 +598,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "A user interface for inputting date ranges", "description": "A user interface for inputting date ranges",
"npm": "@equipmentshare/date-range-input", "npm": "@equipmentshare/date-range-input",
"stars": 13, "stars": 14,
"tags": ["components and libraries", "time and date"], "tags": ["components and libraries", "time and date"],
"title": "@equipmentshare/date-range-input", "title": "@equipmentshare/date-range-input",
"url": "https://github.com/EquipmentShare/date-range-input" "url": "https://github.com/EquipmentShare/date-range-input"
@@ -627,7 +628,7 @@
"category": "User Interaction", "category": "User Interaction",
"description": "A simple, small, and content-agnostic modal for Svelte", "description": "A simple, small, and content-agnostic modal for Svelte",
"npm": "svelte-simple-modal", "npm": "svelte-simple-modal",
"stars": 187, "stars": 190,
"tags": ["components and libraries", "layout and structure"], "tags": ["components and libraries", "layout and structure"],
"title": "svelte-simple-modal", "title": "svelte-simple-modal",
"url": "https://github.com/flekschas/svelte-simple-modal" "url": "https://github.com/flekschas/svelte-simple-modal"
@@ -639,7 +640,7 @@
"tags": ["components and libraries", "stores and state", "graphql"], "tags": ["components and libraries", "stores and state", "graphql"],
"title": "@urql/svelte", "title": "@urql/svelte",
"url": "https://github.com/FormidableLabs/urql/tree/master/packages/svelte-urql", "url": "https://github.com/FormidableLabs/urql/tree/master/packages/svelte-urql",
"stars": 6285 "stars": 6318
}, },
{ {
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
@@ -656,7 +657,7 @@
"category": "Integration", "category": "Integration",
"description": "Svelte controlling native components via Nativescript", "description": "Svelte controlling native components via Nativescript",
"npm": "svelte-native", "npm": "svelte-native",
"stars": 954, "stars": 963,
"tags": ["native"], "tags": ["native"],
"title": "svelte-native", "title": "svelte-native",
"url": "https://github.com/halfnelson/svelte-native" "url": "https://github.com/halfnelson/svelte-native"
@@ -666,7 +667,7 @@
"category": "", "category": "",
"description": "A simple and reusable typewriter effect for your Svelte applications", "description": "A simple and reusable typewriter effect for your Svelte applications",
"npm": "svelte-typewriter", "npm": "svelte-typewriter",
"stars": 123, "stars": 124,
"tags": ["components and libraries"], "tags": ["components and libraries"],
"title": "svelte-typewriter", "title": "svelte-typewriter",
"url": "https://github.com/henriquehbr/svelte-typewriter" "url": "https://github.com/henriquehbr/svelte-typewriter"
@@ -686,7 +687,7 @@
"category": "", "category": "",
"description": "A simple and reusable flexbox component for Svelte", "description": "A simple and reusable flexbox component for Svelte",
"npm": "svelte-flex", "npm": "svelte-flex",
"stars": 40, "stars": 41,
"tags": ["components and libraries", "layout and structure"], "tags": ["components and libraries", "layout and structure"],
"title": "svelte-flex", "title": "svelte-flex",
"url": "https://github.com/himynameisdave/svelte-flex" "url": "https://github.com/himynameisdave/svelte-flex"
@@ -696,7 +697,7 @@
"category": "Data Visualisation", "category": "Data Visualisation",
"description": "Svelte bindings for frappe-charts.", "description": "Svelte bindings for frappe-charts.",
"npm": "svelte-frappe-charts", "npm": "svelte-frappe-charts",
"stars": 152, "stars": 154,
"tags": ["charts", "components and libraries"], "tags": ["charts", "components and libraries"],
"title": "svelte-frappe-charts", "title": "svelte-frappe-charts",
"url": "https://github.com/himynameisdave/svelte-frappe-charts" "url": "https://github.com/himynameisdave/svelte-frappe-charts"
@@ -706,7 +707,7 @@
"category": "Design System", "category": "Design System",
"description": "Easy-to-use, Customizable Material Design components for Svelte", "description": "Easy-to-use, Customizable Material Design components for Svelte",
"npm": "svmd", "npm": "svmd",
"stars": 8, "stars": 7,
"tags": ["components and libraries", "component sets"], "tags": ["components and libraries", "component sets"],
"title": "svmd", "title": "svmd",
"url": "https://github.com/hkh12/svmd" "url": "https://github.com/hkh12/svmd"
@@ -716,7 +717,7 @@
"category": "Design System", "category": "Design System",
"description": "Svelte Material UI Components", "description": "Svelte Material UI Components",
"npm": "svelte-material-ui", "npm": "svelte-material-ui",
"stars": 1842, "stars": 1857,
"tags": ["components and libraries", "component sets"], "tags": ["components and libraries", "component sets"],
"title": "svelte-material-ui", "title": "svelte-material-ui",
"url": "https://github.com/hperrin/svelte-material-ui" "url": "https://github.com/hperrin/svelte-material-ui"
@@ -736,7 +737,7 @@
"category": "Design System", "category": "Design System",
"description": "A pretty cool UI kit for Svelte", "description": "A pretty cool UI kit for Svelte",
"npm": "attractions", "npm": "attractions",
"stars": 347, "stars": 353,
"tags": ["components and libraries"], "tags": ["components and libraries"],
"title": "attractions", "title": "attractions",
"url": "https://github.com/illright/attractions" "url": "https://github.com/illright/attractions"
@@ -746,7 +747,7 @@
"category": "Routers", "category": "Routers",
"description": "Router for SPAs using Svelte 3", "description": "Router for SPAs using Svelte 3",
"npm": "svelte-spa-router", "npm": "svelte-spa-router",
"stars": 886, "stars": 896,
"tags": ["routers"], "tags": ["routers"],
"title": "svelte-spa-router", "title": "svelte-spa-router",
"url": "https://github.com/ItalyPaleAle/svelte-spa-router" "url": "https://github.com/ItalyPaleAle/svelte-spa-router"
@@ -776,7 +777,7 @@
"category": "Routers", "category": "Routers",
"description": "Svelte router using a store and components", "description": "Svelte router using a store and components",
"npm": "@jamen/svelte-router", "npm": "@jamen/svelte-router",
"stars": 8, "stars": 7,
"tags": ["routers"], "tags": ["routers"],
"title": "@jamen/svelte-router", "title": "@jamen/svelte-router",
"url": "https://github.com/jamen/svelte-router" "url": "https://github.com/jamen/svelte-router"
@@ -826,7 +827,7 @@
"category": "Data Visualisation", "category": "Data Visualisation",
"description": "A simple tool for comparing two images.", "description": "A simple tool for comparing two images.",
"npm": "svelte-compare-image-slider", "npm": "svelte-compare-image-slider",
"stars": 10, "stars": 11,
"tags": ["components and libraries", "images"], "tags": ["components and libraries", "images"],
"title": "svelte-compare-image-slider", "title": "svelte-compare-image-slider",
"url": "https://github.com/johnwalley/compare-image-slider" "url": "https://github.com/johnwalley/compare-image-slider"
@@ -836,7 +837,7 @@
"category": "Routers", "category": "Routers",
"description": "Svelte router specially designed for Single Page Applications (SPA)", "description": "Svelte router specially designed for Single Page Applications (SPA)",
"npm": "svelte-router-spa", "npm": "svelte-router-spa",
"stars": 361, "stars": 362,
"tags": ["routers"], "tags": ["routers"],
"title": "svelte-router-spa", "title": "svelte-router-spa",
"url": "https://github.com/jorgegorka/svelte-router" "url": "https://github.com/jorgegorka/svelte-router"
@@ -856,7 +857,7 @@
"category": "", "category": "",
"description": "Internationalization library for Svelte", "description": "Internationalization library for Svelte",
"npm": "svelte-i18n", "npm": "svelte-i18n",
"stars": 570, "stars": 576,
"tags": ["components and libraries", "internationalization"], "tags": ["components and libraries", "internationalization"],
"title": "svelte-i18n", "title": "svelte-i18n",
"url": "https://github.com/kaisermann/svelte-i18n" "url": "https://github.com/kaisermann/svelte-i18n"
@@ -896,7 +897,7 @@
"category": "User Interaction", "category": "User Interaction",
"description": "Simple and flexible notifications system", "description": "Simple and flexible notifications system",
"npm": "svelte-notifications", "npm": "svelte-notifications",
"stars": 284, "stars": 287,
"tags": ["components and libraries", "notifications"], "tags": ["components and libraries", "notifications"],
"title": "svelte-notifications", "title": "svelte-notifications",
"url": "https://github.com/keenethics/svelte-notifications" "url": "https://github.com/keenethics/svelte-notifications"
@@ -956,7 +957,7 @@
"category": "Testing", "category": "Testing",
"description": "A Jest transformer for Svelte - compile your components before importing them into tests.", "description": "A Jest transformer for Svelte - compile your components before importing them into tests.",
"npm": "svelte-jester", "npm": "svelte-jester",
"stars": 87, "stars": 88,
"tags": ["testing"], "tags": ["testing"],
"title": "svelte-jester", "title": "svelte-jester",
"url": "https://github.com/mihar-22/svelte-jester" "url": "https://github.com/mihar-22/svelte-jester"
@@ -986,7 +987,7 @@
"category": "Integration", "category": "Integration",
"description": "Lottie player component for use with Svelte for viewing Lottie animations.", "description": "Lottie player component for use with Svelte for viewing Lottie animations.",
"npm": "@lottiefiles/svelte-lottie-player", "npm": "@lottiefiles/svelte-lottie-player",
"stars": 65, "stars": 66,
"tags": ["components and libraries"], "tags": ["components and libraries"],
"title": "@lottiefiles/svelte-lottie-player", "title": "@lottiefiles/svelte-lottie-player",
"url": "https://github.com/LottieFiles/svelte-lottie-player" "url": "https://github.com/LottieFiles/svelte-lottie-player"
@@ -996,7 +997,7 @@
"category": "Developer Experience", "category": "Developer Experience",
"description": "Universal PWA Builder (WIP)", "description": "Universal PWA Builder (WIP)",
"npm": "@pwa/cli", "npm": "@pwa/cli",
"stars": 3049, "stars": 3050,
"tags": ["integrations", "cli tools"], "tags": ["integrations", "cli tools"],
"title": "@pwa/cli", "title": "@pwa/cli",
"url": "https://github.com/lukeed/pwa" "url": "https://github.com/lukeed/pwa"
@@ -1016,7 +1017,7 @@
"category": "", "category": "",
"description": "A Svelte component that monitors an element enters or leaves the viewport.🔥", "description": "A Svelte component that monitors an element enters or leaves the viewport.🔥",
"npm": "svelte-inview", "npm": "svelte-inview",
"stars": 73, "stars": 76,
"tags": ["components and libraries", "async loading", "intersection observer", "viewport"], "tags": ["components and libraries", "async loading", "intersection observer", "viewport"],
"title": "svelte-inview", "title": "svelte-inview",
"url": "https://github.com/maciekgrzybek/svelte-inview" "url": "https://github.com/maciekgrzybek/svelte-inview"
@@ -1026,7 +1027,7 @@
"category": "Design System", "category": "Design System",
"description": "Material design components for Svelte using Tailwind CSS", "description": "Material design components for Svelte using Tailwind CSS",
"npm": "smelte", "npm": "smelte",
"stars": 1049, "stars": 1057,
"tags": ["components and libraries", "component sets"], "tags": ["components and libraries", "component sets"],
"title": "smelte", "title": "smelte",
"url": "https://github.com/matyunya/smelte" "url": "https://github.com/matyunya/smelte"
@@ -1066,7 +1067,7 @@
"category": "Routers", "category": "Routers",
"description": "Simple, declarative routing for single page apps built with Svelte", "description": "Simple, declarative routing for single page apps built with Svelte",
"npm": "svelte-navigator", "npm": "svelte-navigator",
"stars": 199, "stars": 203,
"tags": ["routers"], "tags": ["routers"],
"title": "svelte-navigator", "title": "svelte-navigator",
"url": "https://github.com/mefechoel/svelte-navigator" "url": "https://github.com/mefechoel/svelte-navigator"
@@ -1103,7 +1104,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "", "category": "",
"description": "compile time eval for svelte components", "description": "compile time eval for svelte components",
"stars": 2, "stars": 3,
"tags": ["preprocessors", "ssr"], "tags": ["preprocessors", "ssr"],
"title": "svelte-preval", "title": "svelte-preval",
"url": "https://github.com/milahu/svelte-preval" "url": "https://github.com/milahu/svelte-preval"
@@ -1116,14 +1117,14 @@
"tags": ["components and libraries", "layout and structure"], "tags": ["components and libraries", "layout and structure"],
"title": "@egjs/svelte-infinitegrid", "title": "@egjs/svelte-infinitegrid",
"url": "https://github.com/naver/egjs-infinitegrid/blob/master/packages/svelte-infinitegrid", "url": "https://github.com/naver/egjs-infinitegrid/blob/master/packages/svelte-infinitegrid",
"stars": 867 "stars": 875
}, },
{ {
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "User Interaction", "category": "User Interaction",
"description": "Svelte Component that tracks a users progress through a page as they scroll", "description": "Svelte Component that tracks a users progress through a page as they scroll",
"npm": "svelte-page-progress", "npm": "svelte-page-progress",
"stars": 12, "stars": 13,
"tags": ["intersection observer", "viewport", "components and libraries"], "tags": ["intersection observer", "viewport", "components and libraries"],
"title": "svelte-page-progress", "title": "svelte-page-progress",
"url": "https://github.com/NomanGul/svelte-page-progress" "url": "https://github.com/NomanGul/svelte-page-progress"
@@ -1143,7 +1144,7 @@
"category": "", "category": "",
"description": "Internationalize your Svelte apps using format-message and Intl object", "description": "Internationalize your Svelte apps using format-message and Intl object",
"npm": "svelte-intl", "npm": "svelte-intl",
"stars": 38, "stars": 40,
"tags": ["components and libraries", "internationalization"], "tags": ["components and libraries", "internationalization"],
"title": "svelte-intl", "title": "svelte-intl",
"url": "https://github.com/Panya/svelte-intl" "url": "https://github.com/Panya/svelte-intl"
@@ -1152,7 +1153,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "Style it your way UI components with dynamic Form Builder.", "description": "Style it your way UI components with dynamic Form Builder.",
"stars": 24, "stars": 25,
"tags": [ "tags": [
"components and libraries", "components and libraries",
"templates", "templates",
@@ -1180,7 +1181,7 @@
"category": "Routers", "category": "Routers",
"description": "Basic router with queryParams and hash-based routing support", "description": "Basic router with queryParams and hash-based routing support",
"npm": "yrv", "npm": "yrv",
"stars": 158, "stars": 157,
"tags": ["routers"], "tags": ["routers"],
"title": "yrv", "title": "yrv",
"url": "https://github.com/pateketrueke/yrv" "url": "https://github.com/pateketrueke/yrv"
@@ -1200,7 +1201,7 @@
"category": "", "category": "",
"description": "SVG placeholder components for loading content", "description": "SVG placeholder components for loading content",
"npm": "svelte-content-loader", "npm": "svelte-content-loader",
"stars": 117, "stars": 118,
"tags": ["components and libraries", "async loading"], "tags": ["components and libraries", "async loading"],
"title": "svelte-content-loader", "title": "svelte-content-loader",
"url": "https://github.com/PaulMaly/svelte-content-loader" "url": "https://github.com/PaulMaly/svelte-content-loader"
@@ -1220,7 +1221,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "IMask input component and action for Svelte 3.", "description": "IMask input component and action for Svelte 3.",
"npm": "svelte-imask", "npm": "svelte-imask",
"stars": 51, "stars": 52,
"tags": ["components and libraries", "inputs and widgets"], "tags": ["components and libraries", "inputs and widgets"],
"title": "svelte-imask", "title": "svelte-imask",
"url": "https://github.com/PaulMaly/svelte-imask" "url": "https://github.com/PaulMaly/svelte-imask"
@@ -1329,7 +1330,7 @@
"category": "", "category": "",
"description": "A markdown preprocessor for Svelte", "description": "A markdown preprocessor for Svelte",
"npm": "mdsvex", "npm": "mdsvex",
"stars": 855, "stars": 862,
"tags": ["integrations", "preprocessors"], "tags": ["integrations", "preprocessors"],
"title": "mdsvex", "title": "mdsvex",
"url": "https://github.com/pngwn/MDsveX" "url": "https://github.com/pngwn/MDsveX"
@@ -1368,7 +1369,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "Simple autocomplete / typeahead component for Svelte", "description": "Simple autocomplete / typeahead component for Svelte",
"stars": 162, "stars": 165,
"tags": ["components and libraries", "inputs and widgets"], "tags": ["components and libraries", "inputs and widgets"],
"title": "Simple Svelte Autocomplete", "title": "Simple Svelte Autocomplete",
"url": "https://github.com/pstanoev/simple-svelte-autocomplete" "url": "https://github.com/pstanoev/simple-svelte-autocomplete"
@@ -1378,7 +1379,7 @@
"category": "Routers", "category": "Routers",
"description": "Simple Svelte 3 hash based router with global routes", "description": "Simple Svelte 3 hash based router with global routes",
"npm": "svelte-hash-router", "npm": "svelte-hash-router",
"stars": 34, "stars": 35,
"tags": ["routers"], "tags": ["routers"],
"title": "svelte-hash-router", "title": "svelte-hash-router",
"url": "https://github.com/pynnl/svelte-hash-router" "url": "https://github.com/pynnl/svelte-hash-router"
@@ -1398,7 +1399,7 @@
"category": "Developer Experience", "category": "Developer Experience",
"description": "Development helper for inspecting and opening Svelte components in your editor", "description": "Development helper for inspecting and opening Svelte components in your editor",
"npm": "svelte-inspector", "npm": "svelte-inspector",
"stars": 58, "stars": 60,
"tags": ["components and libraries", "development and documentation"], "tags": ["components and libraries", "development and documentation"],
"title": "svelte-inspector", "title": "svelte-inspector",
"url": "https://github.com/qutran/svelte-inspector" "url": "https://github.com/qutran/svelte-inspector"
@@ -1428,7 +1429,7 @@
"category": "Data Visualisation", "category": "Data Visualisation",
"description": "Experimental charting library for Svelte", "description": "Experimental charting library for Svelte",
"npm": "@sveltejs/pancake", "npm": "@sveltejs/pancake",
"stars": 831, "stars": 837,
"tags": ["components and libraries", "charts"], "tags": ["components and libraries", "charts"],
"title": "@sveltejs/pancake", "title": "@sveltejs/pancake",
"url": "https://github.com/Rich-Harris/pancake" "url": "https://github.com/Rich-Harris/pancake"
@@ -1438,7 +1439,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "A select component for Svelte apps", "description": "A select component for Svelte apps",
"npm": "svelte-select", "npm": "svelte-select",
"stars": 541, "stars": 547,
"tags": ["components and libraries", "inputs and widgets"], "tags": ["components and libraries", "inputs and widgets"],
"title": "svelte-select", "title": "svelte-select",
"url": "https://github.com/rob-balfre/svelte-select" "url": "https://github.com/rob-balfre/svelte-select"
@@ -1448,7 +1449,7 @@
"category": "", "category": "",
"description": "Awesome SVG icon component for Svelte JS, built with Font Awesome icons", "description": "Awesome SVG icon component for Svelte JS, built with Font Awesome icons",
"npm": "svelte-awesome", "npm": "svelte-awesome",
"stars": 224, "stars": 229,
"tags": ["components and libraries", "fonts and icons"], "tags": ["components and libraries", "fonts and icons"],
"title": "svelte-awesome", "title": "svelte-awesome",
"url": "https://github.com/RobBrazier/svelte-awesome" "url": "https://github.com/RobBrazier/svelte-awesome"
@@ -1488,7 +1489,7 @@
"category": "Data Visualisation", "category": "Data Visualisation",
"description": "Customizable version of GitHub's contribution graph", "description": "Customizable version of GitHub's contribution graph",
"npm": "svelte-heatmap", "npm": "svelte-heatmap",
"stars": 88, "stars": 89,
"tags": ["components and libraries", "time and date"], "tags": ["components and libraries", "time and date"],
"title": "svelte-heatmap", "title": "svelte-heatmap",
"url": "https://github.com/scottbedard/svelte-heatmap" "url": "https://github.com/scottbedard/svelte-heatmap"
@@ -1498,7 +1499,7 @@
"category": "User Interaction", "category": "User Interaction",
"description": "A carousel with touch support", "description": "A carousel with touch support",
"npm": "svelte-swipe", "npm": "svelte-swipe",
"stars": 188, "stars": 191,
"tags": ["components and libraries", "layout and structure"], "tags": ["components and libraries", "layout and structure"],
"title": "svelte-swipe", "title": "svelte-swipe",
"url": "https://github.com/SharifClick/svelte-swipe" "url": "https://github.com/SharifClick/svelte-swipe"
@@ -1528,7 +1529,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "Range Slider Input, with Multi-handle and Pips features", "description": "Range Slider Input, with Multi-handle and Pips features",
"npm": "svelte-range-slider-pips", "npm": "svelte-range-slider-pips",
"stars": 90, "stars": 93,
"tags": [ "tags": [
"components and libraries", "components and libraries",
"inputs and widgets", "inputs and widgets",
@@ -1543,7 +1544,7 @@
"category": "", "category": "",
"description": "An infinite scroll component for Svelte apps", "description": "An infinite scroll component for Svelte apps",
"npm": "svelte-infinite-loading", "npm": "svelte-infinite-loading",
"stars": 89, "stars": 90,
"tags": ["components and libraries"], "tags": ["components and libraries"],
"title": "svelte-infinite-loading", "title": "svelte-infinite-loading",
"url": "https://github.com/Skayo/svelte-infinite-loading" "url": "https://github.com/Skayo/svelte-infinite-loading"
@@ -1573,7 +1574,7 @@
"category": "Routers", "category": "Routers",
"description": "Simple Svelte Router for Single Page Applications (SPA)", "description": "Simple Svelte Router for Single Page Applications (SPA)",
"npm": "@spaceavocado/svelte-router", "npm": "@spaceavocado/svelte-router",
"stars": 53, "stars": 54,
"tags": ["routers"], "tags": ["routers"],
"title": "@spaceavocado/svelte-router", "title": "@spaceavocado/svelte-router",
"url": "https://github.com/spaceavocado/svelte-router" "url": "https://github.com/spaceavocado/svelte-router"
@@ -1602,7 +1603,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Testing", "category": "Testing",
"description": "UI component dev & test", "description": "UI component dev & test",
"stars": 64353, "stars": 64520,
"tags": ["testing"], "tags": ["testing"],
"title": "storybookjs", "title": "storybookjs",
"url": "https://github.com/storybookjs/storybook" "url": "https://github.com/storybookjs/storybook"
@@ -1642,7 +1643,7 @@
"category": "", "category": "",
"description": "A (very experimental) project to bring WebGL to Svelte", "description": "A (very experimental) project to bring WebGL to Svelte",
"npm": "@sveltejs/gl", "npm": "@sveltejs/gl",
"stars": 501, "stars": 503,
"tags": ["webgl"], "tags": ["webgl"],
"title": "@sveltejs/gl", "title": "@sveltejs/gl",
"url": "https://github.com/sveltejs/gl" "url": "https://github.com/sveltejs/gl"
@@ -1652,7 +1653,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "The `<Repl>` component used on the Svelte website", "description": "The `<Repl>` component used on the Svelte website",
"npm": "@sveltejs/svelte-repl", "npm": "@sveltejs/svelte-repl",
"stars": 239, "stars": 242,
"tags": ["components and libraries", "inputs and widgets"], "tags": ["components and libraries", "inputs and widgets"],
"title": "@sveltejs/svelte-repl", "title": "@sveltejs/svelte-repl",
"url": "https://github.com/sveltejs/svelte-repl" "url": "https://github.com/sveltejs/svelte-repl"
@@ -1662,7 +1663,7 @@
"category": "", "category": "",
"description": "A `<Scroller>` component for Svelte apps", "description": "A `<Scroller>` component for Svelte apps",
"npm": "@sveltejs/svelte-scroller", "npm": "@sveltejs/svelte-scroller",
"stars": 193, "stars": 195,
"tags": ["components and libraries", "layout and structure"], "tags": ["components and libraries", "layout and structure"],
"title": "@sveltejs/svelte-scroller", "title": "@sveltejs/svelte-scroller",
"url": "https://github.com/sveltejs/svelte-scroller" "url": "https://github.com/sveltejs/svelte-scroller"
@@ -1682,7 +1683,7 @@
"category": "Design Pattern", "category": "Design Pattern",
"description": "A virtual list component for Svelte apps", "description": "A virtual list component for Svelte apps",
"npm": "@sveltejs/svelte-virtual-list", "npm": "@sveltejs/svelte-virtual-list",
"stars": 434, "stars": 436,
"tags": ["components and libraries", "layout and structure"], "tags": ["components and libraries", "layout and structure"],
"title": "@sveltejs/svelte-virtual-list", "title": "@sveltejs/svelte-virtual-list",
"url": "https://github.com/sveltejs/svelte-virtual-list" "url": "https://github.com/sveltejs/svelte-virtual-list"
@@ -1692,7 +1693,7 @@
"category": "Routers", "category": "Routers",
"description": "abstract-state-router renderer for Svelte", "description": "abstract-state-router renderer for Svelte",
"npm": "svelte-state-renderer", "npm": "svelte-state-renderer",
"stars": 31, "stars": 32,
"tags": ["routers"], "tags": ["routers"],
"title": "svelte-state-renderer", "title": "svelte-state-renderer",
"url": "https://github.com/TehShrike/svelte-state-renderer" "url": "https://github.com/TehShrike/svelte-state-renderer"
@@ -1702,7 +1703,7 @@
"category": "Testing", "category": "Testing",
"description": "Simple and complete DOM testing utilities that encourage good practices", "description": "Simple and complete DOM testing utilities that encourage good practices",
"npm": "@testing-library/svelte", "npm": "@testing-library/svelte",
"stars": 423, "stars": 424,
"tags": ["testing"], "tags": ["testing"],
"title": "@testing-library/svelte", "title": "@testing-library/svelte",
"url": "https://github.com/testing-library/svelte-testing-library" "url": "https://github.com/testing-library/svelte-testing-library"
@@ -1712,7 +1713,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "Svelte component for file upload and file dropzone.", "description": "Svelte component for file upload and file dropzone.",
"npm": "svelte-file-dropzone", "npm": "svelte-file-dropzone",
"stars": 65, "stars": 67,
"tags": ["components and libraries", "inputs and widgets"], "tags": ["components and libraries", "inputs and widgets"],
"title": "svelte-file-dropzone", "title": "svelte-file-dropzone",
"url": "https://github.com/thecodejack/svelte-file-dropzone" "url": "https://github.com/thecodejack/svelte-file-dropzone"
@@ -1722,7 +1723,7 @@
"category": "Integration", "category": "Integration",
"description": "Svelte integration for Apollo GraphQL", "description": "Svelte integration for Apollo GraphQL",
"npm": "svelte-apollo", "npm": "svelte-apollo",
"stars": 721, "stars": 730,
"tags": ["components and libraries", "stores and state"], "tags": ["components and libraries", "stores and state"],
"title": "svelte-apollo", "title": "svelte-apollo",
"url": "https://github.com/timhall/svelte-apollo" "url": "https://github.com/timhall/svelte-apollo"
@@ -1752,7 +1753,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "A lightweight library for managing forms in Svelte", "description": "A lightweight library for managing forms in Svelte",
"npm": "svelte-forms-lib", "npm": "svelte-forms-lib",
"stars": 312, "stars": 319,
"tags": ["components and libraries", "forms and validation"], "tags": ["components and libraries", "forms and validation"],
"title": "svelte-forms-lib", "title": "svelte-forms-lib",
"url": "https://github.com/tjinauyeung/svelte-forms-lib" "url": "https://github.com/tjinauyeung/svelte-forms-lib"
@@ -1762,7 +1763,7 @@
"category": "User Interaction", "category": "User Interaction",
"description": "A responsive, draggable and resizable grid layout, for Svelte", "description": "A responsive, draggable and resizable grid layout, for Svelte",
"npm": "svelte-grid", "npm": "svelte-grid",
"stars": 553, "stars": 558,
"tags": ["components and libraries", "layout and structure"], "tags": ["components and libraries", "layout and structure"],
"title": "svelte-grid", "title": "svelte-grid",
"url": "https://github.com/vaheqelyan/svelte-grid" "url": "https://github.com/vaheqelyan/svelte-grid"
@@ -1792,7 +1793,7 @@
"category": "Design System", "category": "Design System",
"description": "A set of Svelte UI components inspired by Google's Material Design", "description": "A set of Svelte UI components inspired by Google's Material Design",
"npm": "svelte-mui", "npm": "svelte-mui",
"stars": 246, "stars": 247,
"tags": ["components and libraries", "component sets"], "tags": ["components and libraries", "component sets"],
"title": "svelte-mui", "title": "svelte-mui",
"url": "https://github.com/vikignt/svelte-mui" "url": "https://github.com/vikignt/svelte-mui"
@@ -1801,7 +1802,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "", "category": "",
"description": "Focused on making embedding and using media elements for the web simple.", "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"], "tags": ["video", "audio", "components and libraries", "inputs and widgets"],
"title": "Vime", "title": "Vime",
"url": "https://github.com/vime-js/vime" "url": "https://github.com/vime-js/vime"
@@ -1811,7 +1812,7 @@
"category": "", "category": "",
"description": "🔌 Simple Svelte component to detect offline & online changes.", "description": "🔌 Simple Svelte component to detect offline & online changes.",
"npm": "s-offline", "npm": "s-offline",
"stars": 22, "stars": 23,
"tags": ["offline and online detection", "network events"], "tags": ["offline and online detection", "network events"],
"title": "s-offline", "title": "s-offline",
"url": "https://github.com/vinayakkulkarni/s-offline" "url": "https://github.com/vinayakkulkarni/s-offline"
@@ -1861,7 +1862,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "Input masking component for Svelte (credit cards, phones, dates, numbers, etc.)", "description": "Input masking component for Svelte (credit cards, phones, dates, numbers, etc.)",
"npm": "svelte-input-mask", "npm": "svelte-input-mask",
"stars": 69, "stars": 70,
"tags": ["components and libraries", "inputs and widgets"], "tags": ["components and libraries", "inputs and widgets"],
"title": "svelte-input-mask", "title": "svelte-input-mask",
"url": "https://github.com/xnimorz/svelte-input-mask" "url": "https://github.com/xnimorz/svelte-input-mask"
@@ -1871,7 +1872,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "Easily customizable library for validation scenarios in svelte components.", "description": "Easily customizable library for validation scenarios in svelte components.",
"npm": "svelidation", "npm": "svelidation",
"stars": 46, "stars": 47,
"tags": ["components and libraries", "forms and validation"], "tags": ["components and libraries", "forms and validation"],
"title": "svelidation", "title": "svelidation",
"url": "https://github.com/yazonnile/svelidation" "url": "https://github.com/yazonnile/svelidation"
@@ -1881,7 +1882,7 @@
"category": "Forms & User Input", "category": "Forms & User Input",
"description": "A Svelte component wrapper around FullCalendar.", "description": "A Svelte component wrapper around FullCalendar.",
"npm": "svelte-fullcalendar", "npm": "svelte-fullcalendar",
"stars": 83, "stars": 84,
"tags": ["components and libraries", "time and date"], "tags": ["components and libraries", "time and date"],
"title": "svelte-fullcalendar", "title": "svelte-fullcalendar",
"url": "https://github.com/YogliB/svelte-fullcalendar" "url": "https://github.com/YogliB/svelte-fullcalendar"
@@ -1911,7 +1912,7 @@
"category": "Design System", "category": "Design System",
"description": "Svelte UI kit based on Atol design", "description": "Svelte UI kit based on Atol design",
"npm": "svelte-atoms", "npm": "svelte-atoms",
"stars": 10, "stars": 13,
"tags": ["components and libraries", "component sets"], "tags": ["components and libraries", "component sets"],
"title": "svelte-atoms", "title": "svelte-atoms",
"url": "https://gitlab.com/az67128/svelte-atoms" "url": "https://gitlab.com/az67128/svelte-atoms"
@@ -1931,7 +1932,7 @@
"category": "", "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!", "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", "npm": "svelte-tiny-virtual-list",
"stars": 117, "stars": 118,
"tags": ["components and libraries"], "tags": ["components and libraries"],
"title": "svelte-tiny-virtual-list", "title": "svelte-tiny-virtual-list",
"url": "https://github.com/Skayo/svelte-tiny-virtual-list" "url": "https://github.com/Skayo/svelte-tiny-virtual-list"
@@ -1991,7 +1992,7 @@
"category": "Integration", "category": "Integration",
"description": "Use Appwrite in Svelte components", "description": "Use Appwrite in Svelte components",
"npm": "svelte-appwrite", "npm": "svelte-appwrite",
"stars": 41, "stars": 43,
"tags": ["components and libraries", "component sets"], "tags": ["components and libraries", "component sets"],
"title": "svelte-appwrite", "title": "svelte-appwrite",
"url": "https://github.com/appwrite/sdk-for-svelte" "url": "https://github.com/appwrite/sdk-for-svelte"
@@ -2001,7 +2002,7 @@
"category": "", "category": "",
"description": "svelte-pdf provides a component for rendering PDF documents using PDF.js", "description": "svelte-pdf provides a component for rendering PDF documents using PDF.js",
"npm": "svelte-pdf", "npm": "svelte-pdf",
"stars": 67, "stars": 68,
"tags": ["components and libraries", "pdf"], "tags": ["components and libraries", "pdf"],
"title": "svelte-pdf", "title": "svelte-pdf",
"url": "https://github.com/vinodnimbalkar/svelte-pdf" "url": "https://github.com/vinodnimbalkar/svelte-pdf"
@@ -2011,7 +2012,7 @@
"category": "Routers", "category": "Routers",
"description": "Light & reactive one-component router for Svelte", "description": "Light & reactive one-component router for Svelte",
"npm": "svelte-micro", "npm": "svelte-micro",
"stars": 55, "stars": 62,
"tags": ["routers"], "tags": ["routers"],
"title": "svelte-micro", "title": "svelte-micro",
"url": "https://github.com/ayndqy/svelte-micro" "url": "https://github.com/ayndqy/svelte-micro"
@@ -2041,7 +2042,7 @@
"category": "User Interaction", "category": "User Interaction",
"description": "A collection of renderless/headless components for Svelte", "description": "A collection of renderless/headless components for Svelte",
"npm": "renderless-svelte", "npm": "renderless-svelte",
"stars": 163, "stars": 165,
"tags": ["components and libraries", "component sets"], "tags": ["components and libraries", "component sets"],
"title": "Renderless Svelte", "title": "Renderless Svelte",
"url": "https://github.com/stephane-vanraes/renderless-svelte" "url": "https://github.com/stephane-vanraes/renderless-svelte"
@@ -2064,7 +2065,7 @@
"tags": ["components and libraries", "stores and state"], "tags": ["components and libraries", "stores and state"],
"title": "@sveltestack/svelte-query", "title": "@sveltestack/svelte-query",
"url": "https://github.com/SvelteStack/svelte-query", "url": "https://github.com/SvelteStack/svelte-query",
"stars": 343 "stars": 350
}, },
{ {
"title": "svelte-parallax", "title": "svelte-parallax",
@@ -2089,7 +2090,7 @@
"category": "Stores", "category": "Stores",
"description": "A (high order) store that keep its value through pages and reloads", "description": "A (high order) store that keep its value through pages and reloads",
"npm": "@macfja/svelte-persistent-store", "npm": "@macfja/svelte-persistent-store",
"stars": 58, "stars": 61,
"tags": ["stores and state"], "tags": ["stores and state"],
"title": "Persistent Store", "title": "Persistent Store",
"url": "https://github.com/MacFJA/svelte-persistent-store" "url": "https://github.com/MacFJA/svelte-persistent-store"
@@ -2119,7 +2120,7 @@
"category": "Stores", "category": "Stores",
"description": "Immutable store for Svelte with full Typescript support and Redux Devtools integration", "description": "Immutable store for Svelte with full Typescript support and Redux Devtools integration",
"npm": "svelte-restate", "npm": "svelte-restate",
"stars": 8, "stars": 9,
"tags": ["stores and state"], "tags": ["stores and state"],
"title": "Svelte Restate", "title": "Svelte Restate",
"url": "https://github.com/endenwer/svelte-restate" "url": "https://github.com/endenwer/svelte-restate"
@@ -2129,7 +2130,7 @@
"category": "User Interaction", "category": "User Interaction",
"description": "Declarative pincode component for Svelte", "description": "Declarative pincode component for Svelte",
"npm": "svelte-pincode", "npm": "svelte-pincode",
"stars": 3, "stars": 4,
"tags": ["component sets", "components and libraries"], "tags": ["component sets", "components and libraries"],
"title": "svelte-pincode", "title": "svelte-pincode",
"url": "https://github.com/metonym/svelte-pincode" "url": "https://github.com/metonym/svelte-pincode"
@@ -2139,7 +2140,7 @@
"category": "Animations", "category": "Animations",
"description": "Official tsParticles Svelte Component - Easily create highly customizable particle animations and use them as animated backgrounds for your website.", "description": "Official tsParticles Svelte Component - Easily create highly customizable particle animations and use them as animated backgrounds for your website.",
"npm": "svelte-particles", "npm": "svelte-particles",
"stars": 2245, "stars": 2281,
"tags": ["components and libraries", "component sets", "typescript", "animations"], "tags": ["components and libraries", "component sets", "typescript", "animations"],
"title": "svelte-particles", "title": "svelte-particles",
"url": "https://github.com/matteobruni/tsparticles" "url": "https://github.com/matteobruni/tsparticles"
@@ -2149,7 +2150,7 @@
"category": "Rich Text Editor", "category": "Rich Text Editor",
"description": "Svelte components for tiptap v2", "description": "Svelte components for tiptap v2",
"npm": "svelte-tiptap", "npm": "svelte-tiptap",
"stars": 6, "stars": 8,
"tags": ["components and libraries", "rich text editor"], "tags": ["components and libraries", "rich text editor"],
"title": "svelte-tiptap", "title": "svelte-tiptap",
"url": "https://github.com/sibiraj-s/svelte-tiptap" "url": "https://github.com/sibiraj-s/svelte-tiptap"
@@ -2171,7 +2172,7 @@
"description": "Full-sized drag & drop event calendar with resource view", "description": "Full-sized drag & drop event calendar with resource view",
"image": "", "image": "",
"npm": "@event-calendar/core", "npm": "@event-calendar/core",
"stars": 39, "stars": 41,
"tags": ["components and libraries", "time and date"], "tags": ["components and libraries", "time and date"],
"title": "Event Calendar", "title": "Event Calendar",
"url": "https://github.com/vkurko/calendar" "url": "https://github.com/vkurko/calendar"
@@ -2181,7 +2182,7 @@
"category": "Design System", "category": "Design System",
"description": "Straight-forward Svelte UI, made with Windi CSS", "description": "Straight-forward Svelte UI, made with Windi CSS",
"npm": "@kahi-ui/framework", "npm": "@kahi-ui/framework",
"stars": 44, "stars": 51,
"tags": ["components and libraries"], "tags": ["components and libraries"],
"title": "Kahi UI", "title": "Kahi UI",
"url": "https://github.com/novacbn/kahi-ui" "url": "https://github.com/novacbn/kahi-ui"
@@ -2208,6 +2209,7 @@
], ],
"image": "", "image": "",
"addedOn": "2021-09-07T10:00:00Z", "addedOn": "2021-09-07T10:00:00Z",
"category": "Forms & User Input" "category": "Forms & User Input",
"stars": 4
} }
] ]

View File

@@ -21,7 +21,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Svelte", "category": "Svelte",
"description": "A truffle box for Svelte, a seed for building an Ethereum dapp using Truffle", "description": "A truffle box for Svelte, a seed for building an Ethereum dapp using Truffle",
"stars": 47, "stars": 48,
"tags": [], "tags": [],
"title": "antony/svelte-box", "title": "antony/svelte-box",
"url": "https://github.com/antony/svelte-box" "url": "https://github.com/antony/svelte-box"
@@ -57,7 +57,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Svelte", "category": "Svelte",
"description": "Electron Svelte boilerplate", "description": "Electron Svelte boilerplate",
"stars": 46, "stars": 47,
"tags": ["electron"], "tags": ["electron"],
"title": "Blade67/Sveltron", "title": "Blade67/Sveltron",
"url": "https://github.com/Blade67/Sveltron" "url": "https://github.com/Blade67/Sveltron"
@@ -219,7 +219,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Svelte", "category": "Svelte",
"description": "Tailwindcss v1 + Svelte v3 = <3", "description": "Tailwindcss v1 + Svelte v3 = <3",
"stars": 107, "stars": 106,
"tags": [], "tags": [],
"title": "marcograhl/tailwindcss-svelte-starter", "title": "marcograhl/tailwindcss-svelte-starter",
"url": "https://github.com/marcograhl/tailwindcss-svelte-starter" "url": "https://github.com/marcograhl/tailwindcss-svelte-starter"
@@ -327,7 +327,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Svelte", "category": "Svelte",
"description": "Svelte application boilerplate with Webpack, Sass, BabelJS, Fetch, PostCSS, Jest, and .Env", "description": "Svelte application boilerplate with Webpack, Sass, BabelJS, Fetch, PostCSS, Jest, and .Env",
"stars": 239, "stars": 240,
"tags": [], "tags": [],
"title": "pankod/svelte-boilerplate", "title": "pankod/svelte-boilerplate",
"url": "https://github.com/pankod/svelte-boilerplate" "url": "https://github.com/pankod/svelte-boilerplate"
@@ -400,7 +400,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Svelte", "category": "Svelte",
"description": "Clone of official Svelte template with added HMR support using Nollup", "description": "Clone of official Svelte template with added HMR support using Nollup",
"stars": 59, "stars": 60,
"tags": [], "tags": [],
"title": "rixo/svelte-template-hot", "title": "rixo/svelte-template-hot",
"url": "https://github.com/rixo/svelte-template-hot" "url": "https://github.com/rixo/svelte-template-hot"
@@ -410,7 +410,7 @@
"category": "Svelte", "category": "Svelte",
"description": "Yeoman generator generating a boilerplate Svelte.js app with all of svelte-preprocess' options", "description": "Yeoman generator generating a boilerplate Svelte.js app with all of svelte-preprocess' options",
"npm": "generator-svelte", "npm": "generator-svelte",
"stars": 24, "stars": 25,
"tags": ["preprocessors"], "tags": ["preprocessors"],
"title": "generator-svelte", "title": "generator-svelte",
"url": "https://github.com/Samuel-Martineau/generator-svelte" "url": "https://github.com/Samuel-Martineau/generator-svelte"
@@ -464,7 +464,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Svelte", "category": "Svelte",
"description": "A base for building shareable Svelte components", "description": "A base for building shareable Svelte components",
"stars": 435, "stars": 439,
"tags": [], "tags": [],
"title": "sveltejs/component-template", "title": "sveltejs/component-template",
"url": "https://github.com/sveltejs/component-template" "url": "https://github.com/sveltejs/component-template"
@@ -473,7 +473,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Sapper", "category": "Sapper",
"description": "Starter template for Sapper apps", "description": "Starter template for Sapper apps",
"stars": 724, "stars": 725,
"tags": [], "tags": [],
"title": "sveltejs/sapper-template", "title": "sveltejs/sapper-template",
"url": "https://github.com/sveltejs/sapper-template" "url": "https://github.com/sveltejs/sapper-template"
@@ -482,7 +482,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Svelte", "category": "Svelte",
"description": "Template for building basic applications with Svelte with rollup", "description": "Template for building basic applications with Svelte with rollup",
"stars": 1293, "stars": 1309,
"tags": [], "tags": [],
"title": "sveltejs/template", "title": "sveltejs/template",
"url": "https://github.com/sveltejs/template" "url": "https://github.com/sveltejs/template"
@@ -518,7 +518,7 @@
"addedOn": "2020-09-29T14:39:13Z", "addedOn": "2020-09-29T14:39:13Z",
"category": "Svelte", "category": "Svelte",
"description": "A showcase app for all Ionic UI elements to create awesome mobile apps. Published as web app too.", "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"], "tags": ["components and libraries", "component sets", "mobile"],
"title": "Ionic Svelte UI demo", "title": "Ionic Svelte UI demo",
"url": "https://github.com/Tommertom/svelte-ionic-app" "url": "https://github.com/Tommertom/svelte-ionic-app"
@@ -572,7 +572,7 @@
"addedOn": "2021-06-24T14:39:13Z", "addedOn": "2021-06-24T14:39:13Z",
"category": "SvelteKit", "category": "SvelteKit",
"description": "SvelteKit template with TailwindCSS, Storybook, TypeScript and Sass.", "description": "SvelteKit template with TailwindCSS, Storybook, TypeScript and Sass.",
"stars": 29, "stars": 30,
"tags": [], "tags": [],
"title": "tejasag/sveltetron-9000", "title": "tejasag/sveltetron-9000",
"url": "https://github.com/tejasag/sveltetron-9000" "url": "https://github.com/tejasag/sveltetron-9000"
@@ -581,7 +581,7 @@
"addedOn": "2021-06-24T14:39:14Z", "addedOn": "2021-06-24T14:39:14Z",
"category": "SvelteKit", "category": "SvelteKit",
"description": "SvelteKit Starter template with Typescript, Postcss, scss, TailwindCSS, Storybook, husky, and eslint.", "description": "SvelteKit Starter template with Typescript, Postcss, scss, TailwindCSS, Storybook, husky, and eslint.",
"stars": 144, "stars": 148,
"tags": [], "tags": [],
"title": "navneetsharmaui/sveltekit-starter", "title": "navneetsharmaui/sveltekit-starter",
"url": "https://github.com/navneetsharmaui/sveltekit-starter" "url": "https://github.com/navneetsharmaui/sveltekit-starter"
@@ -599,7 +599,7 @@
"addedOn": "2021-06-24T14:39:16Z", "addedOn": "2021-06-24T14:39:16Z",
"category": "SvelteKit", "category": "SvelteKit",
"description": "SvelteKit template with Stripe Checkout and Typescript.", "description": "SvelteKit template with Stripe Checkout and Typescript.",
"stars": 29, "stars": 30,
"tags": [], "tags": [],
"title": "srmullen/sveltekit-stripe", "title": "srmullen/sveltekit-stripe",
"url": "https://github.com/srmullen/sveltekit-stripe" "url": "https://github.com/srmullen/sveltekit-stripe"
@@ -608,7 +608,7 @@
"addedOn": "2021-06-24T14:39:17Z", "addedOn": "2021-06-24T14:39:17Z",
"category": "SvelteKit", "category": "SvelteKit",
"description": "A minimalistic blog template built with SvelteKit and MDsveX", "description": "A minimalistic blog template built with SvelteKit and MDsveX",
"stars": 35, "stars": 36,
"tags": [], "tags": [],
"title": "mvasigh/sveltekit-mdsvex-blog", "title": "mvasigh/sveltekit-mdsvex-blog",
"url": "https://github.com/mvasigh/sveltekit-mdsvex-blog" "url": "https://github.com/mvasigh/sveltekit-mdsvex-blog"
@@ -626,7 +626,7 @@
"addedOn": "2021-06-24T14:39:19Z", "addedOn": "2021-06-24T14:39:19Z",
"category": "SvelteKit", "category": "SvelteKit",
"description": "Personal website and blog written from scratch with SvelteKit and TailwindCSS.", "description": "Personal website and blog written from scratch with SvelteKit and TailwindCSS.",
"stars": 47, "stars": 50,
"tags": [], "tags": [],
"title": "mhatvan/markushatvan.com", "title": "mhatvan/markushatvan.com",
"url": "https://github.com/mhatvan/markushatvan.com" "url": "https://github.com/mhatvan/markushatvan.com"
@@ -653,7 +653,7 @@
"addedOn": "2021-06-24T14:39:22Z", "addedOn": "2021-06-24T14:39:22Z",
"category": "Svelte Add", "category": "Svelte Add",
"description": "Add Tailwind CSS to your Svelte project", "description": "Add Tailwind CSS to your Svelte project",
"stars": 282, "stars": 289,
"tags": [], "tags": [],
"title": "svelte-add/tailwindcss", "title": "svelte-add/tailwindcss",
"url": "https://github.com/svelte-add/tailwindcss" "url": "https://github.com/svelte-add/tailwindcss"
@@ -698,7 +698,7 @@
"addedOn": "2021-06-24T14:39:28Z", "addedOn": "2021-06-24T14:39:28Z",
"category": "Svelte Add", "category": "Svelte Add",
"description": "Add mdsvex to your Svelte project", "description": "Add mdsvex to your Svelte project",
"stars": 35, "stars": 36,
"tags": [], "tags": [],
"title": "svelte-add/mdsvex", "title": "svelte-add/mdsvex",
"url": "https://github.com/svelte-add/mdsvex" "url": "https://github.com/svelte-add/mdsvex"

View File

@@ -6,7 +6,7 @@
"description": "Compile Svelte components with Rollup", "description": "Compile Svelte components with Rollup",
"url": "https://github.com/sveltejs/rollup-plugin-svelte", "url": "https://github.com/sveltejs/rollup-plugin-svelte",
"tags": ["official"], "tags": ["official"],
"stars": 400 "stars": 402
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",
@@ -15,7 +15,7 @@
"description": "Webpack loader for svelte components", "description": "Webpack loader for svelte components",
"url": "https://github.com/sveltejs/svelte-loader", "url": "https://github.com/sveltejs/svelte-loader",
"tags": ["official"], "tags": ["official"],
"stars": 491 "stars": 492
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",
@@ -24,7 +24,7 @@
"description": "This is the official svelte plugin for vite", "description": "This is the official svelte plugin for vite",
"url": "https://github.com/sveltejs/vite-plugin-svelte", "url": "https://github.com/sveltejs/vite-plugin-svelte",
"tags": ["official"], "tags": ["official"],
"stars": 213 "stars": 225
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",
@@ -33,7 +33,7 @@
"description": "An esbuild plugin to compile Svelte components", "description": "An esbuild plugin to compile Svelte components",
"url": "https://github.com/EMH333/esbuild-svelte", "url": "https://github.com/EMH333/esbuild-svelte",
"tags": [], "tags": [],
"stars": 106 "stars": 110
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",
@@ -51,7 +51,7 @@
"description": "A parcel plugin that enables svelte support", "description": "A parcel plugin that enables svelte support",
"url": "https://github.com/DeMoorJasper/parcel-plugin-svelte", "url": "https://github.com/DeMoorJasper/parcel-plugin-svelte",
"tags": [], "tags": [],
"stars": 216 "stars": 217
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "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", "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", "url": "https://github.com/RedHatter/svelte-devtools",
"tags": [], "tags": [],
"stars": 553 "stars": 552
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "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", "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", "url": "https://github.com/sveltejs/svelte-preprocess",
"tags": ["official"], "tags": ["official"],
"stars": 1119 "stars": 1124
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",
@@ -141,7 +141,7 @@
"description": "Svelte preprocessor for sass", "description": "Svelte preprocessor for sass",
"url": "https://github.com/ls-age/svelte-preprocess-sass", "url": "https://github.com/ls-age/svelte-preprocess-sass",
"tags": [], "tags": [],
"stars": 83 "stars": 84
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",
@@ -186,7 +186,7 @@
"description": "Format your svelte components using prettier.", "description": "Format your svelte components using prettier.",
"url": "https://github.com/sveltejs/prettier-plugin-svelte", "url": "https://github.com/sveltejs/prettier-plugin-svelte",
"tags": ["official"], "tags": ["official"],
"stars": 381 "stars": 388
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",
@@ -213,7 +213,7 @@
"description": "Vim syntax highlighting and indentation for Svelte 3 components.", "description": "Vim syntax highlighting and indentation for Svelte 3 components.",
"url": "https://github.com/evanleck/vim-svelte", "url": "https://github.com/evanleck/vim-svelte",
"tags": [], "tags": [],
"stars": 192 "stars": 193
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",
@@ -222,7 +222,7 @@
"description": "Vim syntax and indent plugin for .svelte files", "description": "Vim syntax and indent plugin for .svelte files",
"url": "https://github.com/leafOfTree/vim-svelte-plugin", "url": "https://github.com/leafOfTree/vim-svelte-plugin",
"tags": [], "tags": [],
"stars": 65 "stars": 67
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",
@@ -231,7 +231,7 @@
"description": "Svelte support for (Neo)Vim", "description": "Svelte support for (Neo)Vim",
"url": "https://github.com/coc-extensions/coc-svelte", "url": "https://github.com/coc-extensions/coc-svelte",
"tags": [], "tags": [],
"stars": 97 "stars": 98
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",
@@ -240,7 +240,7 @@
"description": "Emacs major mode including support for Svelte", "description": "Emacs major mode including support for Svelte",
"url": "https://github.com/fxbois/web-mode", "url": "https://github.com/fxbois/web-mode",
"tags": [], "tags": [],
"stars": 1454 "stars": 1458
}, },
{ {
"addedOn": "2021-08-09T10:14:05.723Z", "addedOn": "2021-08-09T10:14:05.723Z",