56 lines
1.1 KiB
JavaScript
56 lines
1.1 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import {
|
|
copyFileSync,
|
|
writeFileSync
|
|
} from 'fs'
|
|
|
|
import retrieve from './src/utils/retrieve.js'
|
|
import { simplify } from './src/utils/provider.js'
|
|
|
|
const source = 'https://oembed.com/providers.json'
|
|
const latest = './src/utils/providers.latest.js'
|
|
const prev = './src/utils/providers.prev.js'
|
|
const orginal = './src/utils/providers.orginal.json'
|
|
|
|
const saveOriginal = (data, file) => {
|
|
writeFileSync(
|
|
file,
|
|
JSON.stringify(data, undefined, 2),
|
|
'utf8'
|
|
)
|
|
}
|
|
|
|
const sync = async () => {
|
|
try {
|
|
const result = await retrieve(source)
|
|
saveOriginal(result, orginal)
|
|
|
|
const arr = simplify(result)
|
|
const data = JSON.stringify(arr, undefined, 2)
|
|
|
|
// backup previous version
|
|
copyFileSync(latest, prev)
|
|
|
|
const syncTime = (new Date()).toISOString()
|
|
|
|
writeFileSync(
|
|
latest,
|
|
[
|
|
`// provider data, synchronized at ${syncTime}`,
|
|
'',
|
|
'/* eslint-disable */ ',
|
|
'',
|
|
`export const providers = ${data}`,
|
|
'',
|
|
].join('\n'),
|
|
'utf8'
|
|
)
|
|
console.log('Providers list has been updated')
|
|
} catch (err) {
|
|
console.trace(err)
|
|
}
|
|
}
|
|
|
|
sync()
|