-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.ts
51 lines (44 loc) · 1.2 KB
/
config.ts
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
import path from 'path';
import glob from 'glob';
export interface Config {
assetDir: string;
pagesDir: string;
outDir: string;
staticDir: string
cleanUrls: boolean;
commonStyles: string[];
production: boolean;
sourceMaps: boolean;
svelteConfig: {
[key: string]: any
}
}
export const loadConfig = () => {
const production = process.env.NODE_ENV === "production" || !process.env.ROLLUP_WATCH;
const sourceMaps = !production;
const defaultConfig: Config = {
assetDir: 'assets',
pagesDir: `pages`,
outDir: 'public',
staticDir: 'static',
commonStyles: ['styles/common.css'],
cleanUrls: true,
production,
sourceMaps,
svelteConfig: {
emitCss: true
}
}
const config = require(path.join(process.cwd(), 'sven.config.js'));
return Object.assign({}, defaultConfig, config)
}
export const autoGeneratePages = (config: Config): Promise<string[]> => {
return new Promise((resolve, reject) => {
glob(`${config.pagesDir}/**/*.svelte`, {}, function (err: any, files: string[]) {
if (err) {
reject(err);
}
resolve(files);
});
});
};