4 Commits

Author SHA1 Message Date
Conventional Changelog Action
6ffe17f8b4 chore(release): v1.0.44 2021-10-26 07:51:36 +00:00
GitHub Actions
4aef61f232 feat: git add multiple files at once 2021-10-26 09:50:38 +02:00
Conventional Changelog Action
5e0ef822fd chore(release): v1.0.43 2021-10-15 07:18:53 +00:00
GitHub Actions
94635fe447 feat: reduce json output size 2021-10-15 09:17:49 +02:00
5 changed files with 103 additions and 32 deletions

View File

@@ -1,5 +1,19 @@
## <small>1.0.44 (2021-10-26)</small>
* feat: git add multiple files at once ([4aef61f](https://github.com/simonecorsi/mawesome/commit/4aef61f))
## <small>1.0.43 (2021-10-15)</small>
* chore(release): v1.0.43 ([5e0ef82](https://github.com/simonecorsi/mawesome/commit/5e0ef82))
* feat: reduce json output size ([94635fe](https://github.com/simonecorsi/mawesome/commit/94635fe))
## <small>1.0.42 (2021-10-14)</small> ## <small>1.0.42 (2021-10-14)</small>
* chore(release): v1.0.42 ([5b36813](https://github.com/simonecorsi/mawesome/commit/5b36813))
* fix(paginator): last page now correctly matches rex ([dcf9898](https://github.com/simonecorsi/mawesome/commit/dcf9898)) * fix(paginator): last page now correctly matches rex ([dcf9898](https://github.com/simonecorsi/mawesome/commit/dcf9898))
@@ -20,16 +34,3 @@
## <small>1.0.39 (2021-08-31)</small>
* chore(release): v1.0.39 ([f7a8341](https://github.com/simonecorsi/mawesome/commit/f7a8341))
* build(deps): bump path-parse from 1.0.6 to 1.0.7 ([ef137b5](https://github.com/simonecorsi/mawesome/commit/ef137b5))
## <small>1.0.38 (2021-06-23)</small>
* chore(release): v1.0.38 ([3e66d85](https://github.com/simonecorsi/mawesome/commit/3e66d85))

View File

@@ -21291,7 +21291,16 @@ class Git {
})); }));
}; };
this.config = (prop, value) => this.exec(`config ${prop} "${value}"`); this.config = (prop, value) => this.exec(`config ${prop} "${value}"`);
this.add = (file) => this.exec(`add ${file}`); this.add = (file) => {
let str = '';
if (Array.isArray(file)) {
file.map((f) => (str += ` ${f}`));
}
else {
str = file;
}
return this.exec(`add ${str}`);
};
this.commit = (message) => this.exec(`commit -m "${message}"`); this.commit = (message) => this.exec(`commit -m "${message}"`);
this.pull = () => __awaiter(this, void 0, void 0, function* () { this.pull = () => __awaiter(this, void 0, void 0, function* () {
const args = ['pull']; const args = ['pull'];
@@ -21446,18 +21455,47 @@ function paginateStars(url) {
} }
function apiGetStar(url = exports.API_STARRED_URL) { function apiGetStar(url = exports.API_STARRED_URL) {
var e_1, _a; var e_1, _a;
var _b, _c, _d, _e, _f;
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
let data = []; const data = [];
try { try {
for (var _b = __asyncValues(paginateStars(url)), _c; _c = yield _b.next(), !_c.done;) { for (var _g = __asyncValues(paginateStars(url)), _h; _h = yield _g.next(), !_h.done;) {
const stars = _c.value; const stars = _h.value;
data = data.concat(stars); for (const star of stars) {
data.push({
id: star.id,
node_id: star.node_id,
name: star.name,
full_name: star.full_name,
owner: {
login: (_b = star === null || star === void 0 ? void 0 : star.owner) === null || _b === void 0 ? void 0 : _b.login,
id: (_c = star === null || star === void 0 ? void 0 : star.owner) === null || _c === void 0 ? void 0 : _c.id,
avatar_url: (_d = star === null || star === void 0 ? void 0 : star.owner) === null || _d === void 0 ? void 0 : _d.avatar_url,
url: (_e = star === null || star === void 0 ? void 0 : star.owner) === null || _e === void 0 ? void 0 : _e.url,
html_url: (_f = star === null || star === void 0 ? void 0 : star.owner) === null || _f === void 0 ? void 0 : _f.html_url,
},
html_url: star.html_url,
description: star.description,
url: star.url,
languages_url: star.languages_url,
created_at: star.created_at,
updated_at: star.updated_at,
git_url: star.git_url,
ssh_url: star.ssh_url,
clone_url: star.clone_url,
homepage: star.homepage,
stargazers_count: star.stargazers_count,
watchers_count: star.watchers_count,
language: star.language,
topics: star.topics,
});
}
} }
} }
catch (e_1_1) { e_1 = { error: e_1_1 }; } catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally { finally {
try { try {
if (_c && !_c.done && (_a = _b.return)) yield _a.call(_b); if (_h && !_h.done && (_a = _g.return)) yield _a.call(_g);
} }
finally { if (e_1) throw e_1.error; } finally { if (e_1) throw e_1.error; }
} }
@@ -21486,10 +21524,8 @@ function pushNewFiles(files = []) {
if (!files.length) if (!files.length)
return; return;
yield git_1.default.pull(); yield git_1.default.pull();
yield Promise.all(files.map(({ filename, data }) => __awaiter(this, void 0, void 0, function* () { yield Promise.all(files.map(({ filename, data }) => fsp.writeFile(filename, data)));
yield fsp.writeFile(filename, data); yield git_1.default.add(files.map(({ filename }) => filename));
yield git_1.default.add(filename);
})));
yield git_1.default.commit(`chore(updates): updated entries in files`); yield git_1.default.commit(`chore(updates): updated entries in files`);
yield git_1.default.push(); yield git_1.default.push();
}); });

View File

@@ -1,6 +1,6 @@
{ {
"name": "mawesome", "name": "mawesome",
"version": "1.0.42", "version": "1.0.44",
"description": "Generate awesome list from user starred repositories", "description": "Generate awesome list from user starred repositories",
"main": "index.js", "main": "index.js",
"author": "Simone Corsi<simonecorsi.dev@gmail.com>", "author": "Simone Corsi<simonecorsi.dev@gmail.com>",

View File

@@ -60,7 +60,15 @@ class Git {
config = (prop: string, value: string) => config = (prop: string, value: string) =>
this.exec(`config ${prop} "${value}"`); this.exec(`config ${prop} "${value}"`);
add = (file: string) => this.exec(`add ${file}`); add = (file: string | string[]) => {
let str = '';
if (Array.isArray(file)) {
file.map((f) => (str += ` ${f}`));
} else {
str = file;
}
return this.exec(`add ${str}`);
};
commit = (message: string) => this.exec(`commit -m "${message}"`); commit = (message: string) => this.exec(`commit -m "${message}"`);

View File

@@ -9,7 +9,7 @@ import GithubApi from './api';
import link from './link'; import link from './link';
import git from './git'; import git from './git';
import type { PaginationLink, ApiGetStarResponse, Stars } from './types'; import type { PaginationLink, ApiGetStarResponse, Stars, Star } from './types';
export const REPO_USERNAME = process.env.GITHUB_REPOSITORY?.split('/')[0]; export const REPO_USERNAME = process.env.GITHUB_REPOSITORY?.split('/')[0];
export const API_STARRED_URL = `${process.env.GITHUB_API_URL}/users/${REPO_USERNAME}/starred`; export const API_STARRED_URL = `${process.env.GITHUB_API_URL}/users/${REPO_USERNAME}/starred`;
@@ -65,9 +65,37 @@ async function* paginateStars(url: string): AsyncGenerator<Stars> {
export async function apiGetStar( export async function apiGetStar(
url: string = API_STARRED_URL url: string = API_STARRED_URL
): Promise<ApiGetStarResponse> { ): Promise<ApiGetStarResponse> {
let data: Stars[] = []; const data: Partial<Star>[] = [];
for await (const stars of paginateStars(url)) { for await (const stars of paginateStars(url)) {
data = data.concat(stars); for (const star of stars) {
data.push({
id: star.id,
node_id: star.node_id,
name: star.name,
full_name: star.full_name,
owner: {
login: star?.owner?.login,
id: star?.owner?.id,
avatar_url: star?.owner?.avatar_url,
url: star?.owner?.url,
html_url: star?.owner?.html_url,
},
html_url: star.html_url,
description: star.description,
url: star.url,
languages_url: star.languages_url,
created_at: star.created_at,
updated_at: star.updated_at,
git_url: star.git_url,
ssh_url: star.ssh_url,
clone_url: star.clone_url,
homepage: star.homepage,
stargazers_count: star.stargazers_count,
watchers_count: star.watchers_count,
language: star.language,
topics: star.topics,
} as Partial<Star>);
}
} }
return (data as unknown) as Stars; return (data as unknown) as Stars;
} }
@@ -101,12 +129,10 @@ export async function pushNewFiles(files: File[] = []): Promise<any> {
await git.pull(); await git.pull();
await Promise.all( await Promise.all(
files.map(async ({ filename, data }) => { files.map(({ filename, data }) => fsp.writeFile(filename, data))
await fsp.writeFile(filename, data);
await git.add(filename);
})
); );
await git.add(files.map(({ filename }) => filename));
await git.commit(`chore(updates): updated entries in files`); await git.commit(`chore(updates): updated entries in files`);
await git.push(); await git.push();
} }