clean up input parameters
This commit is contained in:
parent
f49fc39e0c
commit
b5980d3380
3 changed files with 133 additions and 102 deletions
82
action.ts
82
action.ts
|
@ -19,22 +19,25 @@ async function main() {
|
||||||
// Fetch Code::Stats API
|
// Fetch Code::Stats API
|
||||||
const profile = await fetchProfile(username);
|
const profile = await fetchProfile(username);
|
||||||
const toplang = await fetchTopLanguages(username);
|
const toplang = await fetchTopLanguages(username);
|
||||||
const history = await fetchHistory(username, 32);
|
const history = await fetchHistory(
|
||||||
|
username,
|
||||||
|
parseNumber(core.getInput("history_card_days_count"))
|
||||||
|
);
|
||||||
|
|
||||||
// Generate Profile Summary Card
|
// Generate Profile Summary Card
|
||||||
const profilecard = ReactDOMServer.renderToStaticMarkup(
|
const profilecard = ReactDOMServer.renderToStaticMarkup(
|
||||||
new ProfileCard(profile.username, profile.xp, profile.recentXp, {
|
new ProfileCard(profile.username, profile.xp, profile.recentXp, {
|
||||||
hide: parseArray(core.getInput("hide")),
|
hide: parseArray(core.getInput("profile_card_hide_lines")),
|
||||||
show_icons: parseBoolean(core.getInput("show_icons")),
|
show_icons: parseBoolean(core.getInput("profile_card_show_icons")),
|
||||||
hide_rank: parseBoolean(core.getInput("hide_rank")),
|
hide_rank: parseBoolean(core.getInput("profile_card_hide_rank")),
|
||||||
line_height: parseNumber(core.getInput("line_height")),
|
line_height: parseNumber(core.getInput("profile_card_line_height")),
|
||||||
title: `Code::Stats of ${username}`, // core.getInput("title"),
|
title: core.getInput("profile_card_title"),
|
||||||
title_color: core.getInput("title_color"),
|
title_color: core.getInput("common_title_color"),
|
||||||
icon_color: core.getInput("icon_color"),
|
icon_color: core.getInput("common_icon_color"),
|
||||||
text_color: core.getInput("text_color"),
|
text_color: core.getInput("common_text_color"),
|
||||||
bg_color: core.getInput("bg_color"),
|
bg_color: core.getInput("common_bg_color"),
|
||||||
hide_title: parseBoolean(core.getInput("hide_title")),
|
hide_title: parseBoolean(core.getInput("common_hide_title")),
|
||||||
hide_border: parseBoolean(core.getInput("hide_border")),
|
hide_border: parseBoolean(core.getInput("common_hide_border")),
|
||||||
}).render()
|
}).render()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -44,19 +47,20 @@ async function main() {
|
||||||
// Generate Top Languages Card
|
// Generate Top Languages Card
|
||||||
const toplangcard = ReactDOMServer.renderToStaticMarkup(
|
const toplangcard = ReactDOMServer.renderToStaticMarkup(
|
||||||
new TopLanguagesCard(username, toplang.langs, {
|
new TopLanguagesCard(username, toplang.langs, {
|
||||||
hide: parseArray(core.getInput("hide")),
|
hide: parseArray(core.getInput("common_hide_languages")),
|
||||||
language_count: parseNumber(core.getInput("language_count")),
|
language_count: parseNumber(
|
||||||
card_width: clampValue(
|
core.getInput("toplangs_card_language_count")
|
||||||
parseNumber(core.getInput("card_width")) || 300,
|
|
||||||
500
|
|
||||||
),
|
),
|
||||||
layout: core.getInput("layout"),
|
card_width: 500,
|
||||||
title: `Code::Stats of ${username}`, // core.getInput("title"),
|
layout: parseBoolean(core.getInput("toplangs_card_compact_layout"))
|
||||||
title_color: core.getInput("title_color"),
|
? "compact"
|
||||||
text_color: core.getInput("text_color"),
|
: undefined,
|
||||||
bg_color: core.getInput("bg_color"),
|
title: core.getInput("toplangs_card_title"),
|
||||||
hide_title: parseBoolean(core.getInput("hide_title")),
|
title_color: core.getInput("common_title_color"),
|
||||||
hide_border: parseBoolean(core.getInput("hide_border")),
|
text_color: core.getInput("common_text_color"),
|
||||||
|
bg_color: core.getInput("common_bg_color"),
|
||||||
|
hide_title: parseBoolean(core.getInput("common_hide_title")),
|
||||||
|
hide_border: parseBoolean(core.getInput("common_hide_border")),
|
||||||
}).render()
|
}).render()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -66,18 +70,24 @@ async function main() {
|
||||||
// Generate History Card
|
// Generate History Card
|
||||||
const historycard = ReactDOMServer.renderToStaticMarkup(
|
const historycard = ReactDOMServer.renderToStaticMarkup(
|
||||||
new HistoryCard(username, history, {
|
new HistoryCard(username, history, {
|
||||||
hide: parseArray(core.getInput("hide")),
|
hide: parseArray(core.getInput("common_hide_languages")),
|
||||||
language_count: parseNumber(core.getInput("language_count")),
|
language_count: parseNumber(
|
||||||
hide_legend: parseBoolean(core.getInput("hide_legend")),
|
core.getInput("history_card_language_count")
|
||||||
reverse_order: parseBoolean(core.getInput("reverse_order")),
|
),
|
||||||
width: clampValue(parseNumber(core.getInput("card_width")) || 300, 500),
|
hide_legend: parseBoolean(core.getInput("history_card_hide_legend")),
|
||||||
height: clampValue(parseNumber(core.getInput("card_height")) || 300, 200),
|
reverse_order: parseBoolean(
|
||||||
title_color: core.getInput("title_color"),
|
core.getInput("history_card_reverse_order")
|
||||||
text_color: core.getInput("text_color"),
|
),
|
||||||
bg_color: core.getInput("bg_color"),
|
width: 500,
|
||||||
layout: undefined, // core.getInput("layout")
|
height: 300,
|
||||||
hide_title: parseBoolean(core.getInput("hide_title")),
|
title_color: core.getInput("common_title_color"),
|
||||||
hide_border: parseBoolean(core.getInput("hide_border")),
|
text_color: core.getInput("common_text_color"),
|
||||||
|
bg_color: core.getInput("common_bg_color"),
|
||||||
|
layout: parseBoolean(core.getInput("history_card_horizontal_layout"))
|
||||||
|
? "horizontal"
|
||||||
|
: undefined,
|
||||||
|
hide_title: parseBoolean(core.getInput("common_hide_title")),
|
||||||
|
hide_border: parseBoolean(core.getInput("common_hide_border")),
|
||||||
}).render()
|
}).render()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
147
action.yml
147
action.yml
|
@ -13,97 +13,118 @@ inputs:
|
||||||
type: string
|
type: string
|
||||||
default: domai-tb
|
default: domai-tb
|
||||||
|
|
||||||
show_icons:
|
profile_card_title:
|
||||||
description: Generate profile card with icons
|
description: Change the cards title
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: `Code::Stats of ${username}`
|
||||||
|
|
||||||
|
profile_card_hide_lines:
|
||||||
|
description: "Hide specific line, eg: `xp` or `xp,recent_xp`"
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: undefiend
|
||||||
|
|
||||||
|
profile_card_show_icons:
|
||||||
|
description: Shows icons before each lines
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
default: true
|
default: true
|
||||||
|
|
||||||
hide_rank:
|
profile_card_hide_rank:
|
||||||
description: Generate profile card without level / rank
|
description: Hide the rank circle
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
hide_title:
|
profile_card_line_height:
|
||||||
description: Generate cards without title
|
description: Change the line height of each lines
|
||||||
required: false
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
hide_border:
|
|
||||||
description: Generate cards without border
|
|
||||||
required: false
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
line_height:
|
|
||||||
description: Line hight for profile card
|
|
||||||
required: false
|
required: false
|
||||||
type: number
|
type: number
|
||||||
default: 45
|
default: 45
|
||||||
|
|
||||||
title_color:
|
toplangs_card_title:
|
||||||
description: Color of profile card title
|
description: Change the cards title
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
default: `Code::Stats of ${username}`
|
||||||
|
|
||||||
icon_color:
|
toplangs_card_language_count:
|
||||||
description: Color of profile card icons
|
description: Change the number of languages shown before going to Others
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
|
|
||||||
text_color:
|
|
||||||
description: Color of profile card text
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
|
|
||||||
bg_color:
|
|
||||||
description: Color of top language card background
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
|
|
||||||
language_count:
|
|
||||||
description: Number of language to display on cards
|
|
||||||
required: false
|
required: false
|
||||||
type: number
|
type: number
|
||||||
default: 21
|
default: 8
|
||||||
|
|
||||||
hide:
|
toplangs_card_compact_layout:
|
||||||
description: Hide specific language from top lang card
|
description: Make the layout more compact
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: boolean
|
||||||
default: 'scminput,Log,Plain text'
|
default: false
|
||||||
|
|
||||||
card_width:
|
history_card_language_count:
|
||||||
description: Width of top languages card in px
|
description: Change the number of languages shown before going to Others
|
||||||
required: false
|
required: false
|
||||||
type: number
|
type: number
|
||||||
default: 300
|
default: 8
|
||||||
|
|
||||||
card_height:
|
history_card_hide_legend:
|
||||||
description: Higths of top languages card in px
|
|
||||||
required: false
|
|
||||||
type: number
|
|
||||||
default: 300
|
|
||||||
|
|
||||||
layout:
|
|
||||||
description: Layout of top lang card
|
|
||||||
required: false
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- compact
|
|
||||||
- undefiend
|
|
||||||
default: compact
|
|
||||||
|
|
||||||
hide_legend:
|
|
||||||
description: Generate history card without legend
|
description: Generate history card without legend
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
reverse_order:
|
history_card_reverse_order:
|
||||||
description: Order history from old to new
|
description: Order history from old to new
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
|
|
||||||
|
history_card_horizontal_layout:
|
||||||
|
description: Change the layout to the horizontal
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
history_card_days_count:
|
||||||
|
description: Change the number of days shown
|
||||||
|
required: false
|
||||||
|
type: number
|
||||||
|
default: 14
|
||||||
|
|
||||||
|
common_hide_languages:
|
||||||
|
description: "Hide specific line, eg: `scminput,Log,Plain text`"
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: 'scminput,Log,Plain text'
|
||||||
|
|
||||||
|
common_hide_title:
|
||||||
|
description: Hide the title
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
common_hide_border:
|
||||||
|
description: Hide the border
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
common_title_color:
|
||||||
|
description: Color of profile card title
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
|
||||||
|
common_icon_color:
|
||||||
|
description: Color of profile card icons
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
|
||||||
|
common_text_color:
|
||||||
|
description: "Change the text colors, eg: 123456"
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
|
||||||
|
common_bg_color:
|
||||||
|
description: "Change the background color, eg: 654321"
|
||||||
|
required: false
|
||||||
|
type: string
|
|
@ -145,13 +145,13 @@ export function trunc(number: number, digits = 0) {
|
||||||
return Math.round(number * pow) / pow
|
return Math.round(number * pow) / pow
|
||||||
}
|
}
|
||||||
|
|
||||||
export function parseNumber(number: string | number | undefined): number | undefined {
|
export function parseNumber(number: string | number | undefined): number {
|
||||||
if (typeof number === 'undefined' || typeof number === 'number') {
|
if (typeof number === 'undefined' || typeof number === 'number') {
|
||||||
return number
|
return 0
|
||||||
}
|
}
|
||||||
const n = parseFloat(number)
|
const n = parseFloat(number)
|
||||||
if (isNaN(n)) {
|
if (isNaN(n)) {
|
||||||
return undefined
|
return 0
|
||||||
}
|
}
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue