Skip to content

Commit e7aa7b7

Browse files
author
release bot
committed
📦 2.0.0-rc.1
1 parent 6b320a1 commit e7aa7b7

File tree

3 files changed

+162
-66
lines changed

3 files changed

+162
-66
lines changed

‎action.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ author: "platane"
44

55
runs:
66
using: docker
7-
image: docker://platane/snk@sha256:74d02183a9a4adb8e00d9f50e6eb5035a5b6ef02644d848363ef3301235ebd1d
7+
image: docker://platane/snk@sha256:300fb94d3b1214e6c229990b458286a8f1c4c68a178b1b59b670c9fcac7c80d1
88

99
inputs:
1010
github_user_name:

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "snk",
33
"description": "Generates a snake game from a github user contributions grid",
4-
"version": "2.0.0",
4+
"version": "2.0.0-rc.1",
55
"private": true,
66
"repository": "github:platane/snk",
77
"devDependencies": {

‎svg-only/dist/index.js‎

Lines changed: 160 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -32781,55 +32781,51 @@ var userContributionToGrid_1 = __webpack_require__(5740);
3278132781
var getBestRoute_1 = __webpack_require__(2705);
3278232782
var snake_1 = __webpack_require__(7087);
3278332783
var getPathToPose_1 = __webpack_require__(6963);
32784-
var generateContributionSnake = function (userName, format) { return __awaiter(void 0, void 0, void 0, function () {
32785-
var _a, cells, colorScheme, grid, snake, drawOptions, gifOptions, chain, output, createGif, _b, createSvg;
32786-
return __generator(this, function (_c) {
32787-
switch (_c.label) {
32784+
var generateContributionSnake = function (userName, outputs) { return __awaiter(void 0, void 0, void 0, function () {
32785+
var _a, cells, colorScheme, grid, snake, chain;
32786+
return __generator(this, function (_b) {
32787+
switch (_b.label) {
3278832788
case 0:
3278932789
console.log("🎣 fetching github user contribution");
3279032790
return [4 /*yield*/, (0, github_user_contribution_1.getGithubUserContribution)(userName)];
3279132791
case 1:
32792-
_a = _c.sent(), cells = _a.cells, colorScheme = _a.colorScheme;
32792+
_a = _b.sent(), cells = _a.cells, colorScheme = _a.colorScheme;
3279332793
grid = (0, userContributionToGrid_1.userContributionToGrid)(cells, colorScheme);
3279432794
snake = snake_1.snake4;
32795-
drawOptions = {
32796-
sizeBorderRadius: 2,
32797-
sizeCell: 16,
32798-
sizeDot: 12,
32799-
colorBorder: "#1b1f230a",
32800-
colorDots: colorScheme,
32801-
colorEmpty: colorScheme[0],
32802-
colorSnake: "purple",
32803-
cells: cells,
32804-
dark: {
32805-
colorEmpty: "#161b22",
32806-
colorDots: { 1: "#01311f", 2: "#034525", 3: "#0f6d31", 4: "#00c647" }
32807-
}
32808-
};
32809-
gifOptions = { frameDuration: 100, step: 1 };
3281032795
console.log("📡 computing best route");
3281132796
chain = (0, getBestRoute_1.getBestRoute)(grid, snake);
3281232797
chain.push.apply(chain, (0, getPathToPose_1.getPathToPose)(chain.slice(-1)[0], snake));
32813-
output = {};
32814-
if (!format.gif) return [3 /*break*/, 4];
32815-
console.log("📹 creating gif");
32816-
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(340)); })];
32817-
case 2:
32818-
createGif = (_c.sent()).createGif;
32819-
_b = output;
32820-
return [4 /*yield*/, createGif(grid, chain, drawOptions, gifOptions)];
32821-
case 3:
32822-
_b.gif = _c.sent();
32823-
_c.label = 4;
32824-
case 4:
32825-
if (!format.svg) return [3 /*break*/, 6];
32826-
console.log("🖌 creating svg");
32827-
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(7415)); })];
32828-
case 5:
32829-
createSvg = (_c.sent()).createSvg;
32830-
output.svg = createSvg(grid, chain, drawOptions, gifOptions);
32831-
_c.label = 6;
32832-
case 6: return [2 /*return*/, output];
32798+
return [2 /*return*/, Promise.all(outputs.map(function (out, i) { return __awaiter(void 0, void 0, void 0, function () {
32799+
var format, drawOptions, gifOptions, _a, createSvg, createGif;
32800+
return __generator(this, function (_b) {
32801+
switch (_b.label) {
32802+
case 0:
32803+
if (!out)
32804+
return [2 /*return*/];
32805+
format = out.format, drawOptions = out.drawOptions, gifOptions = out.gifOptions;
32806+
_a = format;
32807+
switch (_a) {
32808+
case "svg": return [3 /*break*/, 1];
32809+
case "gif": return [3 /*break*/, 3];
32810+
}
32811+
return [3 /*break*/, 6];
32812+
case 1:
32813+
console.log("\uD83D\uDD8C creating svg (outputs[".concat(i, "])"));
32814+
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(7415)); })];
32815+
case 2:
32816+
createSvg = (_b.sent()).createSvg;
32817+
return [2 /*return*/, createSvg(grid, chain, drawOptions, gifOptions)];
32818+
case 3:
32819+
console.log("\uD83D\uDCF9 creating gif (outputs[".concat(i, "])"));
32820+
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(340)); })];
32821+
case 4:
32822+
createGif = (_b.sent()).createGif;
32823+
return [4 /*yield*/, createGif(grid, chain, drawOptions, gifOptions)];
32824+
case 5: return [2 /*return*/, _b.sent()];
32825+
case 6: return [2 /*return*/];
32826+
}
32827+
});
32828+
}); }))];
3283332829
}
3283432830
});
3283532831
}); };
@@ -32907,30 +32903,30 @@ var fs = __importStar(__webpack_require__(5747));
3290732903
var path = __importStar(__webpack_require__(5622));
3290832904
var core = __importStar(__webpack_require__(7117));
3290932905
var generateContributionSnake_1 = __webpack_require__(8847);
32906+
var outputsOptions_1 = __webpack_require__(3379);
3291032907
(function () { return __awaiter(void 0, void 0, void 0, function () {
32911-
var userName, format, _a, svg, gif, e_1;
32908+
var userName, outputs, results_1, e_1;
32909+
var _a;
3291232910
return __generator(this, function (_b) {
3291332911
switch (_b.label) {
3291432912
case 0:
3291532913
_b.trys.push([0, 2, , 3]);
3291632914
userName = core.getInput("github_user_name");
32917-
format = {
32918-
svg: core.getInput("svg_out_path"),
32919-
gif: core.getInput("gif_out_path")
32920-
};
32921-
return [4 /*yield*/, (0, generateContributionSnake_1.generateContributionSnake)(userName, format)];
32915+
outputs = (0, outputsOptions_1.parseOutputsOption)((_a = core.getMultilineInput("outputs")) !== null && _a !== void 0 ? _a : [
32916+
core.getInput("gif_out_path"),
32917+
core.getInput("svg_out_path"),
32918+
]);
32919+
return [4 /*yield*/, (0, generateContributionSnake_1.generateContributionSnake)(userName, outputs)];
3292232920
case 1:
32923-
_a = _b.sent(), svg = _a.svg, gif = _a.gif;
32924-
if (svg) {
32925-
fs.mkdirSync(path.dirname(format.svg), { recursive: true });
32926-
fs.writeFileSync(format.svg, svg);
32927-
core.setOutput("svg_out_path", format.svg);
32928-
}
32929-
if (gif) {
32930-
fs.mkdirSync(path.dirname(format.gif), { recursive: true });
32931-
fs.writeFileSync(format.gif, gif);
32932-
core.setOutput("gif_out_path", format.gif);
32933-
}
32921+
results_1 = _b.sent();
32922+
outputs.forEach(function (out, i) {
32923+
var result = results_1[i];
32924+
if ((out === null || out === void 0 ? void 0 : out.filename) && result) {
32925+
console.log("\uD83D\uDCBE writing to ".concat(out === null || out === void 0 ? void 0 : out.filename));
32926+
fs.mkdirSync(path.dirname(out === null || out === void 0 ? void 0 : out.filename), { recursive: true });
32927+
fs.writeFileSync(out === null || out === void 0 ? void 0 : out.filename, result);
32928+
}
32929+
});
3293432930
return [3 /*break*/, 3];
3293532931
case 2:
3293632932
e_1 = _b.sent();
@@ -32942,6 +32938,106 @@ var generateContributionSnake_1 = __webpack_require__(8847);
3294232938
}); })();
3294332939

3294432940

32941+
/***/ }),
32942+
32943+
/***/ 3379:
32944+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
32945+
32946+
"use strict";
32947+
32948+
var __assign = (this && this.__assign) || function () {
32949+
__assign = Object.assign || function(t) {
32950+
for (var s, i = 1, n = arguments.length; i < n; i++) {
32951+
s = arguments[i];
32952+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32953+
t[p] = s[p];
32954+
}
32955+
return t;
32956+
};
32957+
return __assign.apply(this, arguments);
32958+
};
32959+
exports.__esModule = true;
32960+
exports.parseEntry = exports.parseOutputsOption = void 0;
32961+
var palettes_1 = __webpack_require__(3848);
32962+
var parseOutputsOption = function (lines) { return lines.map(exports.parseEntry); };
32963+
exports.parseOutputsOption = parseOutputsOption;
32964+
var parseEntry = function (entry) {
32965+
var m = entry.trim().match(/^(.+\.(svg|gif))(\?.*)?$/);
32966+
if (!m)
32967+
return null;
32968+
var _ = m[0], filename = m[1], format = m[2], query = m[3];
32969+
var sp = new URLSearchParams(query || "");
32970+
var drawOptions = __assign({ sizeDotBorderRadius: 2, sizeCell: 16, sizeDot: 12 }, palettes_1.palettes["default"]);
32971+
var gifOptions = { step: 1, frameDuration: 100 };
32972+
{
32973+
var palette = palettes_1.palettes[sp.get("palette")];
32974+
if (palette) {
32975+
Object.assign(drawOptions, palette);
32976+
drawOptions.dark = palette.dark && __assign({}, palette.dark);
32977+
}
32978+
}
32979+
if (sp.has("color_snake"))
32980+
drawOptions.colorSnake = sp.get("color_snake");
32981+
if (sp.has("color_dots")) {
32982+
var colors = sp.get("color_dots").split(/[,;]/);
32983+
drawOptions.colorDots = colors;
32984+
drawOptions.colorEmpty = colors[0];
32985+
drawOptions.dark = undefined;
32986+
}
32987+
if (sp.has("color_dot_border"))
32988+
drawOptions.colorDotBorder = sp.get("color_dot_border");
32989+
if (sp.has("dark_color_dots")) {
32990+
var colors = sp.get("dark_color_dots").split(/[,;]/);
32991+
drawOptions.dark = __assign(__assign({}, drawOptions.dark), { colorDots: colors, colorEmpty: colors[0] });
32992+
}
32993+
if (sp.has("dark_color_dot_border") && drawOptions.dark)
32994+
drawOptions.dark.colorDotBorder = sp.get("color_dot_border");
32995+
if (sp.has("dark_color_snake") && drawOptions.dark)
32996+
drawOptions.dark.colorSnake = sp.get("color_snake");
32997+
return { filename: filename, format: format, drawOptions: drawOptions, gifOptions: gifOptions };
32998+
};
32999+
exports.parseEntry = parseEntry;
33000+
33001+
33002+
/***/ }),
33003+
33004+
/***/ 3848:
33005+
/***/ (function(__unused_webpack_module, exports) {
33006+
33007+
"use strict";
33008+
33009+
var __assign = (this && this.__assign) || function () {
33010+
__assign = Object.assign || function(t) {
33011+
for (var s, i = 1, n = arguments.length; i < n; i++) {
33012+
s = arguments[i];
33013+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33014+
t[p] = s[p];
33015+
}
33016+
return t;
33017+
};
33018+
return __assign.apply(this, arguments);
33019+
};
33020+
exports.__esModule = true;
33021+
exports.palettes = void 0;
33022+
exports.palettes = {
33023+
"github-light": {
33024+
colorDotBorder: "#1b1f230a",
33025+
colorDots: ["#ebedf0", "#9be9a8", "#40c463", "#30a14e", "#216e39"],
33026+
colorEmpty: "#ebedf0",
33027+
colorSnake: "purple"
33028+
},
33029+
"github-dark": {
33030+
colorDotBorder: "#1b1f230a",
33031+
colorEmpty: "#161b22",
33032+
colorDots: ["#161b22", "#01311f", "#034525", "#0f6d31", "#00c647"],
33033+
colorSnake: "purple"
33034+
}
33035+
};
33036+
// aliases
33037+
exports.palettes.github = __assign(__assign({}, exports.palettes["github-light"]), { dark: __assign({}, exports.palettes["github-dark"]) });
33038+
exports.palettes.default = exports.palettes["github"];
33039+
33040+
3294533041
/***/ }),
3294633042

