feat: saving json data for future use
This commit is contained in:
2
package-lock.json
generated
2
package-lock.json
generated
@@ -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": {
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
|
15
src/index.ts
15
src/index.ts
@@ -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> {
|
||||||
|
@@ -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'));
|
||||||
|
Reference in New Issue
Block a user