-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.babel.js
93 lines (86 loc) · 1.92 KB
/
gulpfile.babel.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import { src, dest, series } from 'gulp'
import rollup from 'gulp-rollup'
import babel from 'gulp-babel'
import header from 'gulp-header'
import path from 'path'
import { Server } from 'karma'
const headerTxt =
`/**
*
* Partial local storage polyfill
*
* @author Patrick Kubiak <pk9948@rit.edu>
*
* Why?
* - For local files, IE and Edge do not have support for local storage
* - local storage can be disabled
*
* Implementation details:
* - Use browser's native implementation if supported
* - Mirror native functionality with an object
*
* Implementation flaws:
* - Not persistent
* - Need to use _localStorage instead of localStorage
*
* Use _localStorage or window._localStorage instead of localStorage or window.localStorage
* because the browser prevents using localStorage or window.localStorage if access is denied for this document
*
*/
`
/**
* Babel transpile for dist
*/
function transpile () {
return src('./src/**/*.js')
.pipe(rollup({
input: './src/local-storage-poorlyfill.js',
output: {
format: 'iife'
},
plugins: [
babel({
presets: ['@babel/env']
})
]
}))
.pipe(header(headerTxt))
.pipe(dest('./dist/'))
}
/**
* Babel transpile for tests
*/
function transpileTests () {
return src(['./src/**/*.js', './test/**/*.js'])
.pipe(rollup({
input: './test/test.js',
output: {
format: 'iife'
},
plugins: [
babel({
presets: ['@babel/env']
})
]
}))
.pipe(dest('./dist/'))
}
/**
* Run karma tests
*/
function test (done) {
new Server({
configFile: path.join(__dirname, '/karma.conf.js'),
singleRun: true
}, done()).start()
}
/**
* Transpile and run tests
*/
const runTests = series(transpileTests, test)
// export
exports.transpile = transpile
exports.transpileTests = transpileTests
exports.test = test
exports.runTests = runTests
exports.default = runTests