js-build-tools 6.6.0 → 6.7.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/LICENSE +674 -674
- package/README.md +762 -701
- package/babel.config.js +28 -28
- package/dist/build.js +75 -75
- package/dist/bundle.js +19 -19
- package/dist/bundleMinify.js +7 -7
- package/dist/compileReadme.js +4 -4
- package/dist/copyFiles.js +17 -17
- package/dist/copyFonts.js +4 -4
- package/dist/default.js +5 -5
- package/dist/dist.js +4 -4
- package/dist/distMinify.js +4 -4
- package/dist/docs.js +7 -7
- package/dist/images.js +4 -4
- package/dist/jsdocDocs.js +6 -6
- package/dist/lint.js +16 -16
- package/dist/partials/addToReadme.js +9 -9
- package/dist/partials/beginWatcher.js +4 -4
- package/dist/partials/clean.js +5 -5
- package/dist/partials/copyFor.js +9 -9
- package/dist/partials/distFor.js +6 -6
- package/dist/partials/distForSrc.js +5 -5
- package/dist/partials/distSeries.js +7 -7
- package/dist/partials/imagesFor.js +93 -93
- package/dist/partials/jsdocDocsFor.js +46 -46
- package/dist/partials/lintSource.js +51 -51
- package/dist/partials/loadPeer.js +99 -99
- package/dist/partials/loadPlaywright.js +14 -14
- package/dist/partials/minifyFor.js +20 -20
- package/dist/partials/neostandardLint.js +175 -175
- package/dist/partials/readmeTemplate.js +4 -4
- package/dist/partials/removeDirectory.js +11 -11
- package/dist/partials/resolveDocsMethod.js +6 -6
- package/dist/partials/runOnChange.js +31 -31
- package/dist/partials/sassFor.js +6 -6
- package/dist/partials/serveStatic.js +9 -9
- package/dist/partials/tsFor.js +32 -32
- package/dist/partials/typeDocsFor.js +264 -264
- package/dist/partials.js +176 -176
- package/dist/sourceLint.js +18 -18
- package/dist/test-helpers/isolateGulpCache.js +24 -24
- package/dist/test-helpers/setUp.js +4 -4
- package/dist/testFull.js +5 -5
- package/dist/testQuick.js +5 -5
- package/dist/typeDocs.js +5 -5
- package/dist/typeScript.js +4 -4
- package/dist/utilities/convertMjsFilesForDocs.js +12 -12
- package/dist/utilities/dotGet.js +54 -54
- package/dist/utilities/dotNotate.js +79 -79
- package/dist/utilities/dotSet.js +45 -45
- package/dist/utilities/esmNamedExportsToCjs.js +15 -15
- package/dist/utilities/getBundleConfigs.js +9 -9
- package/dist/utilities/isObject.js +6 -6
- package/dist/utilities/strAfter.js +7 -7
- package/dist/utilities/strBefore.js +7 -7
- package/dist/watchFull.js +4 -4
- package/dist/watchTest.js +4 -4
- package/functions/build.mjs +72 -72
- package/functions/build.test.mjs +763 -759
- package/functions/bundle.mjs +44 -44
- package/functions/bundle.test.mjs +219 -219
- package/functions/bundleMinify.mjs +16 -16
- package/functions/bundleMinify.test.mjs +37 -37
- package/functions/compileReadme.mjs +9 -9
- package/functions/compileReadme.test.mjs +18 -18
- package/functions/copyFiles.mjs +32 -32
- package/functions/copyFiles.test.mjs +78 -78
- package/functions/copyFonts.mjs +9 -9
- package/functions/copyFonts.test.mjs +32 -32
- package/functions/default.mjs +12 -12
- package/functions/default.test.mjs +33 -33
- package/functions/dist.mjs +8 -8
- package/functions/dist.test.mjs +44 -44
- package/functions/distMinify.mjs +9 -9
- package/functions/distMinify.test.mjs +15 -15
- package/functions/docs.mjs +13 -13
- package/functions/docs.test.mjs +45 -45
- package/functions/gulpConfigEntries.test.mjs +23 -23
- package/functions/images.mjs +8 -8
- package/functions/images.test.mjs +142 -142
- package/functions/jsdocDocs.mjs +10 -10
- package/functions/jsdocEsmExports.test.mjs +24 -24
- package/functions/lint.mjs +9 -9
- package/functions/partials/addToReadme.mjs +25 -25
- package/functions/partials/addToReadme.test.mjs +34 -34
- package/functions/partials/beginWatcher.mjs +9 -9
- package/functions/partials/beginWatcher.test.mjs +19 -19
- package/functions/partials/clean.mjs +13 -13
- package/functions/partials/clean.test.mjs +22 -22
- package/functions/partials/copyFor.mjs +15 -15
- package/functions/partials/copyFor.test.mjs +53 -53
- package/functions/partials/distFor.mjs +22 -22
- package/functions/partials/distFor.test.mjs +195 -195
- package/functions/partials/distForSrc.mjs +11 -11
- package/functions/partials/distForSrc.test.mjs +18 -18
- package/functions/partials/distSeries.mjs +21 -21
- package/functions/partials/distSeries.test.mjs +34 -34
- package/functions/partials/imagesFor.mjs +83 -83
- package/functions/partials/imagesFor.test.mjs +287 -287
- package/functions/partials/jsdocDocsFor.mjs +163 -152
- package/functions/partials/jsdocDocsFor.test.mjs +182 -152
- package/functions/partials/lintSource.mjs +41 -41
- package/functions/partials/loadPeer.mjs +76 -76
- package/functions/partials/loadPeer.test.mjs +58 -58
- package/functions/partials/loadPlaywright.mjs +23 -23
- package/functions/partials/loadPlaywright.test.mjs +70 -70
- package/functions/partials/minifyFor.mjs +15 -15
- package/functions/partials/minifyFor.test.mjs +49 -49
- package/functions/partials/neostandardLint.mjs +142 -142
- package/functions/partials/neostandardLint.test.mjs +131 -131
- package/functions/partials/readmeTemplate.mjs +12 -12
- package/functions/partials/readmeTemplate.test.mjs +34 -34
- package/functions/partials/removeDirectory.mjs +34 -34
- package/functions/partials/removeDirectory.test.mjs +72 -72
- package/functions/partials/resolveDocsMethod.mjs +10 -10
- package/functions/partials/resolveDocsMethod.test.mjs +33 -33
- package/functions/partials/runOnChange.mjs +54 -54
- package/functions/partials/runOnChange.test.mjs +95 -95
- package/functions/partials/sassFor.mjs +25 -25
- package/functions/partials/sassFor.test.mjs +81 -81
- package/functions/partials/serveStatic.mjs +47 -47
- package/functions/partials/serveStatic.test.mjs +71 -71
- package/functions/partials/tsFor.mjs +92 -92
- package/functions/partials/tsFor.test.mjs +88 -88
- package/functions/partials/typeDocsFor.mjs +231 -231
- package/functions/partials/typeDocsFor.test.mjs +263 -263
- package/functions/partials.mjs +31 -31
- package/functions/partials.test.mjs +7 -7
- package/functions/sass.mjs +4 -4
- package/functions/sass.test.mjs +31 -31
- package/functions/sourceLint.mjs +13 -13
- package/functions/sourceLint.test.mjs +166 -166
- package/functions/test-helpers/isolateGulpCache.mjs +16 -16
- package/functions/test-helpers/neostandardLintWithRealNeostandard.mjs +40 -40
- package/functions/test-helpers/setUp.mjs +100 -100
- package/functions/test-helpers/setUp.test.mjs +19 -19
- package/functions/testFull.mjs +17 -17
- package/functions/testFull.test.mjs +17 -17
- package/functions/testHelpers.mjs +10 -10
- package/functions/testHelpers.test.mjs +7 -7
- package/functions/testQuick.mjs +17 -17
- package/functions/testQuick.test.mjs +17 -17
- package/functions/typeDocs.mjs +9 -9
- package/functions/typeDocs.test.mjs +11 -11
- package/functions/typeScript.mjs +8 -8
- package/functions/typeScript.test.mjs +11 -11
- package/functions/utilities/convertMjsFilesForDocs.mjs +34 -34
- package/functions/utilities/convertMjsFilesForDocs.test.mjs +58 -58
- package/functions/utilities/dotGet.mjs +49 -49
- package/functions/utilities/dotNotate.mjs +73 -73
- package/functions/utilities/dotNotate.test.mjs +41 -41
- package/functions/utilities/dotSet.mjs +40 -40
- package/functions/utilities/esmNamedExportsToCjs.mjs +30 -30
- package/functions/utilities/esmNamedExportsToCjs.test.mjs +47 -47
- package/functions/utilities/getBundleConfigs.mjs +30 -30
- package/functions/utilities/isObject.mjs +8 -8
- package/functions/utilities/strAfter.mjs +12 -12
- package/functions/utilities/strBefore.mjs +12 -12
- package/functions/watchFull.mjs +9 -9
- package/functions/watchFull.test.mjs +41 -41
- package/functions/watchTest.mjs +10 -10
- package/functions/watchTest.test.mjs +49 -49
- package/gulp.config.js +4 -4
- package/gulp.config.mjs +344 -340
- package/gulpfile.base.js +51 -51
- package/gulpfile.base.mjs +29 -29
- package/jsdoc.base.js +16 -16
- package/jsdoc.esmExports.js +17 -17
- package/package.json +146 -145
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
/* eslint-disable no-template-curly-in-string -- fixture source code, the ${...} is meant to stay literal */
|
|
2
|
-
import fs from 'fs'
|
|
3
|
-
import * as setUp from '../test-helpers/setUp.mjs'
|
|
4
|
-
import { addToReadme } from './addToReadme.mjs'
|
|
5
|
-
|
|
6
|
-
setUp.setDefaults('test-add-to-readme')
|
|
7
|
-
const gulpConfig = setUp.gulpConfig
|
|
8
|
-
gulpConfig.set('dist.from', 'test-temp/src/addToReadme.js')
|
|
9
|
-
|
|
10
|
-
const rawContents = '/**\n' +
|
|
11
|
-
' * Say hello with a given name.\n' +
|
|
12
|
-
' * @param {string} name\n' +
|
|
13
|
-
' * @returns {string}\n' +
|
|
14
|
-
' */\n' +
|
|
15
|
-
'const sayHello = name => `Hello from ${name}`\n' +
|
|
16
|
-
'\n' +
|
|
17
|
-
'module.exports = sayHello\n'
|
|
18
|
-
|
|
19
|
-
beforeEach(() => setUp.beforeEach()
|
|
20
|
-
.then(() => fs.writeFileSync(gulpConfig.get('srcPath') + '/addToReadme.js', rawContents)))
|
|
21
|
-
|
|
22
|
-
afterEach(setUp.afterEach)
|
|
23
|
-
|
|
24
|
-
describe('addToReadme', () => {
|
|
25
|
-
test('generates the documentation', async () => {
|
|
26
|
-
const readmeFilePath = gulpConfig.get('readme.to') + gulpConfig.get('readme.file')
|
|
27
|
-
expect.assertions(2)
|
|
28
|
-
await addToReadme()
|
|
29
|
-
await expect(fs.existsSync(readmeFilePath)).toBeTruthy()
|
|
30
|
-
const readme = await fs.readFileSync(readmeFilePath)
|
|
31
|
-
// At least the documentation will have the addToReadme documentation
|
|
32
|
-
await expect(readme.includes('sayHello')).toBeTruthy()
|
|
33
|
-
})
|
|
34
|
-
})
|
|
1
|
+
/* eslint-disable no-template-curly-in-string -- fixture source code, the ${...} is meant to stay literal */
|
|
2
|
+
import fs from 'fs'
|
|
3
|
+
import * as setUp from '../test-helpers/setUp.mjs'
|
|
4
|
+
import { addToReadme } from './addToReadme.mjs'
|
|
5
|
+
|
|
6
|
+
setUp.setDefaults('test-add-to-readme')
|
|
7
|
+
const gulpConfig = setUp.gulpConfig
|
|
8
|
+
gulpConfig.set('dist.from', 'test-temp/src/addToReadme.js')
|
|
9
|
+
|
|
10
|
+
const rawContents = '/**\n' +
|
|
11
|
+
' * Say hello with a given name.\n' +
|
|
12
|
+
' * @param {string} name\n' +
|
|
13
|
+
' * @returns {string}\n' +
|
|
14
|
+
' */\n' +
|
|
15
|
+
'const sayHello = name => `Hello from ${name}`\n' +
|
|
16
|
+
'\n' +
|
|
17
|
+
'module.exports = sayHello\n'
|
|
18
|
+
|
|
19
|
+
beforeEach(() => setUp.beforeEach()
|
|
20
|
+
.then(() => fs.writeFileSync(gulpConfig.get('srcPath') + '/addToReadme.js', rawContents)))
|
|
21
|
+
|
|
22
|
+
afterEach(setUp.afterEach)
|
|
23
|
+
|
|
24
|
+
describe('addToReadme', () => {
|
|
25
|
+
test('generates the documentation', async () => {
|
|
26
|
+
const readmeFilePath = gulpConfig.get('readme.to') + gulpConfig.get('readme.file')
|
|
27
|
+
expect.assertions(2)
|
|
28
|
+
await addToReadme()
|
|
29
|
+
await expect(fs.existsSync(readmeFilePath)).toBeTruthy()
|
|
30
|
+
const readme = await fs.readFileSync(readmeFilePath)
|
|
31
|
+
// At least the documentation will have the addToReadme documentation
|
|
32
|
+
await expect(readme.includes('sayHello')).toBeTruthy()
|
|
33
|
+
})
|
|
34
|
+
})
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as gulpConfig from '../../gulp.config.mjs'
|
|
2
|
-
import { watch } from 'gulp'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Create a chokidar instance which watches and triggers change when the globed files are modified.
|
|
6
|
-
* @memberOf module:partials
|
|
7
|
-
* @returns {FSWatcher}
|
|
8
|
-
*/
|
|
9
|
-
export const beginWatcher = () => watch(gulpConfig.get('test.watch'))
|
|
1
|
+
import * as gulpConfig from '../../gulp.config.mjs'
|
|
2
|
+
import { watch } from 'gulp'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Create a chokidar instance which watches and triggers change when the globed files are modified.
|
|
6
|
+
* @memberOf module:partials
|
|
7
|
+
* @returns {FSWatcher}
|
|
8
|
+
*/
|
|
9
|
+
export const beginWatcher = () => watch(gulpConfig.get('test.watch'))
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import * as setUp from '../test-helpers/setUp.mjs'
|
|
2
|
-
import { beginWatcher } from './beginWatcher.mjs'
|
|
3
|
-
import { EventEmitter } from 'node:events'
|
|
4
|
-
|
|
5
|
-
setUp.setDefaults('test-begin-watcher')
|
|
6
|
-
const gulpConfig = setUp.gulpConfig
|
|
7
|
-
|
|
8
|
-
beforeEach(setUp.beforeEach)
|
|
9
|
-
|
|
10
|
-
afterEach(setUp.afterEach)
|
|
11
|
-
|
|
12
|
-
describe('beginWatcher', () => {
|
|
13
|
-
test('returns instance of EventEmitter / FSWatcher', () => {
|
|
14
|
-
gulpConfig.set('test.watch', 'test-begin-watcher/*.js')
|
|
15
|
-
const fsWatcher = beginWatcher()
|
|
16
|
-
expect(fsWatcher).toBeInstanceOf(EventEmitter)
|
|
17
|
-
fsWatcher.close()
|
|
18
|
-
})
|
|
19
|
-
})
|
|
1
|
+
import * as setUp from '../test-helpers/setUp.mjs'
|
|
2
|
+
import { beginWatcher } from './beginWatcher.mjs'
|
|
3
|
+
import { EventEmitter } from 'node:events'
|
|
4
|
+
|
|
5
|
+
setUp.setDefaults('test-begin-watcher')
|
|
6
|
+
const gulpConfig = setUp.gulpConfig
|
|
7
|
+
|
|
8
|
+
beforeEach(setUp.beforeEach)
|
|
9
|
+
|
|
10
|
+
afterEach(setUp.afterEach)
|
|
11
|
+
|
|
12
|
+
describe('beginWatcher', () => {
|
|
13
|
+
test('returns instance of EventEmitter / FSWatcher', () => {
|
|
14
|
+
gulpConfig.set('test.watch', 'test-begin-watcher/*.js')
|
|
15
|
+
const fsWatcher = beginWatcher()
|
|
16
|
+
expect(fsWatcher).toBeInstanceOf(EventEmitter)
|
|
17
|
+
fsWatcher.close()
|
|
18
|
+
})
|
|
19
|
+
})
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import * as gulpConfig from '../../gulp.config.mjs'
|
|
2
|
-
import { removeDirectory } from './removeDirectory.mjs'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Deletes all the distribution and browser files (used before create a new build).
|
|
6
|
-
* Configure array of directories to remove with 'cleanPaths'.
|
|
7
|
-
* @memberOf module:partials
|
|
8
|
-
* @returns {Promise<string[]> | *}
|
|
9
|
-
*/
|
|
10
|
-
export const clean = () => gulpConfig.get('cleanPaths').reduce(
|
|
11
|
-
(promise, path) => promise.then(() => removeDirectory(path)),
|
|
12
|
-
Promise.resolve()
|
|
13
|
-
)
|
|
1
|
+
import * as gulpConfig from '../../gulp.config.mjs'
|
|
2
|
+
import { removeDirectory } from './removeDirectory.mjs'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Deletes all the distribution and browser files (used before create a new build).
|
|
6
|
+
* Configure array of directories to remove with 'cleanPaths'.
|
|
7
|
+
* @memberOf module:partials
|
|
8
|
+
* @returns {Promise<string[]> | *}
|
|
9
|
+
*/
|
|
10
|
+
export const clean = () => gulpConfig.get('cleanPaths').reduce(
|
|
11
|
+
(promise, path) => promise.then(() => removeDirectory(path)),
|
|
12
|
+
Promise.resolve()
|
|
13
|
+
)
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import fs from 'fs'
|
|
2
|
-
import * as setUp from '../test-helpers/setUp.mjs'
|
|
3
|
-
import { clean } from './clean.mjs'
|
|
4
|
-
|
|
5
|
-
setUp.setDefaults('test-clean')
|
|
6
|
-
const gulpConfig = setUp.gulpConfig
|
|
7
|
-
const srcPath = gulpConfig.get('srcPath')
|
|
8
|
-
gulpConfig.set('cleanPaths', [srcPath])
|
|
9
|
-
|
|
10
|
-
beforeEach(setUp.beforeEach)
|
|
11
|
-
|
|
12
|
-
afterEach(setUp.afterEach)
|
|
13
|
-
|
|
14
|
-
describe('clean', () => {
|
|
15
|
-
test('removes all contents of directories specified', async () => {
|
|
16
|
-
expect.assertions(2)
|
|
17
|
-
expect(fs.readdirSync(srcPath)).toBeTruthy()
|
|
18
|
-
// Run the clean script to empty the directories
|
|
19
|
-
await clean()
|
|
20
|
-
expect(fs.existsSync(srcPath)).toBeFalsy()
|
|
21
|
-
})
|
|
22
|
-
})
|
|
1
|
+
import fs from 'fs'
|
|
2
|
+
import * as setUp from '../test-helpers/setUp.mjs'
|
|
3
|
+
import { clean } from './clean.mjs'
|
|
4
|
+
|
|
5
|
+
setUp.setDefaults('test-clean')
|
|
6
|
+
const gulpConfig = setUp.gulpConfig
|
|
7
|
+
const srcPath = gulpConfig.get('srcPath')
|
|
8
|
+
gulpConfig.set('cleanPaths', [srcPath])
|
|
9
|
+
|
|
10
|
+
beforeEach(setUp.beforeEach)
|
|
11
|
+
|
|
12
|
+
afterEach(setUp.afterEach)
|
|
13
|
+
|
|
14
|
+
describe('clean', () => {
|
|
15
|
+
test('removes all contents of directories specified', async () => {
|
|
16
|
+
expect.assertions(2)
|
|
17
|
+
expect(fs.readdirSync(srcPath)).toBeTruthy()
|
|
18
|
+
// Run the clean script to empty the directories
|
|
19
|
+
await clean()
|
|
20
|
+
expect(fs.existsSync(srcPath)).toBeFalsy()
|
|
21
|
+
})
|
|
22
|
+
})
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { dest, src } from 'gulp'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Copy some files to a different location.
|
|
5
|
-
* @memberOf module:partials
|
|
6
|
-
* @param {string|array} srcPath
|
|
7
|
-
* @param {string} destPath
|
|
8
|
-
* @param {Object} [options]
|
|
9
|
-
* @param {string} [options.base] - Passed through to gulp's own src(pattern, {base}), to preserve srcPath's own
|
|
10
|
-
* subdirectory structure in destPath instead of flattening it.
|
|
11
|
-
* @returns {stream.Stream}
|
|
12
|
-
*/
|
|
13
|
-
// encoding: false copies the bytes untouched - Gulp 5's default utf8 handling corrupts binary files such as fonts.
|
|
14
|
-
export const copyFor = (srcPath, destPath, { base } = {}) => src(srcPath, { encoding: false, ...(base ? { base } : {}) })
|
|
15
|
-
.pipe(dest(destPath))
|
|
1
|
+
import { dest, src } from 'gulp'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Copy some files to a different location.
|
|
5
|
+
* @memberOf module:partials
|
|
6
|
+
* @param {string|array} srcPath
|
|
7
|
+
* @param {string} destPath
|
|
8
|
+
* @param {Object} [options]
|
|
9
|
+
* @param {string} [options.base] - Passed through to gulp's own src(pattern, {base}), to preserve srcPath's own
|
|
10
|
+
* subdirectory structure in destPath instead of flattening it.
|
|
11
|
+
* @returns {stream.Stream}
|
|
12
|
+
*/
|
|
13
|
+
// encoding: false copies the bytes untouched - Gulp 5's default utf8 handling corrupts binary files such as fonts.
|
|
14
|
+
export const copyFor = (srcPath, destPath, { base } = {}) => src(srcPath, { encoding: false, ...(base ? { base } : {}) })
|
|
15
|
+
.pipe(dest(destPath))
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import fs from 'fs'
|
|
2
|
-
import * as setUp from '../test-helpers/setUp.mjs'
|
|
3
|
-
import { copyFor } from './copyFor.mjs'
|
|
4
|
-
|
|
5
|
-
setUp.setDefaults('test-copy-for')
|
|
6
|
-
const gulpConfig = setUp.gulpConfig
|
|
7
|
-
|
|
8
|
-
const fileContents = 'some file contents'
|
|
9
|
-
|
|
10
|
-
beforeEach(setUp.beforeEach)
|
|
11
|
-
|
|
12
|
-
afterEach(setUp.afterEach)
|
|
13
|
-
|
|
14
|
-
describe('copyFor', () => {
|
|
15
|
-
test('copies the file and ', done => {
|
|
16
|
-
const srcPath = gulpConfig.get('srcPath')
|
|
17
|
-
const copyFile = `${srcPath}/fileToCopy.txt`
|
|
18
|
-
fs.writeFileSync(copyFile, fileContents)
|
|
19
|
-
expect.assertions(3)
|
|
20
|
-
const oldContents = fs.readFileSync(copyFile).toString()
|
|
21
|
-
expect(oldContents).toEqual(fileContents)
|
|
22
|
-
const browserPath = gulpConfig.get('browser.to')
|
|
23
|
-
copyFor(copyFile, browserPath)
|
|
24
|
-
.on('finish', () => {
|
|
25
|
-
expect(fs.existsSync(browserPath)).toBeTruthy()
|
|
26
|
-
const movedContents = fs.readFileSync(`${browserPath}/fileToCopy.txt`).toString()
|
|
27
|
-
expect(movedContents).toEqual(fileContents)
|
|
28
|
-
done()
|
|
29
|
-
})
|
|
30
|
-
.on('error', error => {
|
|
31
|
-
console.error('Encountered error', error)
|
|
32
|
-
done()
|
|
33
|
-
})
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
test('copies binary files byte for byte, including a leading BOM and bytes above 0x7f', done => {
|
|
37
|
-
const srcPath = gulpConfig.get('srcPath')
|
|
38
|
-
const binaryFile = `${srcPath}/font.woff`
|
|
39
|
-
const original = Buffer.concat([Buffer.from([0xef, 0xbb, 0xbf]), Buffer.from(Array.from({ length: 512 }, (_, i) => i % 256))])
|
|
40
|
-
fs.writeFileSync(binaryFile, original)
|
|
41
|
-
expect.assertions(1)
|
|
42
|
-
const browserPath = gulpConfig.get('browser.to')
|
|
43
|
-
copyFor(binaryFile, browserPath)
|
|
44
|
-
.on('finish', () => {
|
|
45
|
-
expect(fs.readFileSync(`${browserPath}/font.woff`).equals(original)).toBeTruthy()
|
|
46
|
-
done()
|
|
47
|
-
})
|
|
48
|
-
.on('error', error => {
|
|
49
|
-
console.error('Encountered error', error)
|
|
50
|
-
done()
|
|
51
|
-
})
|
|
52
|
-
})
|
|
53
|
-
})
|
|
1
|
+
import fs from 'fs'
|
|
2
|
+
import * as setUp from '../test-helpers/setUp.mjs'
|
|
3
|
+
import { copyFor } from './copyFor.mjs'
|
|
4
|
+
|
|
5
|
+
setUp.setDefaults('test-copy-for')
|
|
6
|
+
const gulpConfig = setUp.gulpConfig
|
|
7
|
+
|
|
8
|
+
const fileContents = 'some file contents'
|
|
9
|
+
|
|
10
|
+
beforeEach(setUp.beforeEach)
|
|
11
|
+
|
|
12
|
+
afterEach(setUp.afterEach)
|
|
13
|
+
|
|
14
|
+
describe('copyFor', () => {
|
|
15
|
+
test('copies the file and ', done => {
|
|
16
|
+
const srcPath = gulpConfig.get('srcPath')
|
|
17
|
+
const copyFile = `${srcPath}/fileToCopy.txt`
|
|
18
|
+
fs.writeFileSync(copyFile, fileContents)
|
|
19
|
+
expect.assertions(3)
|
|
20
|
+
const oldContents = fs.readFileSync(copyFile).toString()
|
|
21
|
+
expect(oldContents).toEqual(fileContents)
|
|
22
|
+
const browserPath = gulpConfig.get('browser.to')
|
|
23
|
+
copyFor(copyFile, browserPath)
|
|
24
|
+
.on('finish', () => {
|
|
25
|
+
expect(fs.existsSync(browserPath)).toBeTruthy()
|
|
26
|
+
const movedContents = fs.readFileSync(`${browserPath}/fileToCopy.txt`).toString()
|
|
27
|
+
expect(movedContents).toEqual(fileContents)
|
|
28
|
+
done()
|
|
29
|
+
})
|
|
30
|
+
.on('error', error => {
|
|
31
|
+
console.error('Encountered error', error)
|
|
32
|
+
done()
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
test('copies binary files byte for byte, including a leading BOM and bytes above 0x7f', done => {
|
|
37
|
+
const srcPath = gulpConfig.get('srcPath')
|
|
38
|
+
const binaryFile = `${srcPath}/font.woff`
|
|
39
|
+
const original = Buffer.concat([Buffer.from([0xef, 0xbb, 0xbf]), Buffer.from(Array.from({ length: 512 }, (_, i) => i % 256))])
|
|
40
|
+
fs.writeFileSync(binaryFile, original)
|
|
41
|
+
expect.assertions(1)
|
|
42
|
+
const browserPath = gulpConfig.get('browser.to')
|
|
43
|
+
copyFor(binaryFile, browserPath)
|
|
44
|
+
.on('finish', () => {
|
|
45
|
+
expect(fs.readFileSync(`${browserPath}/font.woff`).equals(original)).toBeTruthy()
|
|
46
|
+
done()
|
|
47
|
+
})
|
|
48
|
+
.on('error', error => {
|
|
49
|
+
console.error('Encountered error', error)
|
|
50
|
+
done()
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
})
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import babel from 'gulp-babel'
|
|
2
|
-
import { dest, src } from 'gulp'
|
|
3
|
-
import { distForSrc } from './distForSrc.mjs'
|
|
4
|
-
import * as gulpConfig from '../../gulp.config.mjs'
|
|
5
|
-
import through from 'through2'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Build the distribution for a given source pattern.
|
|
9
|
-
* @memberOf module:partials
|
|
10
|
-
* @param {string|array} [srcPath='src/config/path/dist/for']
|
|
11
|
-
* @param {string} [destPath='dist/config/path']
|
|
12
|
-
* @returns {stream.Stream}
|
|
13
|
-
*/
|
|
14
|
-
export const distFor = (srcPath = distForSrc(), destPath = gulpConfig.get('dist.to')) => src(srcPath)
|
|
15
|
-
.pipe(babel())
|
|
16
|
-
.pipe(through.obj(function (file, enc, callback) {
|
|
17
|
-
const regex = /\.mjs(['"]\s*\))/gi
|
|
18
|
-
file.contents = Buffer.from(file.contents.toString().replaceAll(regex, '.js$1'))
|
|
19
|
-
this.push(file)
|
|
20
|
-
callback()
|
|
21
|
-
}))
|
|
22
|
-
.pipe(dest(destPath))
|
|
1
|
+
import babel from 'gulp-babel'
|
|
2
|
+
import { dest, src } from 'gulp'
|
|
3
|
+
import { distForSrc } from './distForSrc.mjs'
|
|
4
|
+
import * as gulpConfig from '../../gulp.config.mjs'
|
|
5
|
+
import through from 'through2'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Build the distribution for a given source pattern.
|
|
9
|
+
* @memberOf module:partials
|
|
10
|
+
* @param {string|array} [srcPath='src/config/path/dist/for']
|
|
11
|
+
* @param {string} [destPath='dist/config/path']
|
|
12
|
+
* @returns {stream.Stream}
|
|
13
|
+
*/
|
|
14
|
+
export const distFor = (srcPath = distForSrc(), destPath = gulpConfig.get('dist.to')) => src(srcPath)
|
|
15
|
+
.pipe(babel())
|
|
16
|
+
.pipe(through.obj(function (file, enc, callback) {
|
|
17
|
+
const regex = /\.mjs(['"]\s*\))/gi
|
|
18
|
+
file.contents = Buffer.from(file.contents.toString().replaceAll(regex, '.js$1'))
|
|
19
|
+
this.push(file)
|
|
20
|
+
callback()
|
|
21
|
+
}))
|
|
22
|
+
.pipe(dest(destPath))
|