12345678910111213141516171819202122232425262728293031323334353637 |
- import * as fs from 'node:fs'
- import { createConsola } from 'consola'
- import { ungzip } from 'pako'
- const dir = './public'
- const logger = createConsola({
- formatOptions: {
- colors: true,
- compact: false,
- date: true,
- },
- defaults: {
- tag: 'TGS2LOTTIE',
- },
- })
- export default defineNitroPlugin(async ({ hooks }) => {
- hooks.hookOnce('request', () => {
- const files = fs.readdirSync(`${dir}/tgs`)
- let converted = 0
- files.forEach((fileName: string) => {
- const tgz_file = fs.readFileSync(`${dir}/tgs/${fileName}`)
- if (tgz_file) {
- try {
- fs.readFileSync(`${dir}/lottie/${fileName.slice(0, fileName.length - 4)}.json`)
- }
- catch {
- fs.writeFileSync(`${dir}/lottie/${fileName.slice(0, fileName.length - 4)}.json`, ungzip(tgz_file))
- converted += 1
- }
- }
- })
- logger.info(`Converted ${converted} TGZ files`)
- })
- })
|