diff options
Diffstat (limited to 'scripts/notify/index.js')
-rwxr-xr-x | scripts/notify/index.js | 106 |
1 files changed, 53 insertions, 53 deletions
diff --git a/scripts/notify/index.js b/scripts/notify/index.js index 6427e91aa..950fef1de 100755 --- a/scripts/notify/index.js +++ b/scripts/notify/index.js @@ -6,76 +6,76 @@ const baseUrl = new URL('https://github.com/withastro/astro/blob/main/'); const emojis = ['π', 'π₯³', 'π', 'π§βπ', 'π', 'π', 'β
', 'π€©', 'π€', 'π']; const descriptors = ['new releases', 'hot and fresh updates', 'shiny updates', 'exciting changes', 'package updates', 'awesome updates', 'bug fixes and features', 'updates']; const verbs = [ - 'just went out!', - 'just launched!', - 'now available!', - 'in the wild!', - 'now live!', - 'hit the registry!', - 'to share!', - 'for you!', - 'for yβall! π€ ', - 'cominβ your way!', - 'cominβ atcha!', - 'cominβ in hot!', - 'freshly minted on the blockchain! (jk)', - '[is] out (now with 100% more reticulated splines!)', - '(as seen on TV!)', - 'just dropped!', - 'β artisanally hand-crafted just for you.', - 'β oh happy day!', - 'β enjoy!', - 'now out. Be the first on your block to download!', - 'made with love π', - '[is] out! Our best [version] yet!', - '[is] here. DOWNLOAD! DOWNLOAD! DOWNLOAD!', - '... HUZZAH!', - '[has] landed!', - 'landed! The internet just got a little more fun.', - 'β from our family to yours.', - 'β go forth and build!', + 'just went out!', + 'just launched!', + 'now available!', + 'in the wild!', + 'now live!', + 'hit the registry!', + 'to share!', + 'for you!', + 'for yβall! π€ ', + 'cominβ your way!', + 'cominβ atcha!', + 'cominβ in hot!', + 'freshly minted on the blockchain! (jk)', + '[is] out (now with 100% more reticulated splines!)', + '(as seen on TV!)', + 'just dropped!', + 'β artisanally hand-crafted just for you.', + 'β oh happy day!', + 'β enjoy!', + 'now out. Be the first on your block to download!', + 'made with love π', + '[is] out! Our best [version] yet!', + '[is] here. DOWNLOAD! DOWNLOAD! DOWNLOAD!', + '... HUZZAH!', + '[has] landed!', + 'landed! The internet just got a little more fun.', + 'β from our family to yours.', + 'β go forth and build!', ]; function item(items) { - return items[Math.floor(Math.random() * items.length)]; + return items[Math.floor(Math.random() * items.length)]; } const plurals = new Map([ - ['is', 'are'], - ['has', 'have'], + ['is', 'are'], + ['has', 'have'], ]); function pluralize(text) { - return text.replace(/(\[([^\]]+)\])/gm, (_, _full, match) => (plurals.has(match) ? plurals.get(match) : `${match}s`)); + return text.replace(/(\[([^\]]+)\])/gm, (_, _full, match) => (plurals.has(match) ? plurals.get(match) : `${match}s`)); } function singularlize(text) { - return text.replace(/(\[([^\]]+)\])/gm, (_, _full, match) => `${match}`); + return text.replace(/(\[([^\]]+)\])/gm, (_, _full, match) => `${match}`); } async function run() { - const releases = process.argv.slice(2)[0]; - const data = JSON.parse(releases); - const packages = await Promise.all( - data.map(({ name, version }) => { - const p = path.relative('./', path.dirname(require.resolve(name))).replace(path.sep, '/'); - return { name, version, url: new URL(`${p}/CHANGELOG.md#${version.replace(/\./g, '')}`, baseUrl).toString() }; - }) - ); + const releases = process.argv.slice(2)[0]; + const data = JSON.parse(releases); + const packages = await Promise.all( + data.map(({ name, version }) => { + const p = path.relative('./', path.dirname(require.resolve(name))).replace(path.sep, '/'); + return { name, version, url: new URL(`${p}/CHANGELOG.md#${version.replace(/\./g, '')}`, baseUrl).toString() }; + }) + ); - const emoji = item(emojis); - const descriptor = item(descriptors); - const verb = item(verbs); + const emoji = item(emojis); + const descriptor = item(descriptors); + const verb = item(verbs); - if (packages.length === 1) { - const { name, version, url } = packages[0]; - console.log(`${emoji} \`${name}@${version}\` ${singularlize(verb)}\nRead the [release notes β](<${url}>)`); - } else { - console.log(`${emoji} Some ${descriptor} ${pluralize(verb)}\n`); - for (const { name, version, url } of packages) { - console.log(`β’ \`${name}@${version}\` Read the [release notes β](<${url}>)`); - } - } + if (packages.length === 1) { + const { name, version, url } = packages[0]; + console.log(`${emoji} \`${name}@${version}\` ${singularlize(verb)}\nRead the [release notes β](<${url}>)`); + } else { + console.log(`${emoji} Some ${descriptor} ${pluralize(verb)}\n`); + for (const { name, version, url } of packages) { + console.log(`β’ \`${name}@${version}\` Read the [release notes β](<${url}>)`); + } + } } run(); |