Compare commits

..

No commits in common. "main" and "v0.5.2" have entirely different histories.
main ... v0.5.2

21 changed files with 10488 additions and 5938 deletions

View file

@ -1,11 +0,0 @@
image: alpine/edge
secrets:
- bbfcb6dc-7c4a-42ee-a11a-022f0339a133
environment:
REPO: astro-github-stats
GH_USER: ayoayco
tasks:
- push-mirror: |
cd ~/"${REPO}"
git config --global credential.helper store
git push --mirror "https://github.com/${GH_USER}/${REPO}"

1
.eslintignore Normal file
View file

@ -0,0 +1 @@
test/**/*.js

17
.eslintrc.cjs Normal file
View file

@ -0,0 +1,17 @@
/** @type {import("@types/eslint").Linter.Config} */
module.exports = {
env: {
node: true,
},
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint', 'prettier'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
rules: {
// We don't want to leak logging into our user's console unless it's an error
'no-console': ['error', { allow: ['warn', 'error'] }],
},
};

1
.gitignore vendored
View file

@ -1,4 +1,3 @@
.astro
node_modules node_modules
npm-debug.log* npm-debug.log*

View file

@ -1 +0,0 @@
npm run lint

View file

@ -1,7 +0,0 @@
# someday let's think about formatting html
**/*.html
**/*.md
**/*.css
**/*.yml
**/*.yaml

24
.prettierrc.cjs Normal file
View file

@ -0,0 +1,24 @@
/** @type {import("@types/prettier").Options} */
module.exports = {
printWidth: 100,
semi: true,
singleQuote: true,
tabWidth: 2,
trailingComma: 'es5',
useTabs: true,
plugins: ['./node_modules/prettier-plugin-astro'],
overrides: [
{
files: '*.astro',
options: {
parser: 'astro',
},
},
{
files: ['.*', '*.json', '*.md', '*.toml', '*.yml'],
options: {
useTabs: false,
},
},
],
};

13
.vscode/settings.json vendored
View file

@ -1,15 +1,8 @@
{ {
"editor.formatOnSave": true, "editor.formatOnSave": true,
"editor.codeActionsOnSave": { "editor.codeActionsOnSave": {
"source.fixAll": "explicit" "source.fixAll": true
}, },
"prettier.documentSelectors": ["**/*.astro"], "cSpell.words": ["Astro"],
"prettier.configPath": "", "prettier.documentSelectors": ["**/*.astro"]
"prettier.ignorePath": "",
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
} }

24
LICENSE
View file

