49 lines
2.0 KiB
JavaScript
49 lines
2.0 KiB
JavaScript
import fs from 'fs'
|
|
import path from 'path'
|
|
import axios from 'axios'
|
|
|
|
const outDir = path.join(process.cwd(), 'public', 'logos')
|
|
const proxy = (url) => `https://images.weserv.nl/?url=${encodeURIComponent(url)}`
|
|
const logos = {
|
|
// Banks
|
|
'bca.svg': 'https://upload.wikimedia.org/wikipedia/commons/3/3f/Bank_Central_Asia.svg',
|
|
'bni.svg': 'https://upload.wikimedia.org/wikipedia/commons/2/23/Bank_Negara_Indonesia_logo.svg',
|
|
'bri.svg': 'https://upload.wikimedia.org/wikipedia/commons/4/42/BRI_2020.svg',
|
|
'cimb.svg': 'https://upload.wikimedia.org/wikipedia/commons/2/2d/CIMB_Niaga_logo.svg',
|
|
'mandiri.svg': 'https://upload.wikimedia.org/wikipedia/commons/d/df/Bank_Mandiri_logo_2016.svg',
|
|
'permata.svg': 'https://upload.wikimedia.org/wikipedia/commons/4/42/PermataBank_logo.svg',
|
|
// Cards
|
|
'visa.svg': 'https://upload.wikimedia.org/wikipedia/commons/0/04/Visa.svg',
|
|
'mastercard.svg': 'https://upload.wikimedia.org/wikipedia/commons/2/2a/Mastercard-logo.svg',
|
|
'jcb.svg': 'https://upload.wikimedia.org/wikipedia/commons/3/3a/JCB_logo.svg',
|
|
'amex.svg': 'https://upload.wikimedia.org/wikipedia/commons/3/30/American_Express_logo_%282018%29.svg',
|
|
// Wallets
|
|
'gopay.svg': 'https://upload.wikimedia.org/wikipedia/commons/1/1e/Logo_GoPay.svg',
|
|
'qris.svg': 'https://upload.wikimedia.org/wikipedia/commons/0/0a/QRIS_Logo.svg',
|
|
}
|
|
|
|
async function download(name, url) {
|
|
const dst = path.join(outDir, name)
|
|
try {
|
|
if (fs.existsSync(dst)) {
|
|
console.log(`[skip] ${name} already exists`)
|
|
return
|
|
}
|
|
const res = await axios.get(proxy(url), { responseType: 'arraybuffer' })
|
|
fs.writeFileSync(dst, Buffer.from(res.data))
|
|
console.log(`[ok] ${name}`)
|
|
} catch (err) {
|
|
console.error(`[err] ${name}:`, err?.message || err)
|
|
}
|
|
}
|
|
|
|
async function main() {
|
|
fs.mkdirSync(outDir, { recursive: true })
|
|
const entries = Object.entries(logos)
|
|
for (const [name, url] of entries) {
|
|
await download(name, url)
|
|
}
|
|
console.log(`Done. Saved ${entries.length} logos to ${outDir}`)
|
|
}
|
|
|
|
main() |