mirror of
https://github.com/tenrok/vue-select.git
synced 2026-05-17 02:29:37 +03:00
58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
require("dotenv").config();
|
|
const axios = require("axios");
|
|
const { graphql } = require("@octokit/graphql");
|
|
|
|
module.exports = async () => ({
|
|
name: "constants.js",
|
|
content: `
|
|
export const SPONSORS = ${JSON.stringify(await getSponsors())};
|
|
export const CONTRIBUTORS = ${JSON.stringify(await getContributors())};
|
|
`
|
|
});
|
|
|
|
/**
|
|
* Get a list of vue select contributors.
|
|
* @return {Promise<T>}
|
|
*/
|
|
async function getContributors() {
|
|
const { data } = await axios.get(
|
|
"https://api.github.com/repos/sagalbot/vue-select/contributors?per_page=100"
|
|
);
|
|
|
|
return data;
|
|
}
|
|
|
|
/**
|
|
* Get a list of the current sponsors. Requires GITHUB_TOKEN to be set.
|
|
* @return {Promise<*[]|ProfileNode[]|postcss.ChildNode[]|Array<parser.Node>|[]>}
|
|
*/
|
|
async function getSponsors() {
|
|
const query = `
|
|
{
|
|
user(login: "sagalbot") {
|
|
sponsorshipsAsMaintainer(first: 100) {
|
|
nodes {
|
|
createdAt
|
|
sponsor {
|
|
login
|
|
avatarUrl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
try {
|
|
const { user } = await graphql(query, {
|
|
headers: {
|
|
authorization: `token ${process.env.GITHUB_TOKEN || ""}`
|
|
}
|
|
});
|
|
return user.sponsorshipsAsMaintainer.nodes;
|
|
} catch (e) {
|
|
console.log(`${e.status} ${e.name} - Couldn't fetch sponsor data.`);
|
|
return [];
|
|
}
|
|
}
|