@ -1,24 +0,0 @@
BSD 2-Clause License
Copyright (c) 2022, Ayo Ayco
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -1,6 +1,3 @@
> [!Note]
> Project moved to [SourceHut](https://git.sr.ht/~ayoayco/astro-github-stats)
# Astro GitHub Stats ✨ # Astro GitHub Stats ✨
[![npm](https://img.shields.io/npm/v/astro-github-stats)](https://www.npmjs.com/package/astro-github-stats) [![npm](https://img.shields.io/npm/v/astro-github-stats)](https://www.npmjs.com/package/astro-github-stats)
@ -16,7 +13,7 @@ Features:
1. Embed GitHub Account top languages 1. Embed GitHub Account top languages
1. Embed GitHub Repositories info with stars 1. Embed GitHub Repositories info with stars
# Installation # Insatllation
``` ```
npm i astro-github-stats npm i astro-github-stats

View file

@ -1,8 +1,4 @@
import { defineConfig } from 'astro/config' import { defineConfig } from 'astro/config';
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({});
image: {
// domains: ['github-readme-stats.vercel.app'],
},
})

1
demo/src/env.d.ts vendored
View file

@ -1,2 +1 @@
/// <reference path="../.astro/types.d.ts" />
/// <reference types="astro/client" /> /// <reference types="astro/client" />

View file

@ -1,5 +1,5 @@
--- ---
import GithubStats from '../../../' import GithubStats from '../../../';
--- ---
<html lang="en"> <html lang="en">

View file

@ -1,3 +1,3 @@
{ {
"extends": "astro/tsconfigs/strictest" "extends": "astro/tsconfigs/strictest"
} }

View file

@ -1,41 +0,0 @@
import globals from 'globals'
import eslintPluginAstro from 'eslint-plugin-astro'
import jsPlugin from '@eslint/js'
import tseslint from 'typescript-eslint'
import astroParser from 'astro-eslint-parser'
export default [
{
languageOptions: {
globals: {
...globals.browser,
...globals.node,
},
},
},
// add more generic rule sets here, such as:
jsPlugin.configs.recommended,
...tseslint.configs.recommended,
...eslintPluginAstro.configs['recommended'],
...eslintPluginAstro.configs['jsx-a11y-recommended'],
{
ignores: [
'dist/*',
'.output/*',
'.astro/*',
'site/*',
'templates/*',
'**/node_modules/*',
'**/env.d.ts',
],
},
{
files: ['**/*.astro'],
languageOptions: {
parser: astroParser,
parserOptions: {
parser: tseslint.parser,
},
},
},
]

View file

@ -1,3 +1,3 @@
import GithubStats from './src/GithubStats.astro' import GithubStats from './src/GithubStats.astro';
export default GithubStats export default GithubStats;
export * from './src/GithubStats.astro' export * from './src/GithubStats.astro';

10404
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -3,7 +3,7 @@
"description": "Embed GitHub stats in your Astro page ✨", "description": "Embed GitHub stats in your Astro page ✨",
"repository": "https://github.com/ayoayco/astro-github-stats", "repository": "https://github.com/ayoayco/astro-github-stats",
"homepage": "https://ayco.io/showcase/astro-github-stats", "homepage": "https://ayco.io/showcase/astro-github-stats",
"version": "0.8.0", "version": "0.5.2",
"author": { "author": {
"name": "Ayo Ayco", "name": "Ayo Ayco",
"email": "ayo@ayco.io", "email": "ayo@ayco.io",
@ -25,33 +25,26 @@
"scripts": { "scripts": {
"start": "npm run dev -w demo", "start": "npm run dev -w demo",
"dev": "npm run dev -w demo", "dev": "npm run dev -w demo",
"format": "prettier . --write", "format": "prettier -w .",
"lint": "eslint . --config eslint.config.mjs", "lint": "eslint . --ext .ts,.js",
"build": "tsc", "build": "tsc",
"demo": "npm run dev -w demo", "demo": "npm run dev -w demo"
"prepare": "husky"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.17.0", "@types/eslint": "^8.4.6",
"@types/eslint": "^9.6.1", "@types/node": "^18.7.18",
"@types/node": "^22.10.2", "@types/prettier": "^2.7.0",
"@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/eslint-plugin": "^5.37.0",
"@typescript-eslint/parser": "^8.18.2", "@typescript-eslint/parser": "^5.37.0",
"astro-eslint-parser": "^1.1.0", "eslint": "^8.23.1",
"eslint": "^9.17.0", "eslint-config-prettier": "^8.5.0",
"eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-astro": "^1.3.1", "prettier": "^2.7.1",
"eslint-plugin-jsx-a11y": "^6.10.2", "prettier-plugin-astro": "^0.5.4",
"eslint-plugin-prettier": "^5.2.1", "typescript": "^4.8.3"
"globals": "^15.14.0",
"husky": "^9.1.7",
"prettier": "^3.4.2",
"prettier-plugin-astro": "^0.14.1",
"typescript": "^5.7.2",
"typescript-eslint": "^8.18.2"
}, },
"peerDependencies": { "peerDependencies": {
"astro": ">=5.0.0" "astro": "^2.0.6"
}, },
"license": "ISC", "license": "ISC",
"workspaces": [ "workspaces": [

File diff suppressed because it is too large Load diff

View file

@ -1,21 +0,0 @@
/**
* @see https://prettier.io/docs/en/configuration.html
* @type {import("prettier").Config}
*/
const config = {
trailingComma: 'es5',
tabWidth: 2,
semi: false,
singleQuote: true,
plugins: ['prettier-plugin-astro'],
overrides: [
{
files: '*.astro',
options: {
parser: 'astro',
},
},
],
}
export default config

View file

@ -1,29 +1,28 @@
--- ---
import {Image} from 'astro:assets'
export interface Props { export interface Props {
username: string username: string;
topLanguages?: boolean topLanguages?: boolean;
repo?: string repo?: string;
showIcons?: boolean showIcons?: boolean;
altText?: string altText?: string;
} }
const { username, repo, topLanguages, showIcons, altText } = Astro.props const { username, repo, topLanguages, showIcons, altText } = Astro.props;
const baseUrl = 'https://github-readme-stats.vercel.app/api/' const baseUrl = 'https://github-readme-stats.vercel.app/api/';
let url = `${baseUrl}?username=${username}&show_icons=${!!showIcons}` let url = `${baseUrl}?username=${username}&show_icons=${!!showIcons}`;
let alt = `GitHub stats for account: ${username}` let alt = `GitHub stats for account: ${username}`;
if (repo) { if (repo) {
url = `${baseUrl}/pin/?username=${username}&repo=${repo}` url = `${baseUrl}/pin/?username=${username}&repo=${repo}`;
alt = `GitHub stats for repository: ${username}/${repo}` alt = `GitHub stats for repository: ${username}/${repo}`;
} }
if (topLanguages) { if (topLanguages) {
url = `${baseUrl}top-langs?username=${username}` url = `${baseUrl}top-langs?username=${username}`;
alt = `GitHub top languages for account: ${username}` alt = `GitHub top languages for account: ${username}`;
} }
alt = altText || alt alt = altText || alt;
--- ---
<Image inferSize={true} src={url} alt={alt} /> <img src={url} alt={alt} />