diff --git a/helpers/site-listings.js b/helpers/site-listings.js index 6ba4c90..cacca60 100644 --- a/helpers/site-listings.js +++ b/helpers/site-listings.js @@ -1,43 +1,33 @@ -import fs from 'fs-extra' -import path from 'path' -import { fileURLToPath } from 'url' +import youtubeVideosText from '~/static/api/youtube-videos.json?raw' +import appListText from '~/static/app-list.json?raw' +import deviceListText from '~/static/device-list.json?raw' +import gameListText from '~/static/game-list.json?raw' import { buildVideoListingFromFetchedVideo, makeVideoSlug } from '~/helpers/build-video-list.js' -import { youtubeVideoPath } from '~/helpers/api/youtube/build.js' - -const currentModuleDirectory = path.dirname( fileURLToPath( import.meta.url ) ) -const appListPath = path.join( currentModuleDirectory, '../static/app-list.json' ) -const gameListPath = path.join( currentModuleDirectory, '../static/game-list.json' ) -const deviceListPath = path.join( currentModuleDirectory, '../static/device-list.json' ) const trailingCommaPattern = /,\s*([\]}])/g - -function parseGeneratedJsonFile ( filePath ) { - const fileContents = fs.readFileSync( filePath, 'utf8' ) - - return JSON.parse( fileContents.replace( trailingCommaPattern, '$1' ) ) -} +const parsedDeviceList = JSON.parse( deviceListText.replace( trailingCommaPattern, '$1' ) ) +const parsedAppList = JSON.parse( appListText.replace( trailingCommaPattern, '$1' ) ) +const parsedGameList = JSON.parse( gameListText.replace( trailingCommaPattern, '$1' ) ) +const parsedYoutubeVideos = JSON.parse( youtubeVideosText ) export function getDeviceListingBySlug ( slug ) { - const deviceList = parseGeneratedJsonFile( deviceListPath ) - - return deviceList.find( device => device.slug === slug ) || null + return parsedDeviceList.find( device => device.slug === slug ) || null } function getAllVideoAppsList () { return [ - ...parseGeneratedJsonFile( appListPath ), - ...parseGeneratedJsonFile( gameListPath ) + ...parsedAppList, + ...parsedGameList ] } export async function getVideoListingBySlug ( slug ) { - const fetchedVideos = await fs.readJson( youtubeVideoPath ) const allVideoAppsList = getAllVideoAppsList() - for ( const [ videoId, fetchedVideo ] of Object.entries( fetchedVideos ) ) { + for ( const [ videoId, fetchedVideo ] of Object.entries( parsedYoutubeVideos ) ) { if ( makeVideoSlug( fetchedVideo.title, videoId ) !== slug ) continue return await buildVideoListingFromFetchedVideo( fetchedVideo, videoId, allVideoAppsList )