pages235/scripts/genShims.ts
2025-03-11 23:58:52 +03:00

37 lines
1.4 KiB
TypeScript

import fs from 'fs'
import { appReplacableResources } from '../src/resourcesSource'
fs.mkdirSync('./generated', { recursive: true })
// app resources
let headerImports = ''
let resourcesContent = 'export const appReplacableResources: { [key in Keys]: { content: any, resourcePackPath: string, cssVar?: string, cssVarRepeat?: number } } = {\n'
let resourcesContentOriginal = 'export const resourcesContentOriginal = {\n'
const keys = [] as string[]
for (const resource of appReplacableResources) {
const { path, ...rest } = resource
const name = path.split('/').slice(-4).join('_').replace('.png', '').replaceAll('-', '_').replaceAll('.', '_')
keys.push(name)
headerImports += `import ${name} from '${path.replace('../node_modules/', '')}'\n`
resourcesContent += `
'${name}': {
content: ${name},
resourcePackPath: 'minecraft/textures/${path.slice(path.indexOf('other-textures/') + 'other-textures/'.length).split('/').slice(1).join('/')}',
...${JSON.stringify(rest)}
},
`
resourcesContentOriginal += `
'${name}': ${name},
`
}
resourcesContent += '}\n'
resourcesContent += `type Keys = ${keys.map(k => `'${k}'`).join(' | ')}\n`
resourcesContentOriginal += '}\n'
resourcesContent += resourcesContentOriginal
fs.mkdirSync('./src/generated', { recursive: true })
fs.writeFileSync('./src/generated/resources.ts', headerImports + '\n' + resourcesContent, 'utf8')