feat: saving json data for future use

This commit is contained in:
GitHub Actions
2021-06-24 00:02:40 +02:00
parent cee1906a39
commit 7ceb9cb783
5 changed files with 36 additions and 11 deletions

2
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{ {
"name": "mawesome", "name": "mawesome",
"version": "1.0.34", "version": "1.0.35",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@@ -77,12 +77,26 @@ export function generateMd(data: string): Promise<string> {
}); });
} }
export const OUTPUT_FILENAME: string = export const MARKDOWN_FILENAME: string =
core.getInput('output-filename') || 'README.md'; core.getInput('output-filename') || 'README.md';
export async function pushNewFile(markdown: string): Promise<any> {
await fsp.writeFile(OUTPUT_FILENAME, markdown); type File = {
filename: string;
data: string;
};
export async function pushNewFiles(files: File[] = []): Promise<any> {
if (!files.length) return;
await git.pull(); await git.pull();
await git.add(OUTPUT_FILENAME);
await git.commit(`chore(${OUTPUT_FILENAME}): updated ${OUTPUT_FILENAME}`); await Promise.all(
files.map(async ({ filename, data }) => {
await fsp.writeFile(filename, data);
await git.add(filename);
await git.commit(`chore(${filename}): updated ${filename}`);
})
);
await git.push(); await git.push();
} }

View File

@@ -1,11 +1,13 @@
import * as core from '@actions/core'; import * as core from '@actions/core';
import { data } from 'remark';
import { import {
renderer, renderer,
paginate, paginate,
REPO_USERNAME, REPO_USERNAME,
generateMd, generateMd,
pushNewFile, pushNewFiles,
MARKDOWN_FILENAME,
} from './helpers'; } from './helpers';
import type { SortedLanguageList, Stars, Star } from './types'; import type { SortedLanguageList, Stars, Star } from './types';
@@ -41,7 +43,16 @@ export async function main(): Promise<any> {
const markdown: string = await generateMd(rendered); const markdown: string = await generateMd(rendered);
await pushNewFile(markdown); await pushNewFiles([
{
filename: MARKDOWN_FILENAME,
data: markdown,
},
{
filename: 'data.json',
data: JSON.stringify(sortedByLanguages, null, 2),
},
]);
} }
export async function run(): Promise<any> { export async function run(): Promise<any> {

View File

@@ -38,7 +38,7 @@ import {
apiGetStar, apiGetStar,
paginate, paginate,
generateMd, generateMd,
pushNewFile, pushNewFiles,
} from '../src/helpers'; } from '../src/helpers';
test('wait should wait', async (t) => { test('wait should wait', async (t) => {
@@ -97,7 +97,7 @@ test('generateMd should create TOC', async (t) => {
}); });
test('should push', async (t) => { test('should push', async (t) => {
await pushNewFile('# title'); await pushNewFiles([{filename: "README.md", data: '# title'}]);
t.true(writeFile.calledWith('README.md', '# title')); t.true(writeFile.calledWith('README.md', '# title'));
t.true(pull.called); t.true(pull.called);
t.true(add.calledWith('README.md')); t.true(add.calledWith('README.md'));