diff --git a/src/lib/datocms-bypass.ts b/src/lib/datocms-bypass.ts index 3f601d4..5e09463 100644 --- a/src/lib/datocms-bypass.ts +++ b/src/lib/datocms-bypass.ts @@ -33,7 +33,9 @@ export async function datocmsQueryIntercept(query: any) { } else if (pageQueryWhitelist.includes(parent)) { interceptData = await datocmsPageQueryIntercept(query) } else { - interceptData = {error: 'Unable to intercept datocms query. No viable JSON alternative was defined.'} + interceptData = {error: + 'Unable to intercept datocms query. No viable JSON alternative was defined.' + } } return interceptData @@ -43,8 +45,8 @@ function getPageQueryBypassWhitelist(): string[] { //-----stuff that has been (to the best of my knowledge) completley pulled over into JSON //-----does not include iterative stuff like blog posts or events etc... //-----this may only end up being scaffolding. - - let whitelist: string [] = [] + + const whitelist: string[] = [] whitelist.push('aboutPage') whitelist.push('careersPage') @@ -66,7 +68,7 @@ function getPageQueryBypassWhitelist(): string[] { function getListingQueryDirectories(): string[] { //-----whitelist the listying types of content... - let directories: string[] = [] + const directories: string[] = [] directories.push('allEvents') directories.push('allPositions') @@ -79,15 +81,15 @@ function getListingQueryDirectories(): string[] { function pluckFirstParentFromQuery(query: any): string { //-----only plucks the FIRST parent, if there are multiple parents in the query they will be ignored. - let parent: string = ((query.replace(/[\W_]+/g," ")).trim()).split(" ")[0] + const parent: string = ((query.replace(/[\W_]+/g," ")).trim()).split(" ")[0] return parent } async function datocmsPageQueryIntercept(query: any): Promise { - let parent: string = pluckFirstParentFromQuery(query) - let jsonDirectory: string = path.join(process.cwd(), 'json/site_content') - let jsonPath: string = jsonDirectory + '/' + parent + '.json' - let fileRawContents: string = '' + const parent: string = pluckFirstParentFromQuery(query) + const jsonDirectory: string = path.join(process.cwd(), 'json/site_content') + const jsonPath: string = jsonDirectory + '/' + parent + '.json' + let fileRawContents = '' let fileJson: any = {} let jsonData: any = {} @@ -96,33 +98,33 @@ async function datocmsPageQueryIntercept(query: any): Promise { fileJson = JSON.parse(fileRawContents) jsonData = fileJson.data } catch (e) { - console.log('Failed to parse JSON for file ' + jsonPath) - console.log('JSON parse attempt resulted in the following error:') - console.log(e) + //console.log('Failed to parse JSON for file ' + jsonPath) + //console.log('JSON parse attempt resulted in the following error:') + //console.log(e) } - return jsonData + return jsonData } async function datocmsListingQueryIntercept(query: any): Promise { - let parent: string = pluckFirstParentFromQuery(query) + const parent: string = pluckFirstParentFromQuery(query) let jsonData: any = {} switch(parent) { case 'allBlogPosts': //-----blog listing is handled in its own annoyingly special way - //-----could build it out here to be verbose but will not in the intrest of time/budget + //-----could build it out here to be verbose but will not in the intrest of time/budget //-----might need to add/remove some parent nodes in the JSON returned from getAllBlogPostsJson() to match the would-be expected format. //jsonData = await getAllBlogPostsJson() jsonData = {} - break + break case 'allCategories': //-----category listing is handled in its own annoyingly special way - //-----could build it out here to be verbose but will not in the intrest of time/budget - //-----might need to add/remove some parent nodes in the JSON returned from getAllBlogCategoriesJson() to match the would-be expected format. + //-----could build it out here to be verbose but will not in the intrest of time/budget + //-----might need to add/remove some parent nodes in the JSON returned from getAllBlogCategoriesJson() to match the would-be expected format. //jsonData = await getAllBlogCategoriesJson() jsonData = {} - break + break case 'allEvents': jsonData = await getAllEventsJson() break @@ -143,16 +145,16 @@ async function datocmsListingQueryIntercept(query: any): Promise { break } - return jsonData + return jsonData } //-----json traversal function jsonFilePathIsValid(filePath: string) { - if (filePath.startsWith("_")) { + if (filePath.startsWith('_')) { return false } - if (!filePath.endsWith(".json")) { + if (!filePath.endsWith('.json')) { return false } @@ -160,11 +162,11 @@ function jsonFilePathIsValid(filePath: string) { } function jsonNodeExists(jsonData: any, node: string) { - if (node in jsonData === true) { - return true - } + if (node in jsonData === true) { + return true + } - return false + return false } function jsonNodesExist(jsonData: any, nodes: any) { @@ -187,10 +189,10 @@ function jsonNodesExist(jsonData: any, nodes: any) { nodeGroup = node nodeGroupValid = false for (let j = 0; j < nodeGroup.length; j++) { - nodeGroupNode = nodeGroup[j] + nodeGroupNode = nodeGroup[j] if (jsonNodeExists(jsonData, nodeGroupNode) === true) { nodeGroupValid = true - } + } } if (nodeGroupValid === false) { //-----none of the nodes in the group exist. @@ -205,15 +207,19 @@ function jsonNodesExist(jsonData: any, nodes: any) { return true } -export async function getJsonItemsFromDirectory(jsonDirectory: string, pluckerFunction: any, validationNodes: any[]): Promise { - let jsonFiles = await fs.readdir(jsonDirectory) - let returnJson: any[] = [] +export async function getJsonItemsFromDirectory( + jsonDirectory: string, + pluckerFunction: any, + validationNodes: any[] +): Promise { + const jsonFiles = await fs.readdir(jsonDirectory) + const returnJson: any[] = [] for (let i = 0; i < jsonFiles.length; i++) { - let jsonFile = jsonFiles[i] + const jsonFile = jsonFiles[i] if (jsonFilePathIsValid(jsonFile) === true) { - let jsonPath = path.join(jsonDirectory, jsonFile) - let fileRawContents = await fs.readFile(jsonPath, 'utf8') + const jsonPath = path.join(jsonDirectory, jsonFile) + const fileRawContents = await fs.readFile(jsonPath, 'utf8') let fileJsonContents = {} let jsonParseSuccess = false @@ -222,14 +228,14 @@ export async function getJsonItemsFromDirectory(jsonDirectory: string, pluckerFu jsonParseSuccess = true } catch (e) { jsonParseSuccess = false - console.log('Failed to parse JSON for file ' + jsonPath) - console.log('JSON parse attempt resulted in the following error:') - console.log(e) + //console.log('Failed to parse JSON for file ' + jsonPath) + //console.log('JSON parse attempt resulted in the following error:') + //console.log(e) } if (jsonParseSuccess === true) { fileJsonContents = JSON.parse(fileRawContents) - let jsonData = pluckerFunction(fileJsonContents) + const jsonData = pluckerFunction(fileJsonContents) jsonData.sourceFile = jsonFile if (jsonNodesExist(jsonData, validationNodes) === true) { @@ -251,8 +257,8 @@ function pluckBlogPostData(json: any) { //let plucked: BlogPostRecord = {} let plucked: any = {} - if('data' in json){ - if('blogPost' in json.data) { + if ('data' in json) { + if ('blogPost' in json.data) { plucked = json.data.blogPost } } @@ -261,8 +267,8 @@ function pluckBlogPostData(json: any) { } function getRequiedBlogPostNodes(): any[] { - let nodes = [] - let contentNodes = [] + const nodes = [] + const contentNodes = [] contentNodes.push('content') contentNodes.push('htmlContent') @@ -279,12 +285,12 @@ function getRequiedBlogPostNodes(): any[] { function forceBlogPostsJsonSlugIntegrity(json: any[]) { //-----this is used to force the blog post slug to match that of its parent file name. - let returnJson: any[] = [] + const returnJson: any[] = [] for (let i = 0; i < json.length; i++) { - let blogPost = json[i] - let sourceFile = blogPost.sourceFile - let newSlug = path.parse(sourceFile).name + const blogPost = json[i] + const sourceFile = blogPost.sourceFile + const newSlug = path.parse(sourceFile).name blogPost.slug = newSlug returnJson.push(blogPost) } @@ -293,14 +299,18 @@ function forceBlogPostsJsonSlugIntegrity(json: any[]) { } function sortBlogPostsJsonByDate(json: any[]) { - let sortedJson: any[] = json.slice().sort((a: any, b: any) => datocmsDateToIng(b.date) - datocmsDateToIng(a.date)) + const sortedJson: any[] = json + .slice() + .sort( + (a: any, b: any) => datocmsDateToIng(b.date) - datocmsDateToIng(a.date) + ) return sortedJson } function getFakePaginationData(json: any) { - let pagination: any = {} - let totalPosts = json.length + const pagination: any = {} + const totalPosts = json.length pagination.nextPage = null pagination.page = 1 @@ -312,35 +322,41 @@ function getFakePaginationData(json: any) { } async function getAllBlogPostsJson() { - let jsonDirectory = getBlogJsonDirectoryPath() - let validationNodes = getRequiedBlogPostNodes() - let blogPosts = await getJsonItemsFromDirectory(jsonDirectory, pluckBlogPostData, validationNodes) - let pagination = getFakePaginationData(blogPosts) - let processedBlogPosts = forceBlogPostsJsonSlugIntegrity(blogPosts) - let sortedBlogPosts: any[] = sortBlogPostsJsonByDate(processedBlogPosts) - let allBlogPostsJson = {pagination: pagination, data: sortedBlogPosts} + const jsonDirectory = getBlogJsonDirectoryPath() + const validationNodes = getRequiedBlogPostNodes() + const blogPosts = await getJsonItemsFromDirectory( + jsonDirectory, + pluckBlogPostData, + validationNodes + ) + const pagination = getFakePaginationData(blogPosts) + const processedBlogPosts = forceBlogPostsJsonSlugIntegrity(blogPosts) + const sortedBlogPosts: any[] = sortBlogPostsJsonByDate(processedBlogPosts) + const allBlogPostsJson = { pagination: pagination, data: sortedBlogPosts } return allBlogPostsJson } export async function getAllBlogPostsSlugsFromSource() { - let jsonDirectory = getBlogJsonDirectoryPath() - let jsonFiles = await fs.readdir(jsonDirectory) - let slugs = [] + const jsonDirectory = getBlogJsonDirectoryPath() + const jsonFiles = await fs.readdir(jsonDirectory) + const slugs = [] for (let i = 0; i < jsonFiles.length; i++) { - let jsonFile = jsonFiles[i] + const jsonFile = jsonFiles[i] if (jsonFilePathIsValid(jsonFile) === true) { - let slug = path.parse(jsonFile).name - let node = {slug: slug} + const slug = path.parse(jsonFile).name + const node = { slug: slug } slugs.push(node) } - } + } return slugs } -export async function getAllBlogPostsFromSource(datocmsFilters: any): Promise { +export async function getAllBlogPostsFromSource( + datocmsFilters: any +): Promise { let allBlogPostsFromSource: any = {} if (process.env.NEXT_PUBLIC_DATOCMS_BYPASS_TYPE === 'local_json') { @@ -352,37 +368,41 @@ export async function getAllBlogPostsFromSource(datocmsFilters: any): Promise { - let jsonDirectory = getBlogJsonDirectoryPath() - let jsonFile = slug + '.json' - let jsonPath = path.join(jsonDirectory, jsonFile) +async function getSingleBlogPostJsonBySlug( + slug: string +): Promise { + const jsonDirectory = getBlogJsonDirectoryPath() + const jsonFile = slug + '.json' + const jsonPath = path.join(jsonDirectory, jsonFile) let blogPost: any = {} try { - let fileRawContents = await fs.readFile(jsonPath, 'utf8') - let fileJsonContents = JSON.parse(fileRawContents) + const fileRawContents = await fs.readFile(jsonPath, 'utf8') + const fileJsonContents = JSON.parse(fileRawContents) blogPost = pluckBlogPostData(fileJsonContents) //-----continue to enforce standard set by forceBlogPostsJsonSlugIntegrity() - blogPost.slug = slug + blogPost.slug = slug } catch (e) { - console.log('Failed to open or parse JSON for file ' + jsonPath) - console.log('JSON parse attempt resulted in the following error:') - console.log(e) + //console.log('Failed to open or parse JSON for file ' + jsonPath) + //console.log('JSON parse attempt resulted in the following error:') + //console.log(e) } return blogPost } -export async function getSingleBlogPostBySlugFromSource(slug: string): Promise { +export async function getSingleBlogPostBySlugFromSource( + slug: string +): Promise { let blogPostJson: any = {} - if (process.env.NEXT_PUBLIC_DATOCMS_BYPASS_TYPE === 'local_json') { - try { - blogPostJson = await getSingleBlogPostJsonBySlug(slug) + if (process.env.NEXT_PUBLIC_DATOCMS_BYPASS_TYPE === 'local_json') { + try { + blogPostJson = await getSingleBlogPostJsonBySlug(slug) } catch (e) { - console.log('Failed pull blog post with slug ' + slug) - console.log('The attempt resulted in the following error:') - console.log(e) + //console.log('Failed pull blog post with slug ' + slug) + //console.log('The attempt resulted in the following error:') + //console.log(e) } } else { blogPostJson = await (await cms().SingleBlogPost({ slug })).blogPost @@ -391,34 +411,39 @@ export async function getSingleBlogPostBySlugFromSource(slug: string): Promise { - let relatedBlogPosts = [] - let reservedSlugs = [] - let matchedCount = 0 - let matchCategories = getBlogPostCategorySlugs(blogPostJson) - let blogPosts = await getAllBlogPostsJson() - let blogPostsData = blogPosts.data +export async function getRelatedBlogPosts( + blogPostJson: any, + matchCount: number +): Promise { + const relatedBlogPosts = [] + const reservedSlugs = [] + let matchedCount = 0 + const matchCategories = getBlogPostCategorySlugs(blogPostJson) + const blogPosts = await getAllBlogPostsJson() + const blogPostsData = blogPosts.data let candidateBlogPost: any = {} let candidateBlogPostSlug = '' - let slug = blogPostJson.slug + const slug = blogPostJson.slug if (matchCategories.length > 0) { reservedSlugs.push(slug) @@ -427,12 +452,15 @@ export async function getRelatedBlogPosts(blogPostJson: any, matchCount: number) candidateBlogPostSlug = candidateBlogPost.slug if (matchedCount >= matchCount) { break - } + } if (reservedSlugs.includes(candidateBlogPostSlug) === false) { - let candidateCategories = getBlogPostCategorySlugs(candidateBlogPost) + const candidateCategories = getBlogPostCategorySlugs(candidateBlogPost) for (let j = 0; j < matchCategories.length; j++) { - let matchCategory = matchCategories[j] - if (candidateCategories.includes(matchCategory) === true && reservedSlugs.includes(candidateBlogPostSlug) === false) { + const matchCategory = matchCategories[j] + if ( + candidateCategories.includes(matchCategory) === true && + reservedSlugs.includes(candidateBlogPostSlug) === false + ) { relatedBlogPosts.push(candidateBlogPost) reservedSlugs.push(candidateBlogPostSlug) matchedCount++ @@ -450,11 +478,11 @@ export async function getRelatedBlogPosts(blogPostJson: any, matchCount: number) candidateBlogPostSlug = candidateBlogPost.slug if (matchedCount >= matchCount) { break - } - if (reservedSlugs.includes(candidateBlogPostSlug) === false) { + } + if (reservedSlugs.includes(candidateBlogPostSlug) === false) { relatedBlogPosts.push(candidateBlogPost) reservedSlugs.push(candidateBlogPostSlug) - matchedCount++ + matchedCount++ } } } @@ -470,8 +498,8 @@ function getBlogCategoriesJsonDirectoryPath() { function pluckBlogCategoriesData(json: any) { let plucked = {} - if('data' in json){ - if('category' in json.data) { + if ('data' in json) { + if ('category' in json.data) { plucked = json.data.category } } @@ -480,7 +508,7 @@ function pluckBlogCategoriesData(json: any) { } function getRequiedBlogBlogCategoryNodes() { - let nodes = [] + const nodes = [] nodes.push('slug') nodes.push('title') @@ -489,9 +517,13 @@ function getRequiedBlogBlogCategoryNodes() { } export async function getAllBlogCategoriesJson(): Promise { - let jsonDirectory = getBlogCategoriesJsonDirectoryPath() - let validationNodes = getRequiedBlogBlogCategoryNodes() - let allBlogCategoriesJson: any[] = await getJsonItemsFromDirectory(jsonDirectory, pluckBlogCategoriesData, validationNodes) + const jsonDirectory = getBlogCategoriesJsonDirectoryPath() + const validationNodes = getRequiedBlogBlogCategoryNodes() + const allBlogCategoriesJson: any[] = await getJsonItemsFromDirectory( + jsonDirectory, + pluckBlogCategoriesData, + validationNodes + ) return allBlogCategoriesJson } @@ -501,8 +533,8 @@ export async function getAllBlogPostsCategoriesFromSource(): Promise { if (process.env.NEXT_PUBLIC_DATOCMS_BYPASS_TYPE === 'local_json') { allBlogPostsCategoriesFromSource = await getAllBlogCategoriesJson() - //let requestResults = await request(AllCategoriesQuery) - //allBlogPostsCategoriesFromSource = requestResults.allCategories + //let requestResults = await request(AllCategoriesQuery) + //allBlogPostsCategoriesFromSource = requestResults.allCategories } else { allBlogPostsCategoriesFromSource = await serverGetBlogPostsCategories() } @@ -518,8 +550,8 @@ function getEventsJsonDirectoryPath() { function pluckEventData(json: any) { let plucked = {} - if('data' in json){ - if('event' in json.data) { + if 'data' in json) { + if ('event' in json.data) { plucked = json.data.event } } @@ -528,7 +560,7 @@ function pluckEventData(json: any) { } function getRequiedEventNodes() { - let nodes = [] + const nodes = [] nodes.push('title') nodes.push('eventLocation') @@ -539,17 +571,26 @@ function getRequiedEventNodes() { } function sortEventsJsonByStartDate(json: any[]) { - let sortedJson: any[] = json.slice().sort((a: any, b: any) => datocmsDateToIng(b.eventStartdate) - datocmsDateToIng(a.eventStartdate)) + let sortedJson: any[] = json + .slice() + .sort( + (a: any, b: any) => + datocmsDateToIng(b.eventStartdate) - datocmsDateToIng(a.eventStartdate) + ) return sortedJson } async function getAllEventsJson(): Promise { - let jsonDirectory = getEventsJsonDirectoryPath() - let validationNodes = getRequiedEventNodes() - let events: any[] = await getJsonItemsFromDirectory(jsonDirectory, pluckEventData, validationNodes) - let sortedEvents: any[] = sortEventsJsonByStartDate(events) - let allEventsJson = {allEvents: sortedEvents} + const jsonDirectory = getEventsJsonDirectoryPath() + const validationNodes = getRequiedEventNodes() + const events: any[] = await getJsonItemsFromDirectory( + jsonDirectory, + pluckEventData, + validationNodes + ) + const sortedEvents: any[] = sortEventsJsonByStartDate(events) + const allEventsJson = { allEvents: sortedEvents } return allEventsJson } @@ -562,8 +603,8 @@ function getPositionsJsonDirectoryPath() { function pluckPositionData(json: any) { let plucked = {} - if('data' in json){ - if('position' in json.data) { + if ('data' in json) { + if ('position' in json.data) { plucked = json.data.position } } @@ -572,7 +613,7 @@ function pluckPositionData(json: any) { } function getRequiedPositionNodes() { - let nodes = [] + const nodes = [] nodes.push('id') nodes.push('positionName') @@ -582,17 +623,23 @@ function getRequiedPositionNodes() { } function sortPositionsJsonById(json: any[]) { - let sortedJson: any[] = json.slice().sort((a: any, b: any) => parseInt(a.id) - parseInt(b.id)) + const sortedJson: any[] = json + .slice() + .sort((a: any, b: any) => parseInt(a.id) - parseInt(b.id)) return sortedJson } async function getAllPositionsJson(): Promise { - let jsonDirectory = getPositionsJsonDirectoryPath() - let validationNodes = getRequiedPositionNodes() - let positions: any[] = await getJsonItemsFromDirectory(jsonDirectory, pluckPositionData, validationNodes) - let sortedPositions: any[] = sortPositionsJsonById(positions) - let allPositionsJson = {allPositions: sortedPositions} + const jsonDirectory = getPositionsJsonDirectoryPath() + const validationNodes = getRequiedPositionNodes() + const positions: any[] = await getJsonItemsFromDirectory( + jsonDirectory, + pluckPositionData, + validationNodes + ) + const sortedPositions: any[] = sortPositionsJsonById(positions) + const allPositionsJson = { allPositions: sortedPositions } return allPositionsJson } @@ -605,8 +652,8 @@ function getPressReleasesJsonDirectoryPath() { function pluckPressReleaseData(json: any) { let plucked = {} - if('data' in json){ - if('pressRelease' in json.data) { + if ('data' in json) { + if ('pressRelease' in json.data) { plucked = json.data.pressRelease } } @@ -615,7 +662,7 @@ function pluckPressReleaseData(json: any) { } function getRequiedPressReleaseNodes() { - let nodes = [] + const nodes = [] nodes.push('id') nodes.push('title') @@ -626,17 +673,25 @@ function getRequiedPressReleaseNodes() { } function sortPressReleasesJsonByDate(json: any[]) { - let sortedJson: any[] = json.slice().sort((a: any, b: any) => datocmsDateToIng(b.date) - datocmsDateToIng(a.date)) + let sortedJson: any[] = json + .slice() + .sort( + (a: any, b: any) => datocmsDateToIng(b.date) - datocmsDateToIng(a.date) + ) return sortedJson } async function getAllPressReleasesJson(): Promise { - let jsonDirectory = getPressReleasesJsonDirectoryPath() - let validationNodes = getRequiedPressReleaseNodes() - let pressReleases: any[] = await getJsonItemsFromDirectory(jsonDirectory, pluckPressReleaseData, validationNodes) - let sortedPressReleases: any[] = sortPressReleasesJsonByDate(pressReleases) - let allPressReleasesJson = {allPressReleases: sortedPressReleases} + const jsonDirectory = getPressReleasesJsonDirectoryPath() + const validationNodes = getRequiedPressReleaseNodes() + const pressReleases: any[] = await getJsonItemsFromDirectory( + jsonDirectory, + pluckPressReleaseData, + validationNodes + ) + const sortedPressReleases: any[] = sortPressReleasesJsonByDate(pressReleases) + const allPressReleasesJson = { allPressReleases: sortedPressReleases } return allPressReleasesJson } @@ -649,8 +704,8 @@ function getTeamsJsonDirectoryPath() { function pluckTeamData(json: any) { let plucked = {} - if('data' in json){ - if('team' in json.data) { + if ('data' in json) { + if ('team' in json.data) { plucked = json.data.team } } @@ -659,7 +714,7 @@ function pluckTeamData(json: any) { } function getRequiedTeamNodes() { - let nodes = [] + const nodes = [] nodes.push('id') nodes.push('memberName') @@ -668,17 +723,23 @@ function getRequiedTeamNodes() { } function sortTeamsJsonById(json: any[]) { - let sortedJson: any[] = json.slice().sort((a: any, b: any) => parseInt(a.id) - parseInt(b.id)) + const sortedJson: any[] = json + .slice() + .sort((a: any, b: any) => parseInt(a.id) - parseInt(b.id)) return sortedJson } async function getAllTeamsJson(): Promise { - let jsonDirectory = getTeamsJsonDirectoryPath() - let validationNodes = getRequiedTeamNodes() - let teams: any[] = await getJsonItemsFromDirectory(jsonDirectory, pluckTeamData, validationNodes) + const jsonDirectory = getTeamsJsonDirectoryPath() + const validationNodes = getRequiedTeamNodes() + const teams: any[] = await getJsonItemsFromDirectory( + jsonDirectory, + pluckTeamData, + validationNodes + ) let sortedTeams: any[] = sortTeamsJsonById(teams) - let allTeamsJson = {allTeams: sortedTeams} + let allTeamsJson = { allTeams: sortedTeams } return allTeamsJson } @@ -691,8 +752,8 @@ function getTestimonialsJsonDirectoryPath() { function pluckTestimonialData(json: any) { let plucked = {} - if('data' in json){ - if('testimonial' in json.data) { + if ('data' in json) { + if ('testimonial' in json.data) { plucked = json.data.testimonial } } @@ -701,7 +762,7 @@ function pluckTestimonialData(json: any) { } function getRequiedTestimonialNodes() { - let nodes = [] + const nodes = [] nodes.push('id') nodes.push('testimonialImage') @@ -712,17 +773,23 @@ function getRequiedTestimonialNodes() { } function sortTestimonialsJsonById(json: any[]) { - let sortedJson: any[] = json.slice().sort((a: any, b: any) => parseInt(a.id) - parseInt(b.id)) + const sortedJson: any[] = json + .slice() + .sort((a: any, b: any) => parseInt(a.id) - parseInt(b.id)) return sortedJson } async function getAllTestimonialsJson(): Promise { - let jsonDirectory = getTestimonialsJsonDirectoryPath() - let validationNodes = getRequiedTestimonialNodes() - let testimonials: any[] = await getJsonItemsFromDirectory(jsonDirectory, pluckTestimonialData, validationNodes) - let sortedTestimonals: any[] = sortTestimonialsJsonById(testimonials) - let allTestimonialsJson = {allTestimonials: sortedTestimonals} + const jsonDirectory = getTestimonialsJsonDirectoryPath() + const validationNodes = getRequiedTestimonialNodes() + const testimonials: any[] = await getJsonItemsFromDirectory( + jsonDirectory, + pluckTestimonialData, + validationNodes + ) + const sortedTestimonals: any[] = sortTestimonialsJsonById(testimonials) + const allTestimonialsJson = {allTestimonials: sortedTestimonals} return allTestimonialsJson } \ No newline at end of file