js-build-tools 1.2.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +590 -267
- package/dist/build.js +30 -23
- package/dist/build.min.js +1 -1
- package/dist/bundle.js +18 -15
- package/dist/bundle.min.js +1 -1
- package/dist/bundleLint.js +24 -20
- package/dist/bundleLint.min.js +1 -1
- package/dist/bundleMinify.js +16 -20
- package/dist/bundleMinify.min.js +1 -1
- package/dist/compileReadme.js +15 -13
- package/dist/compileReadme.min.js +1 -1
- package/dist/default.js +19 -14
- package/dist/default.min.js +1 -1
- package/dist/dist.js +14 -10
- package/dist/dist.min.js +1 -1
- package/dist/distLint.js +23 -20
- package/dist/distLint.min.js +1 -1
- package/dist/distMinify.js +15 -20
- package/dist/distMinify.min.js +1 -1
- package/dist/partials/addToReadme.js +25 -0
- package/dist/partials/beginWatcher.js +16 -0
- package/dist/partials/clean.js +21 -0
- package/dist/partials/distFor.js +23 -0
- package/dist/partials/distForSrc.js +16 -0
- package/dist/partials/distSeries.js +31 -0
- package/dist/partials/minifyFor.js +21 -0
- package/dist/partials/readmeTemplate.js +18 -0
- package/dist/partials/runOnChange.js +63 -0
- package/dist/partials/tsFor.js +24 -0
- package/dist/partials.js +33 -0
- package/dist/partials.min.js +1 -0
- package/dist/test-helpers/circularObject.js +50 -0
- package/dist/test-helpers/countMatches.js +16 -0
- package/dist/test-helpers/deepReferenceObject.js +20 -0
- package/dist/test-helpers/domItem.js +33 -0
- package/dist/test-helpers/jsonDom.js +20 -0
- package/dist/test-helpers/linkedList.js +23 -0
- package/dist/test-helpers/logObject.js +24 -0
- package/dist/test-helpers/multiReferenceObject.js +20 -0
- package/dist/test-helpers/nodeTree.js +28 -0
- package/dist/test-helpers/setUp.js +127 -0
- package/dist/testFull.js +24 -13
- package/dist/testFull.min.js +1 -1
- package/dist/testHelpers.js +33 -198
- package/dist/testHelpers.min.js +1 -1
- package/dist/testQuick.js +26 -15
- package/dist/testQuick.min.js +1 -1
- package/dist/typeScript.js +14 -0
- package/dist/typeScript.min.js +1 -0
- package/dist/watchFull.js +14 -21
- package/dist/watchFull.min.js +1 -1
- package/dist/watchTest.js +16 -14
- package/dist/watchTest.min.js +1 -1
- package/functions/build.js +28 -25
- package/functions/build.test.js +59 -0
- package/functions/bundle.js +17 -15
- package/functions/bundle.test.js +68 -0
- package/functions/bundleLint.js +19 -17
- package/functions/bundleLint.test.js +61 -0
- package/functions/bundleMinify.js +12 -15
- package/functions/bundleMinify.test.js +14 -0
- package/functions/compileReadme.js +11 -10
- package/functions/compileReadme.test.js +18 -0
- package/functions/default.js +14 -11
- package/functions/default.test.js +32 -0
- package/functions/dist.js +11 -9
- package/functions/dist.test.js +43 -0
- package/functions/distLint.js +19 -17
- package/functions/distLint.test.js +58 -0
- package/functions/distMinify.js +12 -15
- package/functions/distMinify.test.js +14 -0
- package/functions/partials/addToReadme.js +20 -0
- package/functions/partials/addToReadme.test.js +28 -0
- package/functions/partials/beginWatcher.js +12 -0
- package/functions/partials/beginWatcher.test.js +18 -0
- package/functions/partials/clean.js +14 -0
- package/functions/partials/clean.test.js +20 -0
- package/functions/partials/distFor.js +18 -0
- package/functions/partials/distFor.test.js +125 -0
- package/functions/partials/distForSrc.js +14 -0
- package/functions/partials/distForSrc.test.js +17 -0
- package/functions/partials/distSeries.js +21 -0
- package/functions/partials/distSeries.test.js +33 -0
- package/functions/partials/minifyFor.js +16 -0
- package/functions/partials/minifyFor.test.js +48 -0
- package/functions/partials/readmeTemplate.js +15 -0
- package/functions/partials/readmeTemplate.test.js +33 -0
- package/functions/partials/runOnChange.js +57 -0
- package/functions/partials/runOnChange.test.js +93 -0
- package/functions/partials/tsFor.js +21 -0
- package/functions/partials/tsFor.test.js +44 -0
- package/functions/partials.js +32 -0
- package/functions/partials.test.js +7 -0
- package/functions/test-helpers/circularObject.js +28 -0
- package/functions/test-helpers/circularObject.test.js +14 -0
- package/functions/test-helpers/countMatches.js +11 -0
- package/functions/test-helpers/countMatches.test.js +9 -0
- package/functions/test-helpers/deepReferenceObject.js +25 -0
- package/functions/test-helpers/deepReferenceObject.test.js +7 -0
- package/functions/test-helpers/domItem.js +31 -0
- package/functions/test-helpers/domItem.test.js +12 -0
- package/functions/test-helpers/jsonDom.js +16 -0
- package/functions/test-helpers/jsonDom.test.js +12 -0
- package/functions/test-helpers/linkedList.js +10 -0
- package/functions/test-helpers/linkedList.test.js +22 -0
- package/functions/test-helpers/logObject.js +18 -0
- package/functions/test-helpers/logObject.test.js +20 -0
- package/functions/test-helpers/multiReferenceObject.js +25 -0
- package/functions/test-helpers/multiReferenceObject.test.js +14 -0
- package/functions/test-helpers/nodeTree.js +11 -0
- package/functions/test-helpers/nodeTree.test.js +18 -0
- package/functions/test-helpers/setUp.js +67 -0
- package/functions/test-helpers/setUp.test.js +18 -0
- package/functions/testFull.js +20 -10
- package/functions/testFull.test.js +16 -0
- package/functions/testHelpers.js +27 -137
- package/functions/testHelpers.test.js +7 -100
- package/functions/testQuick.js +20 -10
- package/functions/testQuick.test.js +16 -0
- package/functions/typeScript.js +11 -0
- package/functions/typeScript.test.js +10 -0
- package/functions/watchFull.js +6 -12
- package/functions/watchFull.test.js +40 -0
- package/functions/watchTest.js +4 -2
- package/functions/watchTest.test.js +48 -0
- package/gulp.config.js +161 -16
- package/gulpfile.base.js +9 -0
- package/package.json +11 -11
- package/dist/addToReadme.js +0 -22
- package/dist/addToReadme.min.js +0 -1
- package/dist/clean.js +0 -11
- package/dist/clean.min.js +0 -1
- package/dist/distFor.js +0 -21
- package/dist/distFor.min.js +0 -1
- package/dist/readmeTemplate.js +0 -15
- package/dist/readmeTemplate.min.js +0 -1
- package/functions/addToReadme.js +0 -17
- package/functions/clean.js +0 -10
- package/functions/distFor.js +0 -15
- package/functions/readmeTemplate.js +0 -13
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
const fs = require('fs')
|
|
2
|
+
const setUp = require('./test-helpers/setUp')
|
|
3
|
+
setUp.setDefaults('test-bundle-lint')
|
|
4
|
+
const gulpConfig = setUp.gulpConfig
|
|
5
|
+
const bundleLint = require('./bundleLint')
|
|
6
|
+
const { countMatches } = require('./testHelpers')
|
|
7
|
+
|
|
8
|
+
const lintableContents = 'const gulpConfig = require("../gulp.config.js");\n' +
|
|
9
|
+
'const { dest, src } = require("gulp");\n' +
|
|
10
|
+
'const standard = require("gulp-standard");\n' +
|
|
11
|
+
'\n' +
|
|
12
|
+
'/**\n' +
|
|
13
|
+
' * Applies Standard code style linting to distribution files.\n' +
|
|
14
|
+
' * @returns {*}\n' +
|
|
15
|
+
' */\n' +
|
|
16
|
+
'const bundleLint = () => src(`${gulpConfig.get(\"browserPath\")}/${gulpConfig.get(\"browserName\")}.js`)\n' +
|
|
17
|
+
' .pipe(standard({ fix: true }))\n' +
|
|
18
|
+
' .pipe(standard.reporter("default", {\n' +
|
|
19
|
+
' fix: true,\n' +
|
|
20
|
+
' quiet: true\n' +
|
|
21
|
+
' }))\n' +
|
|
22
|
+
' .pipe(dest(gulpConfig.get("browserPath")));\n' +
|
|
23
|
+
'\n' +
|
|
24
|
+
'module.exports = bundleLint;'
|
|
25
|
+
|
|
26
|
+
beforeEach(
|
|
27
|
+
() => setUp.beforeEach()
|
|
28
|
+
.then(
|
|
29
|
+
async () => {
|
|
30
|
+
const browserPath = gulpConfig.get('browserPath')
|
|
31
|
+
const browserName = gulpConfig.get('browserName')
|
|
32
|
+
await fs.mkdirSync(browserPath)
|
|
33
|
+
return fs.writeFileSync(`${browserPath}/${browserName}.js`, lintableContents)
|
|
34
|
+
}
|
|
35
|
+
)
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
afterEach(setUp.afterEach)
|
|
39
|
+
|
|
40
|
+
describe('bundleLint', () => {
|
|
41
|
+
test('copies the src directory and babelifies it into the dist directory', done => {
|
|
42
|
+
const browserPath = gulpConfig.get('browserPath')
|
|
43
|
+
const browserName = gulpConfig.get('browserName')
|
|
44
|
+
const fullPath = `${browserPath}/${browserName}.js`
|
|
45
|
+
const oldContents = fs.readFileSync(fullPath).toString()
|
|
46
|
+
expect.assertions(4)
|
|
47
|
+
expect(countMatches(oldContents, '"')).toEqual(14)
|
|
48
|
+
expect(countMatches(oldContents, ';')).toEqual(5)
|
|
49
|
+
bundleLint()
|
|
50
|
+
.on('finish', () => {
|
|
51
|
+
const lintedContents = fs.readFileSync(fullPath).toString()
|
|
52
|
+
expect(countMatches(lintedContents, '"')).toEqual(0)
|
|
53
|
+
expect(countMatches(lintedContents, ';')).toEqual(0)
|
|
54
|
+
done()
|
|
55
|
+
})
|
|
56
|
+
.on('error', error => {
|
|
57
|
+
console.error('Encountered error', error)
|
|
58
|
+
done()
|
|
59
|
+
})
|
|
60
|
+
}, 10000)
|
|
61
|
+
})
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* @returns {*}
|
|
9
|
-
*/
|
|
10
|
-
const bundleMinify = () =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
.pipe(dest(gulpConfig.browserPath))
|
|
14
|
-
|
|
15
|
-
module.exports = bundleMinify
|
|
1
|
+
const gulpConfig = require('../gulp.config.js')
|
|
2
|
+
const minifyFor = require('./partials/minifyFor')
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates the minified bundle file.
|
|
6
|
+
* @function
|
|
7
|
+
* @memberOf module:js-build-tools
|
|
8
|
+
* @returns {*}
|
|
9
|
+
*/
|
|
10
|
+
const bundleMinify = () => minifyFor(`${gulpConfig.get('browserPath')}/${gulpConfig.get('browserName')}.js`, gulpConfig.get('browserPath'))
|
|
11
|
+
|
|
12
|
+
module.exports = bundleMinify
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const { setUp } = require('./testHelpers')
|
|
2
|
+
const gulpConfig = setUp.gulpConfig
|
|
3
|
+
const bundleMinify = require('./bundleMinify')
|
|
4
|
+
const minifyFor = require('./partials/minifyFor')
|
|
5
|
+
|
|
6
|
+
jest.mock('./partials/minifyFor', () => jest.fn(() => Promise.resolve(true)))
|
|
7
|
+
|
|
8
|
+
describe('bundleMinify', () => {
|
|
9
|
+
test('calls minifyFor with configurations', () => {
|
|
10
|
+
expect.assertions(1)
|
|
11
|
+
bundleMinify()
|
|
12
|
+
expect(minifyFor).toHaveBeenCalledWith(`${gulpConfig.get('browserPath')}/${gulpConfig.get('browserName')}.js`, gulpConfig.get('browserPath'))
|
|
13
|
+
})
|
|
14
|
+
})
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
const addToReadme = require('./
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
const { addToReadme, readmeTemplate } = require('./partials')
|
|
2
|
+
const { series } = require('gulp')
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Generate the README.md file based off of the template, then append the generated documentation.
|
|
6
|
+
* @memberOf module:js-build-tools
|
|
7
|
+
* @returns {stream.Stream}
|
|
8
|
+
*/
|
|
9
|
+
const compileReadme = series(readmeTemplate, addToReadme)
|
|
10
|
+
|
|
11
|
+
module.exports = compileReadme
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const compileReadme = require('./compileReadme')
|
|
2
|
+
const { addToReadme, readmeTemplate} = require('./partials')
|
|
3
|
+
|
|
4
|
+
const genericFunction = () => Promise.resolve(true)
|
|
5
|
+
jest.mock('./partials/addToReadme', () => jest.fn(genericFunction))
|
|
6
|
+
jest.mock('./partials/readmeTemplate', () => jest.fn(genericFunction))
|
|
7
|
+
|
|
8
|
+
describe('compileReadme', () => {
|
|
9
|
+
test('calls readmeTemplate and addToReadme', done => {
|
|
10
|
+
expect.assertions(2)
|
|
11
|
+
compileReadme()
|
|
12
|
+
setTimeout(() => {
|
|
13
|
+
expect(readmeTemplate).toHaveBeenCalled()
|
|
14
|
+
expect(addToReadme).toHaveBeenCalled()
|
|
15
|
+
done()
|
|
16
|
+
}, 500)
|
|
17
|
+
})
|
|
18
|
+
})
|
package/functions/default.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Recommended as the default task, runs the simple dist and bundle tasks.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
const dist = require('./dist')
|
|
2
|
+
const bundle = require('./bundle')
|
|
3
|
+
const gulpConfig = require('../gulp.config')
|
|
4
|
+
const { series } = require('gulp')
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Recommended as the default task, runs the simple dist and bundle tasks.
|
|
8
|
+
* @memberOf module:js-build-tools
|
|
9
|
+
* @param {function} [done=null]
|
|
10
|
+
* @returns {stream.Stream}
|
|
11
|
+
*/
|
|
12
|
+
const defaultCmd = (done = null) => gulpConfig.get('nodeOnly') ? series(dist)(done) : series(dist, bundle)(done)
|
|
13
|
+
|
|
14
|
+
module.exports = defaultCmd
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const { setUp } = require('./testHelpers')
|
|
2
|
+
const gulpConfig = setUp.gulpConfig
|
|
3
|
+
const bundle = require('./bundle')
|
|
4
|
+
const dist = require('./dist')
|
|
5
|
+
const defaultCmd = require('./default')
|
|
6
|
+
|
|
7
|
+
const genericFunction = () => Promise.resolve(true)
|
|
8
|
+
jest.mock('./bundle', () => jest.fn(genericFunction))
|
|
9
|
+
jest.mock('./dist', () => jest.fn(genericFunction))
|
|
10
|
+
|
|
11
|
+
describe('distMinify', () => {
|
|
12
|
+
test('calls dist for nodeOnly true', done => {
|
|
13
|
+
gulpConfig.set('nodeOnly', true)
|
|
14
|
+
expect.assertions(1)
|
|
15
|
+
defaultCmd()
|
|
16
|
+
setTimeout(() => {
|
|
17
|
+
expect(dist).toHaveBeenCalled()
|
|
18
|
+
done()
|
|
19
|
+
}, 500)
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
test('calls dist and bundle for nodeOnly false', done => {
|
|
23
|
+
gulpConfig.set('nodeOnly', false)
|
|
24
|
+
expect.assertions(2)
|
|
25
|
+
defaultCmd()
|
|
26
|
+
setTimeout(() => {
|
|
27
|
+
expect(dist).toHaveBeenCalled()
|
|
28
|
+
expect(bundle).toHaveBeenCalled()
|
|
29
|
+
done()
|
|
30
|
+
}, 500)
|
|
31
|
+
})
|
|
32
|
+
})
|
package/functions/dist.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
const distFor = require('./distFor.js')
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Simplified distribution tasks which will use arguments from distFor.
|
|
5
|
-
* @
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
const distFor = require('./partials/distFor.js')
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Simplified distribution tasks which will use arguments from distFor.
|
|
5
|
+
* @function
|
|
6
|
+
* @memberOf module:js-build-tools
|
|
7
|
+
* @returns {*}
|
|
8
|
+
*/
|
|
9
|
+
const dist = () => distFor()
|
|
10
|
+
|
|
11
|
+
module.exports = dist
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const fs = require('fs')
|
|
2
|
+
const setUp = require('./test-helpers/setUp')
|
|
3
|
+
setUp.setDefaults('test-dist')
|
|
4
|
+
const gulpConfig = setUp.gulpConfig
|
|
5
|
+
const dist = require('./dist')
|
|
6
|
+
|
|
7
|
+
const rawContents = 'const distFor = require(\'./distFor.js\')\n' +
|
|
8
|
+
'\n' +
|
|
9
|
+
'/**\n' +
|
|
10
|
+
' * Simplified distribution tasks which will use arguments from distFor.\n' +
|
|
11
|
+
' * @returns {*}\n' +
|
|
12
|
+
' */\n' +
|
|
13
|
+
'const dist = () => distFor()\n' +
|
|
14
|
+
'\n' +
|
|
15
|
+
'module.exports = dist\n'
|
|
16
|
+
|
|
17
|
+
beforeEach(
|
|
18
|
+
() => setUp.beforeEach()
|
|
19
|
+
.then(
|
|
20
|
+
async () => {
|
|
21
|
+
const srcPath = gulpConfig.get('srcPath')
|
|
22
|
+
return fs.writeFileSync(`${srcPath}/dist.js`, rawContents)
|
|
23
|
+
}
|
|
24
|
+
)
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
afterEach(setUp.afterEach)
|
|
28
|
+
|
|
29
|
+
describe('dist', () => {
|
|
30
|
+
test('uses the configured paths', done => {
|
|
31
|
+
const distPath = gulpConfig.get('distPath')
|
|
32
|
+
expect.assertions(1)
|
|
33
|
+
dist()
|
|
34
|
+
.on('finish', () => {
|
|
35
|
+
expect(fs.existsSync(distPath)).toBeTruthy()
|
|
36
|
+
done()
|
|
37
|
+
})
|
|
38
|
+
.on('error', error => {
|
|
39
|
+
console.error('Encountered error', error)
|
|
40
|
+
done()
|
|
41
|
+
})
|
|
42
|
+
}, 10000)
|
|
43
|
+
})
|
package/functions/distLint.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
const gulpConfig = require('../gulp.config.js')
|
|
2
|
-
const { dest, src } = require('gulp')
|
|
3
|
-
const standard = require('gulp-standard')
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Applies Standard code style linting to distribution files.
|
|
7
|
-
* @
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
const gulpConfig = require('../gulp.config.js')
|
|
2
|
+
const { dest, src } = require('gulp')
|
|
3
|
+
const standard = require('gulp-standard')
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Applies Standard code style linting to distribution files.
|
|
7
|
+
* @function
|
|
8
|
+
* @memberOf module:js-build-tools
|
|
9
|
+
* @returns {*}
|
|
10
|
+
*/
|
|
11
|
+
const distLint = () => src(gulpConfig.get('distSearch'))
|
|
12
|
+
.pipe(standard({ fix: true }))
|
|
13
|
+
.pipe(standard.reporter('default', {
|
|
14
|
+
fix: true,
|
|
15
|
+
quiet: true
|
|
16
|
+
}))
|
|
17
|
+
.pipe(dest(gulpConfig.get('distPath')))
|
|
18
|
+
|
|
19
|
+
module.exports = distLint
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const fs = require('fs')
|
|
2
|
+
const setUp = require('./test-helpers/setUp')
|
|
3
|
+
setUp.setDefaults('test-dist-lint')
|
|
4
|
+
const gulpConfig = setUp.gulpConfig
|
|
5
|
+
const distLint = require('./distLint')
|
|
6
|
+
const { countMatches } = require('./testHelpers')
|
|
7
|
+
|
|
8
|
+
const lintableContents = 'const gulpConfig = require("../gulp.config.js");\n' +
|
|
9
|
+
'const { dest, src } = require("gulp");\n' +
|
|
10
|
+
'const standard = require("gulp-standard");\n' +
|
|
11
|
+
'\n' +
|
|
12
|
+
'/**\n' +
|
|
13
|
+
' * Applies Standard code style linting to distribution files.\n' +
|
|
14
|
+
' * @returns {*}\n' +
|
|
15
|
+
' */\n' +
|
|
16
|
+
'const distLint = () => src(gulpConfig.get("distSearch"))\n' +
|
|
17
|
+
' .pipe(standard({ fix: true }))\n' +
|
|
18
|
+
' .pipe(standard.reporter("default", {\n' +
|
|
19
|
+
' fix: true,\n' +
|
|
20
|
+
' quiet: true\n' +
|
|
21
|
+
' }))\n' +
|
|
22
|
+
' .pipe(dest(gulpConfig.get("distPath")));\n' +
|
|
23
|
+
'\n' +
|
|
24
|
+
'module.exports = distLint;'
|
|
25
|
+
|
|
26
|
+
beforeEach(
|
|
27
|
+
() => setUp.beforeEach()
|
|
28
|
+
.then(
|
|
29
|
+
async () => {
|
|
30
|
+
const distPath = gulpConfig.get('distPath')
|
|
31
|
+
await fs.mkdirSync(distPath)
|
|
32
|
+
return fs.writeFileSync(`${distPath}/distLint.js`, lintableContents)
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
afterEach(setUp.afterEach)
|
|
38
|
+
|
|
39
|
+
describe('distLint', () => {
|
|
40
|
+
test('copies the src directory and babelifies it into the dist directory', done => {
|
|
41
|
+
const distPath = gulpConfig.get('distPath')
|
|
42
|
+
const oldContents = fs.readFileSync(`${distPath}/distLint.js`).toString()
|
|
43
|
+
expect.assertions(4)
|
|
44
|
+
expect(countMatches(oldContents, '"')).toEqual(12)
|
|
45
|
+
expect(countMatches(oldContents, ';')).toEqual(5)
|
|
46
|
+
distLint()
|
|
47
|
+
.on('finish', () => {
|
|
48
|
+
const lintedContents = fs.readFileSync(`${distPath}/distLint.js`).toString()
|
|
49
|
+
expect(countMatches(lintedContents, '"')).toEqual(0)
|
|
50
|
+
expect(countMatches(lintedContents, ';')).toEqual(0)
|
|
51
|
+
done()
|
|
52
|
+
})
|
|
53
|
+
.on('error', error => {
|
|
54
|
+
console.error('Encountered error', error)
|
|
55
|
+
done()
|
|
56
|
+
})
|
|
57
|
+
}, 10000)
|
|
58
|
+
})
|
package/functions/distMinify.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* @returns {*}
|
|
9
|
-
*/
|
|
10
|
-
const distMinify = () =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
.pipe(dest(gulpConfig.distPath))
|
|
14
|
-
|
|
15
|
-
module.exports = distMinify
|
|
1
|
+
const gulpConfig = require('../gulp.config.js')
|
|
2
|
+
const minifyFor = require('./partials/minifyFor')
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates minified versions of the dist files.
|
|
6
|
+
* @function
|
|
7
|
+
* @memberOf module:js-build-tools
|
|
8
|
+
* @returns {*}
|
|
9
|
+
*/
|
|
10
|
+
const distMinify = () => minifyFor(gulpConfig.get('distSearch'), gulpConfig.get('distPath'))
|
|
11
|
+
|
|
12
|
+
module.exports = distMinify
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const { setUp } = require('./testHelpers')
|
|
2
|
+
const gulpConfig = setUp.gulpConfig
|
|
3
|
+
const distMinify = require('./distMinify')
|
|
4
|
+
const minifyFor = require('./partials/minifyFor')
|
|
5
|
+
|
|
6
|
+
jest.mock('./partials/minifyFor', () => jest.fn(() => Promise.resolve(true)))
|
|
7
|
+
|
|
8
|
+
describe('distMinify', () => {
|
|
9
|
+
test('calls minifyFor with configurations', () => {
|
|
10
|
+
expect.assertions(1)
|
|
11
|
+
distMinify()
|
|
12
|
+
expect(minifyFor).toHaveBeenCalledWith(gulpConfig.get('distSearch'), gulpConfig.get('distPath'))
|
|
13
|
+
})
|
|
14
|
+
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const fs = require('fs')
|
|
2
|
+
const gulpConfig = require('../../gulp.config.js')
|
|
3
|
+
const jsdoc2md = require('jsdoc-to-markdown')
|
|
4
|
+
const { globSync } = require('glob')
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Appends all the jsdoc comments to the readme file. Assumes empty or templated file.
|
|
8
|
+
* @function
|
|
9
|
+
* @memberOf module:partials
|
|
10
|
+
* @param {function|null} [done=null]
|
|
11
|
+
* @returns {string|Uint8Array}
|
|
12
|
+
*/
|
|
13
|
+
const addToReadme = (done = null) => {
|
|
14
|
+
const files = globSync(gulpConfig.get('readmeSearch'))
|
|
15
|
+
const readme = jsdoc2md.renderSync({ files: files })
|
|
16
|
+
fs.appendFileSync(gulpConfig.get('readmePath') + gulpConfig.get('readmeFile'), readme, gulpConfig.get('readmeOptions'))
|
|
17
|
+
return done && done()
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = addToReadme
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const fs = require('fs')
|
|
2
|
+
const setUp = require('../test-helpers/setUp')
|
|
3
|
+
setUp.setDefaults('test-add-to-readme')
|
|
4
|
+
const gulpConfig = setUp.gulpConfig
|
|
5
|
+
gulpConfig.set('srcSearch', 'test-temp/src/addToReadme.js')
|
|
6
|
+
const addToReadme = require('./addToReadme')
|
|
7
|
+
|
|
8
|
+
const rawContents = 'export function sayHello(name: string) {\n' +
|
|
9
|
+
' return `Hello from ${name}`;\n' +
|
|
10
|
+
'}'
|
|
11
|
+
|
|
12
|
+
beforeEach(() => setUp.beforeEach()
|
|
13
|
+
.then(() => fs.writeFileSync(gulpConfig.get('srcPath') + '/addToReadme.js', rawContents)))
|
|
14
|
+
|
|
15
|
+
afterEach(setUp.afterEach)
|
|
16
|
+
|
|
17
|
+
describe('addToReadme', () => {
|
|
18
|
+
test('generates the documentation', () => {
|
|
19
|
+
const readmeFilePath = gulpConfig.get('readmePath') + gulpConfig.get('readmeFile')
|
|
20
|
+
expect.assertions(2)
|
|
21
|
+
addToReadme(async () => {
|
|
22
|
+
await expect(fs.existsSync(readmeFilePath)).toBeTruthy()
|
|
23
|
+
const readme = await fs.readFileSync(readmeFilePath)
|
|
24
|
+
// At least the documentation will have the addToReadme documentation
|
|
25
|
+
await expect(readme.includes('addToReadme')).toBeTruthy()
|
|
26
|
+
})
|
|
27
|
+
})
|
|
28
|
+
})
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const gulpConfig = require('../../gulp.config.js')
|
|
2
|
+
const { watch } = require('gulp')
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Create a chokidar instance which watches and triggers change when the globed files are modified.
|
|
6
|
+
* @function
|
|
7
|
+
* @memberOf module:partials
|
|
8
|
+
* @returns {FSWatcher}
|
|
9
|
+
*/
|
|
10
|
+
const beginWatcher = () => watch(gulpConfig.get('watchSearch'))
|
|
11
|
+
|
|
12
|
+
module.exports = beginWatcher
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const setUp = require('../test-helpers/setUp')
|
|
2
|
+
setUp.setDefaults('test-begin-watcher')
|
|
3
|
+
const gulpConfig = setUp.gulpConfig
|
|
4
|
+
const beginWatcher = require('./beginWatcher')
|
|
5
|
+
const { EventEmitter } = require('node:events')
|
|
6
|
+
|
|
7
|
+
beforeEach(setUp.beforeEach)
|
|
8
|
+
|
|
9
|
+
afterEach(setUp.afterEach)
|
|
10
|
+
|
|
11
|
+
describe('beginWatcher', () => {
|
|
12
|
+
test('returns instance of EventEmitter / FSWatcher', () => {
|
|
13
|
+
gulpConfig.set('watchSearch', 'test-begin-watcher/*.js')
|
|
14
|
+
const fsWatcher = beginWatcher()
|
|
15
|
+
expect(fsWatcher).toBeInstanceOf(EventEmitter)
|
|
16
|
+
fsWatcher.close()
|
|
17
|
+
})
|
|
18
|
+
})
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const del = require('del')
|
|
2
|
+
const gulpConfig = require('../../gulp.config.js')
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Deletes all the distribution and browser files (used before create a new build).
|
|
6
|
+
* @function
|
|
7
|
+
* @memberOf module:partials
|
|
8
|
+
* @param {function} [done=null]
|
|
9
|
+
* @param {string[]} [paths=['dist/config/path', 'browser/config/path']]
|
|
10
|
+
* @returns {Promise<string[]> | *}
|
|
11
|
+
*/
|
|
12
|
+
const clean = (done = null, paths = [gulpConfig.get('distPath'), gulpConfig.get('browserPath')]) => del(paths).then(() => done && done())
|
|
13
|
+
|
|
14
|
+
module.exports = clean
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const fs = require('fs')
|
|
2
|
+
const setUp = require('../test-helpers/setUp')
|
|
3
|
+
setUp.setDefaults('test-clean')
|
|
4
|
+
const gulpConfig = setUp.gulpConfig
|
|
5
|
+
const clean = require('./clean')
|
|
6
|
+
|
|
7
|
+
beforeEach(setUp.beforeEach)
|
|
8
|
+
|
|
9
|
+
afterEach(setUp.afterEach)
|
|
10
|
+
|
|
11
|
+
describe('clean', () => {
|
|
12
|
+
test('removes all contents of directories specified', async () => {
|
|
13
|
+
expect.assertions(2)
|
|
14
|
+
const srcPath = gulpConfig.get('srcPath')
|
|
15
|
+
expect(fs.readdirSync(srcPath)).toBeTruthy()
|
|
16
|
+
// Run the clean script to empty the directories
|
|
17
|
+
await clean(null, [srcPath])
|
|
18
|
+
expect(fs.existsSync(srcPath)).toBeFalsy()
|
|
19
|
+
})
|
|
20
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const babel = require('gulp-babel')
|
|
2
|
+
const { dest, src } = require('gulp')
|
|
3
|
+
const distForSrc = require('./distForSrc')
|
|
4
|
+
const gulpConfig = require('../../gulp.config.js')
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Build the distribution for a given source pattern.
|
|
8
|
+
* @function
|
|
9
|
+
* @memberOf module:partials
|
|
10
|
+
* @param {string|array} [srcPath='src/config/path/dist/for']
|
|
11
|
+
* @param {string} [destPath='dist/config/path']
|
|
12
|
+
* @returns {*}
|
|
13
|
+
*/
|
|
14
|
+
const distFor = (srcPath = distForSrc(), destPath = gulpConfig.get('distPath')) => src(srcPath)
|
|
15
|
+
.pipe(babel())
|
|
16
|
+
.pipe(dest(destPath))
|
|
17
|
+
|
|
18
|
+
module.exports = distFor
|