-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
55 lines (51 loc) · 1.53 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const metalsmith = require('metalsmith')
const { readFileSync } = require('fs')
require('dotenv').config()
const getData = require('./src/data/getData')
const processData = require('./src/data/processData')
const createComponents = require('./src/components/createComponents')
const createCmsSchema = require('./src/cms/createCmsSchema')
const createStyleVariables = require('./src/styles/createStyleVariables')
const processTemplate = require('./src/template/processTemplate')
const config = {
token: process.env.FIGMA_TOKEN,
fileKey: process.env.FIGMA_FILE_KEY,
canvases: process.env.FIGMA_CANVASES,
sanityID: process.env.SANITY_ID,
siteName: process.env.SITE_NAME,
siteUrl: process.env.SITE_URL,
brandPrimary: process.env.BRAND_PRIMARY,
// useCache: true,
cacheData: true
}
function includeConfigs(files, _metalsmith, done) {
const configFiles = ['./.stylelintrc', './.prettierrc', './.eslintrc.js']
for (const path of configFiles) {
files[path] = {
contents: Buffer.from(readFileSync(path))
}
}
done()
}
metalsmith(__dirname)
.source('template')
.destination('output')
.metadata(config)
.clean(true)
.use(includeConfigs)
.use(getData)
.use(processData)
.use(createStyleVariables)
.use(createComponents)
.use(createCmsSchema)
.use(processTemplate)
// Cleaning files that shouldn't go to output
.use(function(files, _metalsmith, done) {
delete files.data
delete files['cached.json']
// delete files['processed.json']
done()
})
.build(function(err) {
if (err) throw err
})