From 86a8ea588253e48584afddd5cb5afd19e1eefb3b Mon Sep 17 00:00:00 2001 From: Ashley Date: Tue, 28 Nov 2023 14:17:11 -0500 Subject: [PATCH] added babel --- bin/build.mjs | 17 +++- dist/main.js | 219 ++-------------------------------------------- package-lock.json | 17 ++++ package.json | 2 +- 4 files changed, 38 insertions(+), 217 deletions(-) diff --git a/bin/build.mjs b/bin/build.mjs index 9a6dbb0a..1113d14c 100755 --- a/bin/build.mjs +++ b/bin/build.mjs @@ -1,12 +1,21 @@ #!/usr/bin/env node import * as esbuild from 'esbuild' +import babel from 'esbuild-plugin-babel' + await esbuild.build({ entryPoints: ['src/main.js'], bundle: true, outfile: 'dist/main.js', platform: 'node', - packages: 'external' -}) - - + packages: 'external', + minify: true, + loader: { + '.js': 'jsx', + }, + plugins: [ + babel({ + presets: ['@babel/preset-env'], + }), + ], +}) \ No newline at end of file diff --git a/dist/main.js b/dist/main.js index eb8aa4b8..d86a8de9 100644 --- a/dist/main.js +++ b/dist/main.js @@ -1,212 +1,7 @@ -var __getOwnPropNames = Object.getOwnPropertyNames; -var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; - -// src/colors.js -var require_colors = __commonJS({ - "src/colors.js"(exports) { - var COLORS = { - reset: "\x1B[0m", - cyan: "\x1B[36m", - green: "\x1B[32m", - red: "\x1B[31m", - yellow: "\x1B[33m", - magenta: "\x1B[35m" - }; - exports.COLORS = COLORS; - } -}); - -// src/console-results.js -var require_console_results = __commonJS({ - "src/console-results.js"(exports) { - var { COLORS } = require_colors(); - exports.ConsoleResults = function ConsoleResults2(runnerResults) { - let grandTotalPassedTests = 0; - let grandTotalTests = 0; - runnerResults.forEach(({ runner, results }, index) => { - if (index > 0) { - console.log(`${COLORS.magenta}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}${COLORS.reset} -`); - } - console.log(`${COLORS.cyan}\u{1F504} Processing: ${runner}${COLORS.reset}`); - let passedTests = 0; - const totalTests = results.tests.length; - results.tests.forEach((test) => { - if (test.status === "pass") { - console.log(`${COLORS.green}\u2705 ${test.name} -${COLORS.reset}`); - passedTests += 1; - } else { - console.log(`${COLORS.red}\u274C ${test.name} -`); - console.log(`Error: ${test.message || `Failed to run test '${test.name}'`} -${COLORS.reset}`); - } - }); - grandTotalPassedTests += passedTests; - grandTotalTests += totalTests; - const points = passedTests / totalTests * 100; - console.log(`Total points for ${runner}: ${points.toFixed(2)}/100 -`); - }); - const grandTotalPoints = grandTotalPassedTests / grandTotalTests * 100; - console.log(`${COLORS.cyan}\u{1F3C6} Grand Total Points: ${grandTotalPoints.toFixed(2)}/100${COLORS.reset} -`); - }; - } -}); - -// src/notify-classroom.js -var require_notify_classroom = __commonJS({ - "src/notify-classroom.js"(exports) { - var core2 = require("@actions/core"); - var github = require("@actions/github"); - exports.NotifyClassroom = async function NotifyClassroom2(runnerResults) { - const { totalScore, maxScore } = runnerResults.reduce((acc, { results }) => { - if (!results.max_score) - return acc; - acc.maxScore += results.max_score; - results.tests.forEach(({ score }) => { - acc.totalScore += score; - }); - return acc; - }, { totalScore: 0, maxScore: 0 }); - if (!maxScore) - return; - const token = process.env.GITHUB_TOKEN || core2.getInput("token"); - if (!token || token === "") - return; - const octokit = github.getOctokit(token); - if (!octokit) - return; - const nwo = process.env.GITHUB_REPOSITORY || "/"; - const [owner, repo] = nwo.split("/"); - if (!owner) - return; - if (!repo) - return; - const runId = parseInt(process.env.GITHUB_RUN_ID || ""); - if (Number.isNaN(runId)) - return; - const checkRunsResponse = await octokit.rest.checks.listForRepo({ - owner, - repo, - check_name: "Autograding" - }); - const checkRun = checkRunsResponse.data.check_runs.find((cr) => cr.name === "Autograding" && cr.check_suite.workflow_run_id === runId); - if (!checkRun) - return; - const text = `Points ${totalScore}/${maxScore}`; - await octokit.rest.checks.update({ - owner, - repo, - check_run_id: checkRun.id, - output: { - title: "Autograding", - summary: text, - text, - annotations: [{ - // Using the `.github` path is what GitHub Actions does - path: ".github", - start_line: 1, - end_line: 1, - annotation_level: "notice", - message: text, - title: "Autograding complete" - }] - } - }); - }; - } -}); - -// src/aggregate-results.js -var require_aggregate_results = __commonJS({ - "src/aggregate-results.js"(exports) { - var { COLORS } = require_colors(); - var Table = require("cli-table3"); - var getTestScore = (results) => { - const score = results.tests.reduce((acc, { status }) => { - if (status === "pass") { - return acc + 1; - } - return acc; - }, 0); - return score / results.tests.length * (getMaxScore(results) || 1); - }; - var getAllMaxScores = (runnerResults) => { - return runnerResults.reduce((acc, { results }) => { - return acc + results.max_score; - }, 0); - }; - var getMaxScore = (results) => { - return results.max_score || 0; - }; - var getWeight = (maxScore, allMaxScores) => { - if (maxScore === 0) { - return 0 .toFixed(2); - } - const weight = allMaxScores !== 0 ? maxScore / allMaxScores * 100 : 0; - return Math.round(weight).toFixed(2); - }; - function AggregateResults2(runnerResults) { - const table = new Table({ - head: ["Test Runner Name", "Test Score", "Max Score", "Weight"], - colWidths: [20, 13, 13, 10] - }); - const allMaxScores = getAllMaxScores(runnerResults); - console.log(COLORS.magenta, "Test Runner Summary", COLORS.reset); - let totals = [ - { - score: 0, - maxScore: 0, - weight: 0 - } - ]; - runnerResults.forEach(({ runner, results }) => { - const maxScore = getMaxScore(results); - const weight = getWeight(maxScore, allMaxScores); - const score = getTestScore(results); - table.push([runner.trim(), score, maxScore, weight]); - totals.push({ - score, - maxScore, - weight - }); - }); - table.push([ - "Total: ", - "----", - "----", - totals.reduce((acc, { score, weight, maxScore }) => { - return acc + (score || 0) / (maxScore || 1) * weight; - }, 0).toFixed(2) + "%" - ]); - console.log(table.toString()); - } - exports.AggregateResults = AggregateResults2; - } -}); - -// src/main.js -var core = require("@actions/core"); -var { ConsoleResults } = require_console_results(); -var { NotifyClassroom } = require_notify_classroom(); -var { AggregateResults } = require_aggregate_results(); -try { - const runnerResults = core.getInput("runners").split(",").map((runner) => { - const encodedResults = process.env[`${runner.trim().toUpperCase()}_RESULTS`]; - const json = Buffer.from(encodedResults, "base64").toString("utf-8"); - return { runner, results: JSON.parse(json) }; - }); - ConsoleResults(runnerResults); - NotifyClassroom(runnerResults); - AggregateResults(runnerResults); - if (runnerResults.some((r) => r.results.status === "fail")) { - core.setFailed("Some tests failed."); - } -} catch (error) { - core.setFailed(error.message); -} +var d=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var p=d(R=>{var N={reset:"\x1B[0m",cyan:"\x1B[36m",green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",magenta:"\x1B[35m"};R.COLORS=N});var $=d(T=>{var{COLORS:i}=p();T.ConsoleResults=function(t){let o=0,s=0;t.forEach(({runner:n,results:r},c)=>{c>0&&console.log(`${i.magenta}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}\u{1F680}${i.reset} +`),console.log(`${i.cyan}\u{1F504} Processing: ${n}${i.reset}`);let a=0,m=r.tests.length;r.tests.forEach(l=>{l.status==="pass"?(console.log(`${i.green}\u2705 ${l.name} +${i.reset}`),a+=1):(console.log(`${i.red}\u274C ${l.name} +`),console.log(`Error: ${l.message||`Failed to run test '${l.name}'`} +${i.reset}`))}),o+=a,s+=m;let x=a/m*100;console.log(`Total points for ${n}: ${x.toFixed(2)}/100 +`)});let u=o/s*100;console.log(`${i.cyan}\u{1F3C6} Grand Total Points: ${u.toFixed(2)}/100${i.reset} +`)}});var k=d(_=>{var q=require("@actions/core"),F=require("@actions/github");_.NotifyClassroom=async function(t){let{totalScore:o,maxScore:s}=t.reduce((g,{results:h})=>(h.max_score&&(g.maxScore+=h.max_score,h.tests.forEach(({score:C})=>{g.totalScore+=C})),g),{totalScore:0,maxScore:0});if(!s)return;let u=process.env.GITHUB_TOKEN||q.getInput("token");if(!u||u==="")return;let n=F.getOctokit(u);if(!n)return;let r=process.env.GITHUB_REPOSITORY||"/",[c,a]=r.split("/");if(!c||!a)return;let m=parseInt(process.env.GITHUB_RUN_ID||"");if(Number.isNaN(m))return;let l=(await n.rest.checks.listForRepo({owner:c,repo:a,check_name:"Autograding"})).data.check_runs.find(g=>g.name==="Autograding"&&g.check_suite.workflow_run_id===m);if(!l)return;let f=`Points ${o}/${s}`;await n.rest.checks.update({owner:c,repo:a,check_run_id:l.id,output:{title:"Autograding",summary:f,text:f,annotations:[{path:".github",start_line:1,end_line:1,annotation_level:"notice",message:f,title:"Autograding complete"}]}})}});var y=d(w=>{var{COLORS:O}=p(),I=require("cli-table3"),A=e=>e.tests.reduce((o,{status:s})=>s==="pass"?o+1:o,0)/e.tests.length*(b(e)||1),E=e=>e.reduce((t,{results:o})=>t+o.max_score,0),b=e=>e.max_score||0,P=(e,t)=>{if(e===0)return 0 .toFixed(2);let o=t!==0?e/t*100:0;return Math.round(o).toFixed(2)};function U(e){let t=new I({head:["Test Runner Name","Test Score","Max Score","Weight"],colWidths:[20,13,13,10]}),o=E(e);console.log(O.magenta,"Test Runner Summary",O.reset);let s=[{score:0,maxScore:0,weight:0}];e.forEach(({runner:u,results:n})=>{let r=b(n),c=P(r,o),a=A(n);t.push([u.trim(),a,r,c]),s.push({score:a,maxScore:r,weight:c})}),t.push(["Total: ","----","----",s.reduce((u,{score:n,weight:r,maxScore:c})=>u+(n||0)/(c||1)*r,0).toFixed(2)+"%"]),console.log(t.toString())}w.AggregateResults=U});var S=require("@actions/core"),{ConsoleResults:v}=$(),{NotifyClassroom:L}=k(),{AggregateResults:B}=y();try{let e=S.getInput("runners").split(",").map(t=>{let o=process.env[`${t.trim().toUpperCase()}_RESULTS`],s=Buffer.from(o,"base64").toString("utf-8");return{runner:t,results:JSON.parse(s)}});v(e),L(e),B(e),e.some(t=>t.results.status==="fail")&&S.setFailed("Some tests failed.")}catch(e){S.setFailed(e.message)} diff --git a/package-lock.json b/package-lock.json index 71d0b74c..200d64ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ }, "devDependencies": { "esbuild": "0.19.5", + "esbuild-plugin-babel": "^0.2.3", "eslint": "^8.52.0", "eslint-config-prettier": "^9.0.0", "eslint-config-standard": "^17.1.0", @@ -3068,6 +3069,15 @@ "@esbuild/win32-x64": "0.19.5" } }, + "node_modules/esbuild-plugin-babel": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/esbuild-plugin-babel/-/esbuild-plugin-babel-0.2.3.tgz", + "integrity": "sha512-hGLL31n+GvBhkHUpPCt1sU4ynzOH7I1IUkKhera66jigi4mHFPL6dfJo44L6/1rfcZudXx+wGdf9VOifzDPqYQ==", + "dev": true, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -9034,6 +9044,13 @@ "@esbuild/win32-x64": "0.19.5" } }, + "esbuild-plugin-babel": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/esbuild-plugin-babel/-/esbuild-plugin-babel-0.2.3.tgz", + "integrity": "sha512-hGLL31n+GvBhkHUpPCt1sU4ynzOH7I1IUkKhera66jigi4mHFPL6dfJo44L6/1rfcZudXx+wGdf9VOifzDPqYQ==", + "dev": true, + "requires": {} + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", diff --git a/package.json b/package.json index 832efec2..5659f842 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ }, "devDependencies": { "esbuild": "0.19.5", + "esbuild-plugin-babel": "^0.2.3", "eslint": "^8.52.0", "eslint-config-prettier": "^9.0.0", "eslint-config-standard": "^17.1.0", @@ -26,7 +27,6 @@ "eslint-plugin-promise": "^6.1.1", "jest": "^29.7.0", "prettier": "3.0.3" - }, "description": "" }