forked from iamkun/dayjs
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathindex.js
54 lines (46 loc) · 1.47 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
const rollup = require('rollup')
const fs = require('fs')
const util = require('util')
const path = require('path')
const configFactory = require('./rollup.config')
const { promisify } = util
const promisifyReadDir = promisify(fs.readdir)
const formatName = n => n.replace(/\.js/, '').replace('-', '_')
async function build(option) {
const bundle = await rollup.rollup(option.input)
await bundle.write(option.output)
}
(async () => {
try {
const locales = await promisifyReadDir(path.join(__dirname, '../src/locale'))
locales.forEach((l) => {
build(configFactory({
input: `./src/locale/${l}`,
fileName: `./locale/${l}`,
name: `dayjs_locale_${formatName(l)}`
}))
})
const plugins = await promisifyReadDir(path.join(__dirname, '../src/plugin'))
plugins.forEach((l) => {
build(configFactory({
input: `./src/plugin/${l}/index`,
fileName: `./plugin/${l}.js`,
name: `dayjs_plugin_${formatName(l)}`
}))
})
const timeZoneVariants = ['custom', '1900-2050', '1970-2038', '2012-2022']
timeZoneVariants.forEach((moduleName) => {
build(configFactory({
input: `./src/plugin/timeZone/${moduleName}`,
fileName: `./plugin/timeZone-${moduleName}.js`,
name: 'dayjs_plugin_timeZone'
}))
})
build(configFactory({
input: './src/index.js',
fileName: './dayjs.min.js'
}))
} catch (e) {
console.error(e) // eslint-disable-line no-console
}
})()