3294733043
/***/ 5740:
@@ -32999,10 +33095,10 @@ var drawGrid = function (ctx, grid, o) {
3299933095
ctx.save();
3300033096
ctx.translate(x * o.sizeCell + (o.sizeCell - o.sizeDot) / 2, y * o.sizeCell + (o.sizeCell - o.sizeDot) / 2);
3300133097
ctx.fillStyle = color;
33002-
ctx.strokeStyle = o.colorBorder;
33098+
ctx.strokeStyle = o.colorDotBorder;
3300333099
ctx.lineWidth = 1;
3300433100
ctx.beginPath();
33005-
(0, pathRoundedRect_1.pathRoundedRect)(ctx, o.sizeDot, o.sizeDot, o.sizeBorderRadius);
33101+
(0, pathRoundedRect_1.pathRoundedRect)(ctx, o.sizeDot, o.sizeDot, o.sizeDotBorderRadius);
3300633102
ctx.fill();
3300733103
ctx.stroke();
3300833104
ctx.closePath();
@@ -34284,7 +34380,7 @@ exports.createGrid = void 0;
3428434380
var utils_1 = __webpack_require__(5913);
3428534381
var percent = function (x) { return (x * 100).toFixed(2); };
3428634382
var createGrid = function (cells, _a, duration) {
34287-
var sizeBorderRadius = _a.sizeBorderRadius, sizeDot = _a.sizeDot, sizeCell = _a.sizeCell;
34383+
var sizeDotBorderRadius = _a.sizeDotBorderRadius, sizeDot = _a.sizeDot, sizeCell = _a.sizeCell;
3428834384
var svgElements = [];
3428934385
var styles = [
3429034386
".c{\n shape-rendering: geometricPrecision;\n fill: var(--ce);\n stroke-width: 1px;\n stroke: var(--cb);\n animation: none ".concat(duration, "ms linear infinite;\n }"),
@@ -34307,8 +34403,8 @@ var createGrid = function (cells, _a, duration) {
3430734403
"class": ["c", id].filter(Boolean).join(" "),
3430834404
x: x * s + m,
3430934405
y: y * s + m,
34310-
rx: sizeBorderRadius,
34311-
ry: sizeBorderRadius,
34406+
rx: sizeDotBorderRadius,
34407+
ry: sizeDotBorderRadius,
3431234408
width: d,
3431334409
height: d
3431434410
}));
@@ -34442,14 +34538,14 @@ exports.createSvg = createSvg;
3444234538
var optimizeCss = function (css) { return csso.minify(css).css; };
3444334539
var optimizeSvg = function (svg) { return svg; };
3444434540
var generateColorVar = function (drawOptions) {
34445-
return "\n :root {\n --cb: ".concat(drawOptions.colorBorder, ";\n --cs: ").concat(drawOptions.colorSnake, ";\n --ce: ").concat(drawOptions.colorEmpty, ";\n ").concat(Object.entries(drawOptions.colorDots)
34541+
return "\n :root {\n --cb: ".concat(drawOptions.colorDotBorder, ";\n --cs: ").concat(drawOptions.colorSnake, ";\n --ce: ").concat(drawOptions.colorEmpty, ";\n ").concat(Object.entries(drawOptions.colorDots)
3444634542
.map(function (_a) {
3444734543
var i = _a[0], color = _a[1];
3444834544
return "--c".concat(i, ":").concat(color, ";");
3444934545
})
3445034546
.join(""), "\n }\n ") +
3445134547
(drawOptions.dark
34452-
? "\n @media (prefers-color-scheme: dark) {\n :root {\n --cb: ".concat(drawOptions.dark.colorBorder || drawOptions.colorBorder, ";\n --cs: ").concat(drawOptions.dark.colorSnake || drawOptions.colorSnake, ";\n --ce: ").concat(drawOptions.dark.colorEmpty, ";\n ").concat(Object.entries(drawOptions.dark.colorDots)
34548+
? "\n @media (prefers-color-scheme: dark) {\n :root {\n --cb: ".concat(drawOptions.dark.colorDotBorder || drawOptions.colorDotBorder, ";\n --cs: ").concat(drawOptions.dark.colorSnake || drawOptions.colorSnake, ";\n --ce: ").concat(drawOptions.dark.colorEmpty, ";\n ").concat(Object.entries(drawOptions.dark.colorDots)
3445334549
.map(function (_a) {
3445434550
var i = _a[0], color = _a[1];
3445534551
return "--c".concat(i, ":").concat(color, ";");

0 commit comments

Comments
 (0)