UNPKG

982 BJavaScriptView Raw
1const fs = require('fs-extra')
2
3module.exports = async (creativePath) => {
4 const contents = await fs.readFile(creativePath, { encoding: 'utf8' })
5 const snippets = contents.match(/<Snippet Footer>[\s\S]*?\*\*\*\*/g) || []
6 return snippets
7 .map((snippet) => {
8 const file = snippet.match(/file:\s*(\S+)\s*$/m)
9 const version = snippet.match(/version:\s*(\S+)\s*$/m)
10 return { name: file && file[1], version: version && version[1] }
11 })
12 .reduce(([resultsArr, versionTrackingObj], snippet) => {
13 if (snippet.name && snippet.version) {
14 if (!versionTrackingObj[snippet.name]) {
15 resultsArr.push(snippet)
16 versionTrackingObj[snippet.name] = [snippet.version]
17 } else if (!versionTrackingObj[snippet.name].includes(snippet.version)) {
18 resultsArr.push(snippet)
19 versionTrackingObj[snippet.name].push(snippet.version)
20 }
21 }
22 return [resultsArr, versionTrackingObj]
23 }, [[], {}])[0]
24}