@modern-js/utils 1.3.7 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.eslintrc.js +9 -0
- package/CHANGELOG.md +31 -0
- package/compiled/browserslist/index.d.ts +178 -0
- package/compiled/browserslist/index.js +1 -0
- package/compiled/browserslist/license +20 -0
- package/compiled/browserslist/package.json +1 -0
- package/compiled/chalk/index.d.ts +415 -0
- package/compiled/chalk/index.js +1 -0
- package/compiled/chalk/license +9 -0
- package/compiled/chalk/package.json +1 -0
- package/compiled/chokidar/anymatch/index.d.ts +19 -0
- package/compiled/chokidar/fsevents.node +0 -0
- package/compiled/chokidar/index.js +40 -0
- package/compiled/chokidar/license +21 -0
- package/compiled/chokidar/package.json +1 -0
- package/compiled/chokidar/types/index.d.ts +188 -0
- package/compiled/commander/index.js +1 -0
- package/compiled/commander/license +22 -0
- package/compiled/commander/package.json +1 -0
- package/compiled/commander/typings/index.d.ts +774 -0
- package/compiled/debug/index.d.ts +54 -0
- package/compiled/debug/index.js +1 -0
- package/compiled/debug/license +20 -0
- package/compiled/debug/ms/index.d.ts +25 -0
- package/compiled/debug/package.json +1 -0
- package/compiled/execa/index.d.ts +564 -0
- package/compiled/execa/index.js +1 -0
- package/compiled/execa/license +9 -0
- package/compiled/execa/package.json +1 -0
- package/compiled/filesize/filesize.d.ts +131 -0
- package/compiled/filesize/index.js +9 -0
- package/compiled/filesize/license +28 -0
- package/compiled/filesize/package.json +1 -0
- package/compiled/fs-extra/index.d.ts +563 -0
- package/compiled/fs-extra/index.js +1 -0
- package/compiled/fs-extra/license +15 -0
- package/compiled/fs-extra/package.json +1 -0
- package/compiled/glob/index.d.ts +91 -0
- package/compiled/glob/index.js +1 -0
- package/compiled/glob/license +21 -0
- package/compiled/glob/minimatch/index.d.ts +204 -0
- package/compiled/glob/package.json +1 -0
- package/compiled/gzip-size/index.d.ts +96 -0
- package/compiled/gzip-size/index.js +1 -0
- package/compiled/gzip-size/license +9 -0
- package/compiled/gzip-size/package.json +1 -0
- package/compiled/import-lazy/index.d.ts +26 -0
- package/compiled/import-lazy/index.js +1 -0
- package/compiled/import-lazy/license +9 -0
- package/compiled/import-lazy/package.json +1 -0
- package/compiled/js-yaml/index.d.ts +154 -0
- package/compiled/js-yaml/index.js +1 -0
- package/compiled/js-yaml/license +21 -0
- package/compiled/js-yaml/package.json +1 -0
- package/compiled/lodash/common/array.d.ts +2126 -0
- package/compiled/lodash/common/collection.d.ts +1930 -0
- package/compiled/lodash/common/common.d.ts +280 -0
- package/compiled/lodash/common/date.d.ts +23 -0
- package/compiled/lodash/common/function.d.ts +1446 -0
- package/compiled/lodash/common/lang.d.ts +1693 -0
- package/compiled/lodash/common/math.d.ts +405 -0
- package/compiled/lodash/common/number.d.ts +131 -0
- package/compiled/lodash/common/object.d.ts +2519 -0
- package/compiled/lodash/common/seq.d.ts +210 -0
- package/compiled/lodash/common/string.d.ts +788 -0
- package/compiled/lodash/common/util.d.ts +1220 -0
- package/compiled/lodash/index.d.ts +46 -0
- package/compiled/lodash/index.js +9 -0
- package/compiled/lodash/license +47 -0
- package/compiled/lodash/package.json +1 -0
- package/compiled/pkg-up/index.d.ts +48 -0
- package/compiled/pkg-up/index.js +1 -0
- package/compiled/pkg-up/license +9 -0
- package/compiled/pkg-up/package.json +1 -0
- package/compiled/recursive-readdir/index.d.ts +21 -0
- package/compiled/recursive-readdir/index.js +1 -0
- package/compiled/recursive-readdir/license +21 -0
- package/compiled/recursive-readdir/package.json +1 -0
- package/compiled/signale/index.d.ts +162 -0
- package/compiled/signale/index.js +1 -0
- package/compiled/signale/package.json +1 -0
- package/compiled/strip-ansi/index.d.ts +17 -0
- package/compiled/strip-ansi/index.js +1 -0
- package/compiled/strip-ansi/license +9 -0
- package/compiled/strip-ansi/package.json +1 -0
- package/compiled/upath/index.js +1 -0
- package/compiled/upath/license +22 -0
- package/compiled/upath/package.json +1 -0
- package/compiled/upath/upath.d.ts +241 -0
- package/dist/{types/FileSizeReporter.d.ts → FileSizeReporter.d.ts} +5 -5
- package/dist/FileSizeReporter.js +151 -0
- package/dist/{types/alias.d.ts → alias.d.ts} +12 -14
- package/dist/alias.js +62 -0
- package/dist/analyzeProject.d.ts +1 -0
- package/dist/analyzeProject.js +44 -0
- package/dist/applyOptionsChain.d.ts +6 -0
- package/dist/applyOptionsChain.js +30 -0
- package/dist/clearConsole.d.ts +1 -0
- package/dist/clearConsole.js +9 -0
- package/dist/{types/compatRequire.d.ts → compatRequire.d.ts} +1 -1
- package/dist/compatRequire.js +28 -0
- package/dist/compiled.d.ts +21 -0
- package/dist/compiled.js +33 -0
- package/dist/constants.d.ts +222 -0
- package/dist/constants.js +277 -0
- package/dist/{js/modern/debug.js → debug.d.ts} +1 -3
- package/dist/debug.js +11 -0
- package/dist/emptyDir.d.ts +1 -0
- package/dist/emptyDir.js +19 -0
- package/dist/{types/ensureAbsolutePath.d.ts → ensureAbsolutePath.d.ts} +1 -1
- package/dist/ensureAbsolutePath.js +15 -0
- package/dist/{types/findExists.d.ts → findExists.d.ts} +1 -1
- package/dist/findExists.js +21 -0
- package/dist/{types/format.d.ts → format.d.ts} +3 -3
- package/dist/format.js +113 -0
- package/dist/{types/generateMetaTags.d.ts → generateMetaTags.d.ts} +3 -3
- package/dist/generateMetaTags.js +48 -0
- package/dist/{types/getBrowserslist.d.ts → getBrowserslist.d.ts} +1 -1
- package/dist/getBrowserslist.js +7 -0
- package/dist/{types/getCacheIdentifier.d.ts → getCacheIdentifier.d.ts} +3 -3
- package/dist/getCacheIdentifier.js +24 -0
- package/dist/{types/getEntryOptions.d.ts → getEntryOptions.d.ts} +1 -1
- package/dist/getEntryOptions.js +26 -0
- package/dist/{types/getPackageManager.d.ts → getPackageManager.d.ts} +1 -1
- package/dist/getPackageManager.js +47 -0
- package/dist/{types/getPort.d.ts → getPort.d.ts} +1 -1
- package/dist/getPort.js +62 -0
- package/dist/getServerConfig.d.ts +1 -0
- package/dist/getServerConfig.js +39 -0
- package/dist/{types/import.d.ts → import.d.ts} +2 -2
- package/dist/import.js +10 -0
- package/dist/{types/index.d.ts → index.d.ts} +5 -4
- package/dist/index.js +46 -0
- package/dist/{types/is → is}/index.d.ts +1 -4
- package/dist/is/index.js +82 -0
- package/dist/{types/is → is}/node-env.d.ts +1 -1
- package/dist/is/node-env.js +12 -0
- package/dist/is/platform.d.ts +2 -0
- package/dist/is/platform.js +10 -0
- package/dist/{types/is → is}/type.d.ts +1 -1
- package/dist/is/type.js +38 -0
- package/dist/logger.d.ts +63 -0
- package/dist/logger.js +128 -0
- package/dist/{types/monorepo.d.ts → monorepo.d.ts} +3 -3
- package/dist/monorepo.js +80 -0
- package/dist/{types/nodeEnv.d.ts → nodeEnv.d.ts} +1 -1
- package/dist/nodeEnv.js +49 -0
- package/dist/{types/path.d.ts → path.d.ts} +1 -1
- package/dist/path.js +14 -0
- package/dist/{types/prettyInstructions.d.ts → prettyInstructions.d.ts} +2 -2
- package/dist/prettyInstructions.js +64 -0
- package/dist/{types/printBuildError.d.ts → printBuildError.d.ts} +1 -1
- package/dist/printBuildError.js +43 -0
- package/dist/{types/readTsConfig.d.ts → readTsConfig.d.ts} +1 -1
- package/dist/readTsConfig.js +19 -0
- package/dist/{types/removeSlash.d.ts → removeSlash.d.ts} +1 -1
- package/dist/removeSlash.js +9 -0
- package/dist/{types/runtimeExports.d.ts → runtimeExports.d.ts} +3 -3
- package/dist/runtimeExports.js +53 -0
- package/dist/ssrHelpers.d.ts +4 -0
- package/dist/ssrHelpers.js +7 -0
- package/dist/storage.d.ts +5 -0
- package/dist/storage.js +61 -0
- package/dist/{types/wait.d.ts → wait.d.ts} +1 -1
- package/dist/wait.js +7 -0
- package/dist/{types/watch.d.ts → watch.d.ts} +4 -4
- package/dist/watch.js +64 -0
- package/package.json +55 -37
- package/tsconfig.json +3 -5
- package/dist/js/modern/FileSizeReporter.js +0 -156
- package/dist/js/modern/alias.js +0 -74
- package/dist/js/modern/applyOptionsChain.js +0 -27
- package/dist/js/modern/chalk.js +0 -2
- package/dist/js/modern/clearConsole.js +0 -5
- package/dist/js/modern/compatRequire.js +0 -26
- package/dist/js/modern/constants.js +0 -333
- package/dist/js/modern/emptyDir.js +0 -6
- package/dist/js/modern/ensureAbsolutePath.js +0 -9
- package/dist/js/modern/findExists.js +0 -16
- package/dist/js/modern/format.js +0 -137
- package/dist/js/modern/generateMetaTags.js +0 -49
- package/dist/js/modern/getBrowserslist.js +0 -5
- package/dist/js/modern/getCacheIdentifier.js +0 -20
- package/dist/js/modern/getEntryOptions.js +0 -24
- package/dist/js/modern/getPackageManager.js +0 -37
- package/dist/js/modern/getPort.js +0 -52
- package/dist/js/modern/import.js +0 -11
- package/dist/js/modern/index.js +0 -34
- package/dist/js/modern/is/index.js +0 -77
- package/dist/js/modern/is/node-env.js +0 -5
- package/dist/js/modern/is/platform.js +0 -2
- package/dist/js/modern/is/type.js +0 -25
- package/dist/js/modern/logger.js +0 -152
- package/dist/js/modern/monorepo.js +0 -84
- package/dist/js/modern/nodeEnv.js +0 -31
- package/dist/js/modern/path.js +0 -5
- package/dist/js/modern/pkgUp.js +0 -2
- package/dist/js/modern/prettyInstructions.js +0 -79
- package/dist/js/modern/printBuildError.js +0 -40
- package/dist/js/modern/readTsConfig.js +0 -13
- package/dist/js/modern/removeSlash.js +0 -3
- package/dist/js/modern/runtimeExports.js +0 -52
- package/dist/js/modern/wait.js +0 -5
- package/dist/js/modern/watch.js +0 -43
- package/dist/js/node/FileSizeReporter.js +0 -175
- package/dist/js/node/alias.js +0 -97
- package/dist/js/node/applyOptionsChain.js +0 -37
- package/dist/js/node/chalk.js +0 -15
- package/dist/js/node/clearConsole.js +0 -14
- package/dist/js/node/compatRequire.js +0 -41
- package/dist/js/node/constants.js +0 -353
- package/dist/js/node/debug.js +0 -19
- package/dist/js/node/emptyDir.js +0 -18
- package/dist/js/node/ensureAbsolutePath.js +0 -20
- package/dist/js/node/findExists.js +0 -27
- package/dist/js/node/format.js +0 -141
- package/dist/js/node/generateMetaTags.js +0 -58
- package/dist/js/node/getBrowserslist.js +0 -17
- package/dist/js/node/getCacheIdentifier.js +0 -27
- package/dist/js/node/getEntryOptions.js +0 -35
- package/dist/js/node/getPackageManager.js +0 -51
- package/dist/js/node/getPort.js +0 -67
- package/dist/js/node/import.js +0 -19
- package/dist/js/node/index.js +0 -465
- package/dist/js/node/is/index.js +0 -150
- package/dist/js/node/is/node-env.js +0 -23
- package/dist/js/node/is/platform.js +0 -14
- package/dist/js/node/is/type.js +0 -46
- package/dist/js/node/logger.js +0 -162
- package/dist/js/node/monorepo.js +0 -118
- package/dist/js/node/nodeEnv.js +0 -45
- package/dist/js/node/path.js +0 -24
- package/dist/js/node/pkgUp.js +0 -15
- package/dist/js/node/prettyInstructions.js +0 -95
- package/dist/js/node/printBuildError.js +0 -52
- package/dist/js/node/readTsConfig.js +0 -28
- package/dist/js/node/removeSlash.js +0 -18
- package/dist/js/node/runtimeExports.js +0 -68
- package/dist/js/node/wait.js +0 -12
- package/dist/js/node/watch.js +0 -61
- package/dist/js/treeshaking/FileSizeReporter.js +0 -185
- package/dist/js/treeshaking/alias.js +0 -72
- package/dist/js/treeshaking/applyOptionsChain.js +0 -31
- package/dist/js/treeshaking/chalk.js +0 -2
- package/dist/js/treeshaking/clearConsole.js +0 -5
- package/dist/js/treeshaking/compatRequire.js +0 -29
- package/dist/js/treeshaking/constants.js +0 -333
- package/dist/js/treeshaking/debug.js +0 -10
- package/dist/js/treeshaking/emptyDir.js +0 -37
- package/dist/js/treeshaking/ensureAbsolutePath.js +0 -11
- package/dist/js/treeshaking/findExists.js +0 -33
- package/dist/js/treeshaking/format.js +0 -167
- package/dist/js/treeshaking/generateMetaTags.js +0 -55
- package/dist/js/treeshaking/getBrowserslist.js +0 -7
- package/dist/js/treeshaking/getCacheIdentifier.js +0 -35
- package/dist/js/treeshaking/getEntryOptions.js +0 -26
- package/dist/js/treeshaking/getPackageManager.js +0 -101
- package/dist/js/treeshaking/getPort.js +0 -103
- package/dist/js/treeshaking/import.js +0 -11
- package/dist/js/treeshaking/index.js +0 -34
- package/dist/js/treeshaking/is/index.js +0 -81
- package/dist/js/treeshaking/is/node-env.js +0 -13
- package/dist/js/treeshaking/is/platform.js +0 -6
- package/dist/js/treeshaking/is/type.js +0 -27
- package/dist/js/treeshaking/logger.js +0 -188
- package/dist/js/treeshaking/monorepo.js +0 -95
- package/dist/js/treeshaking/nodeEnv.js +0 -108
- package/dist/js/treeshaking/path.js +0 -11
- package/dist/js/treeshaking/pkgUp.js +0 -2
- package/dist/js/treeshaking/prettyInstructions.js +0 -100
- package/dist/js/treeshaking/printBuildError.js +0 -40
- package/dist/js/treeshaking/readTsConfig.js +0 -13
- package/dist/js/treeshaking/removeSlash.js +0 -9
- package/dist/js/treeshaking/runtimeExports.js +0 -61
- package/dist/js/treeshaking/wait.js +0 -8
- package/dist/js/treeshaking/watch.js +0 -112
- package/dist/types/applyOptionsChain.d.ts +0 -6
- package/dist/types/chalk.d.ts +0 -2
- package/dist/types/clearConsole.d.ts +0 -1
- package/dist/types/constants.d.ts +0 -219
- package/dist/types/debug.d.ts +0 -8
- package/dist/types/emptyDir.d.ts +0 -1
- package/dist/types/is/platform.d.ts +0 -2
- package/dist/types/logger.d.ts +0 -63
- package/dist/types/pkgUp.d.ts +0 -2
- package/tests/.eslintrc.js +0 -6
- package/tests/__snapshots__/prettyInstructions.test.ts.snap +0 -19
- package/tests/applyOptionsChain.test.ts +0 -100
- package/tests/compatRequire.test.ts +0 -32
- package/tests/debug.test.ts +0 -25
- package/tests/ensureAbsolutePath.test.ts +0 -16
- package/tests/findExists.test.ts +0 -22
- package/tests/fixtures/browserlist/develop/package.json +0 -11
- package/tests/fixtures/browserlist/dotfile/.browserslistrc +0 -3
- package/tests/fixtures/browserlist/pkg/package.json +0 -7
- package/tests/fixtures/compat-require/cjs.js +0 -1
- package/tests/fixtures/compat-require/empty.js +0 -1
- package/tests/fixtures/compat-require/esm.js +0 -5
- package/tests/fixtures/compat-require/foo.js +0 -3
- package/tests/fixtures/file-exists/a.ejs +0 -0
- package/tests/fixtures/file-exists/a.js/.gitkeep +0 -0
- package/tests/fixtures/file-exists/a.mjs +0 -0
- package/tests/fixtures/file-exists/a.ts +0 -0
- package/tests/format.test.ts +0 -60
- package/tests/generateMetaTags.test.ts +0 -19
- package/tests/getBrowserslist.test.ts +0 -32
- package/tests/getCacheIdentifier.test.ts +0 -37
- package/tests/getEntryOptions.test.ts +0 -53
- package/tests/index.test.ts +0 -18
- package/tests/is.test.ts +0 -27
- package/tests/isPlatform.test.ts +0 -19
- package/tests/isType.test.ts +0 -85
- package/tests/logger.test.ts +0 -53
- package/tests/prettyInstructions.test.ts +0 -139
- package/tests/removeSlash.test.ts +0 -19
- package/tests/tsconfig.json +0 -11
- package/tests/wait.ts +0 -38
@@ -1,32 +0,0 @@
|
|
1
|
-
import path from 'path';
|
2
|
-
import { getBrowserslist, defaults } from '../src/getBrowserslist';
|
3
|
-
|
4
|
-
describe('get browserslist', () => {
|
5
|
-
const fixture = path.resolve(__dirname, './fixtures/browserlist');
|
6
|
-
|
7
|
-
test(`should load browserslist from package.json`, () => {
|
8
|
-
expect(getBrowserslist(path.join(fixture, 'pkg'))).toEqual([
|
9
|
-
'not IE 11',
|
10
|
-
'maintained node versions',
|
11
|
-
]);
|
12
|
-
});
|
13
|
-
|
14
|
-
test(`should load browerslist from .browserslistrc`, () => {
|
15
|
-
expect(getBrowserslist(path.join(fixture, 'dotfile'))).toEqual([
|
16
|
-
'defaults',
|
17
|
-
'not IE 11',
|
18
|
-
'maintained node versions',
|
19
|
-
]);
|
20
|
-
});
|
21
|
-
|
22
|
-
test(`should load browserslist base on environment`, () => {
|
23
|
-
process.env.NODE_ENV = 'development';
|
24
|
-
expect(getBrowserslist(path.join(fixture, 'develop'))).toEqual([
|
25
|
-
'last 1 chrome version',
|
26
|
-
]);
|
27
|
-
});
|
28
|
-
|
29
|
-
test(`should return default browserslist config`, () => {
|
30
|
-
expect(getBrowserslist(path.join(fixture))).toEqual(defaults);
|
31
|
-
});
|
32
|
-
});
|
@@ -1,37 +0,0 @@
|
|
1
|
-
import { getCacheIdentifier } from '../src/getCacheIdentifier';
|
2
|
-
|
3
|
-
describe('get cache identifier', () => {
|
4
|
-
test('should use package name and version', () => {
|
5
|
-
expect(
|
6
|
-
getCacheIdentifier([
|
7
|
-
{
|
8
|
-
name: 'package-a',
|
9
|
-
version: '0.1.0',
|
10
|
-
},
|
11
|
-
{
|
12
|
-
name: 'package-b',
|
13
|
-
version: '1.0.1',
|
14
|
-
},
|
15
|
-
]),
|
16
|
-
).toEqual(`test:package-a@0.1.0:package-b@1.0.1`);
|
17
|
-
});
|
18
|
-
|
19
|
-
test(`should return identifier with node environment`, () => {
|
20
|
-
const packages = [
|
21
|
-
{
|
22
|
-
name: 'a',
|
23
|
-
version: '0.1.0',
|
24
|
-
},
|
25
|
-
];
|
26
|
-
|
27
|
-
process.env.NODE_ENV = 'development';
|
28
|
-
expect(getCacheIdentifier(packages)).toEqual('development:a@0.1.0');
|
29
|
-
|
30
|
-
process.env.NODE_ENV = 'production';
|
31
|
-
expect(getCacheIdentifier(packages)).toEqual('production:a@0.1.0');
|
32
|
-
|
33
|
-
process.env.NODE_ENV = '';
|
34
|
-
|
35
|
-
expect(getCacheIdentifier(packages)).toEqual(`:a@0.1.0`);
|
36
|
-
});
|
37
|
-
});
|
@@ -1,53 +0,0 @@
|
|
1
|
-
import { getEntryOptions } from '../src/getEntryOptions';
|
2
|
-
|
3
|
-
describe('get entry options', () => {
|
4
|
-
test('should return default options', () => {
|
5
|
-
expect(getEntryOptions('page-a', 'default value')).toEqual('default value');
|
6
|
-
|
7
|
-
expect(
|
8
|
-
getEntryOptions('page-a', 'default value', { 'page-b': 'a' }),
|
9
|
-
).toEqual('default value');
|
10
|
-
});
|
11
|
-
|
12
|
-
test(`should return options from optionsByEntries`, () => {
|
13
|
-
expect(
|
14
|
-
getEntryOptions('page-a', 'default value', { 'page-a': 'a' }),
|
15
|
-
).toEqual('a');
|
16
|
-
});
|
17
|
-
|
18
|
-
test(`should compatible with main entry using packageName as key`, () => {
|
19
|
-
expect(
|
20
|
-
getEntryOptions(
|
21
|
-
'main',
|
22
|
-
'default value',
|
23
|
-
{ 'package-name': 'a' },
|
24
|
-
'package-name',
|
25
|
-
),
|
26
|
-
).toEqual('a');
|
27
|
-
});
|
28
|
-
|
29
|
-
expect(
|
30
|
-
getEntryOptions(
|
31
|
-
'page-a',
|
32
|
-
{ name: 'a' },
|
33
|
-
{
|
34
|
-
'page-a': {
|
35
|
-
name: 'page-a',
|
36
|
-
about: 'b',
|
37
|
-
},
|
38
|
-
},
|
39
|
-
),
|
40
|
-
).toEqual({
|
41
|
-
name: 'page-a',
|
42
|
-
about: 'b',
|
43
|
-
});
|
44
|
-
|
45
|
-
expect(
|
46
|
-
getEntryOptions<
|
47
|
-
| {
|
48
|
-
[name: string]: string;
|
49
|
-
}
|
50
|
-
| boolean
|
51
|
-
>('page-a', { name: 'a' }, { 'page-a': false }),
|
52
|
-
).toEqual(false);
|
53
|
-
});
|
package/tests/index.test.ts
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
import { canUseNpm, canUsePnpm, canUseYarn } from '../src';
|
2
|
-
|
3
|
-
jest.setTimeout(40000);
|
4
|
-
|
5
|
-
describe('test generator utils', () => {
|
6
|
-
test('test canUseNpm', async () => {
|
7
|
-
const npmAbility = await canUseNpm();
|
8
|
-
expect(typeof npmAbility === 'boolean').toBe(true);
|
9
|
-
});
|
10
|
-
test('test canUsePnpm', async () => {
|
11
|
-
const pnpmAbility = await canUsePnpm();
|
12
|
-
expect(typeof pnpmAbility === 'boolean').toBe(true);
|
13
|
-
});
|
14
|
-
test('test canUseYarn', async () => {
|
15
|
-
const yarnAbility = await canUseYarn();
|
16
|
-
expect(typeof yarnAbility === 'boolean').toBe(true);
|
17
|
-
});
|
18
|
-
});
|
package/tests/is.test.ts
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
import { isEmpty, isFastRefresh } from '../src/is';
|
2
|
-
|
3
|
-
describe('validate', () => {
|
4
|
-
it('should validate empty object correctly', () => {
|
5
|
-
expect(isEmpty({})).toBeTruthy();
|
6
|
-
expect(isEmpty({ foo: 'bar' })).toBeFalsy();
|
7
|
-
});
|
8
|
-
|
9
|
-
it('should validate fast refresh correctly', () => {
|
10
|
-
const { NODE_ENV, FAST_REFRESH } = process.env;
|
11
|
-
|
12
|
-
process.env.NODE_ENV = 'development';
|
13
|
-
process.env.FAST_REFRESH = 'true';
|
14
|
-
expect(isFastRefresh()).toBeTruthy();
|
15
|
-
|
16
|
-
process.env.NODE_ENV = 'production';
|
17
|
-
process.env.FAST_REFRESH = 'true';
|
18
|
-
expect(isFastRefresh()).toBeFalsy();
|
19
|
-
|
20
|
-
process.env.NODE_ENV = 'development';
|
21
|
-
process.env.FAST_REFRESH = 'false';
|
22
|
-
expect(isFastRefresh()).toBeFalsy();
|
23
|
-
|
24
|
-
process.env.NODE_ENV = NODE_ENV;
|
25
|
-
process.env.FAST_REFRESH = FAST_REFRESH;
|
26
|
-
});
|
27
|
-
});
|
package/tests/isPlatform.test.ts
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
import { isNodeJS, isBrowser } from '../src/is/platform';
|
2
|
-
|
3
|
-
describe('validate platform', () => {
|
4
|
-
it('should validate Node.js correctly', () => {
|
5
|
-
expect(isNodeJS()).toBeTruthy();
|
6
|
-
});
|
7
|
-
|
8
|
-
it('should validate browser correctly', () => {
|
9
|
-
const windowSpy = jest.spyOn(window, 'window', 'get');
|
10
|
-
|
11
|
-
windowSpy.mockImplementation((): any => undefined);
|
12
|
-
expect(isBrowser()).toBeFalsy();
|
13
|
-
|
14
|
-
windowSpy.mockImplementation((): any => global);
|
15
|
-
expect(isBrowser()).toBeTruthy();
|
16
|
-
|
17
|
-
windowSpy.mockRestore();
|
18
|
-
});
|
19
|
-
});
|
package/tests/isType.test.ts
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
isArray,
|
3
|
-
isObject,
|
4
|
-
isString,
|
5
|
-
isRegExp,
|
6
|
-
isPromise,
|
7
|
-
isUndefined,
|
8
|
-
isPlainObject,
|
9
|
-
} from '../src/is/type';
|
10
|
-
|
11
|
-
describe('validate type', () => {
|
12
|
-
it('should validate string correctly', () => {
|
13
|
-
expect(isString('')).toBeTruthy();
|
14
|
-
expect(isString('foo')).toBeTruthy();
|
15
|
-
expect(isString(null)).toBeFalsy();
|
16
|
-
expect(isString(123)).toBeFalsy();
|
17
|
-
});
|
18
|
-
|
19
|
-
it('should validate undefined correctly', () => {
|
20
|
-
expect(isUndefined(undefined)).toBeTruthy();
|
21
|
-
expect(isUndefined(null)).toBeFalsy();
|
22
|
-
expect(isUndefined('')).toBeFalsy();
|
23
|
-
expect(isUndefined(123)).toBeFalsy();
|
24
|
-
});
|
25
|
-
|
26
|
-
it('should validate array correctly', () => {
|
27
|
-
expect(isArray(undefined)).toBeFalsy();
|
28
|
-
expect(isArray(null)).toBeFalsy();
|
29
|
-
expect(isArray('')).toBeFalsy();
|
30
|
-
expect(isArray(123)).toBeFalsy();
|
31
|
-
expect(isArray({})).toBeFalsy();
|
32
|
-
expect(isArray([])).toBeTruthy();
|
33
|
-
});
|
34
|
-
|
35
|
-
it('should validate object correctly', () => {
|
36
|
-
expect(isObject(1)).toBeFalsy();
|
37
|
-
expect(isObject('1')).toBeFalsy();
|
38
|
-
expect(isObject(undefined)).toBeFalsy();
|
39
|
-
expect(isObject(null)).toBeFalsy();
|
40
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
41
|
-
expect(isObject(() => {})).toBeFalsy();
|
42
|
-
expect(isObject({})).toBeTruthy();
|
43
|
-
expect(isObject([])).toBeTruthy();
|
44
|
-
expect(isObject(/foo/)).toBeTruthy();
|
45
|
-
});
|
46
|
-
|
47
|
-
it('should validate plain object correctly', () => {
|
48
|
-
expect(isPlainObject(1)).toBeFalsy();
|
49
|
-
expect(isPlainObject('1')).toBeFalsy();
|
50
|
-
expect(isPlainObject(undefined)).toBeFalsy();
|
51
|
-
expect(isPlainObject(null)).toBeFalsy();
|
52
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
53
|
-
expect(isPlainObject(() => {})).toBeFalsy();
|
54
|
-
expect(isPlainObject({})).toBeTruthy();
|
55
|
-
expect(isPlainObject([])).toBeFalsy();
|
56
|
-
expect(isPlainObject(/foo/)).toBeFalsy();
|
57
|
-
});
|
58
|
-
|
59
|
-
it('should validate RegExp correctly', () => {
|
60
|
-
expect(isRegExp(1)).toBeFalsy();
|
61
|
-
expect(isRegExp('1')).toBeFalsy();
|
62
|
-
expect(isRegExp(undefined)).toBeFalsy();
|
63
|
-
expect(isRegExp(null)).toBeFalsy();
|
64
|
-
expect(isRegExp({})).toBeFalsy();
|
65
|
-
expect(isRegExp([])).toBeFalsy();
|
66
|
-
expect(isRegExp(/foo/)).toBeTruthy();
|
67
|
-
});
|
68
|
-
|
69
|
-
it('should validate Promise correctly', () => {
|
70
|
-
expect(isPromise(1)).toBeFalsy();
|
71
|
-
expect(isPromise('1')).toBeFalsy();
|
72
|
-
expect(isPromise(undefined)).toBeFalsy();
|
73
|
-
expect(isPromise(null)).toBeFalsy();
|
74
|
-
expect(isPromise({})).toBeFalsy();
|
75
|
-
expect(isPromise([])).toBeFalsy();
|
76
|
-
expect(isPromise(/foo/)).toBeFalsy();
|
77
|
-
expect(
|
78
|
-
isPromise(
|
79
|
-
new Promise<void>(resolve => {
|
80
|
-
resolve();
|
81
|
-
}),
|
82
|
-
),
|
83
|
-
).toBeTruthy();
|
84
|
-
});
|
85
|
-
});
|
package/tests/logger.test.ts
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
import { logger } from '../src/logger';
|
2
|
-
|
3
|
-
describe('logger', () => {
|
4
|
-
test('should log', () => {
|
5
|
-
// eslint-disable-next-line no-console
|
6
|
-
console.log = jest.fn();
|
7
|
-
|
8
|
-
logger.log('this is a log message');
|
9
|
-
|
10
|
-
// eslint-disable-next-line no-console
|
11
|
-
expect((console.log as jest.Mock).mock.calls[0][0]).toBe(
|
12
|
-
'this is a log message',
|
13
|
-
);
|
14
|
-
|
15
|
-
logger.info('this is an info message');
|
16
|
-
|
17
|
-
logger.warn('this is a warn message');
|
18
|
-
|
19
|
-
logger.error(new Error('this is an error message'));
|
20
|
-
|
21
|
-
// eslint-disable-next-line no-console
|
22
|
-
expect(console.log as jest.Mock).toHaveBeenCalledTimes(4);
|
23
|
-
});
|
24
|
-
|
25
|
-
test('should create new logger', () => {
|
26
|
-
// eslint-disable-next-line no-console
|
27
|
-
console.log = jest.fn();
|
28
|
-
|
29
|
-
const customLogger = new logger.Logger({
|
30
|
-
config: {
|
31
|
-
displayLabel: true,
|
32
|
-
underlineLabel: false,
|
33
|
-
uppercaseLabel: false,
|
34
|
-
},
|
35
|
-
types: {
|
36
|
-
custom: {
|
37
|
-
color: 'blue',
|
38
|
-
label: 'custom',
|
39
|
-
level: 'info',
|
40
|
-
},
|
41
|
-
},
|
42
|
-
});
|
43
|
-
|
44
|
-
customLogger.custom('custom log');
|
45
|
-
|
46
|
-
const reg = new RegExp(`custom.*custom log$`);
|
47
|
-
// eslint-disable-next-line no-console
|
48
|
-
expect((console.log as jest.Mock).mock.calls[0][0]).toMatch(reg);
|
49
|
-
|
50
|
-
// eslint-disable-next-line no-console
|
51
|
-
expect(console.log as jest.Mock).toHaveBeenCalledTimes(1);
|
52
|
-
});
|
53
|
-
});
|
@@ -1,139 +0,0 @@
|
|
1
|
-
import { prettyInstructions } from '../src/prettyInstructions';
|
2
|
-
|
3
|
-
const mockNetworkInterfaces = {
|
4
|
-
lo0: [
|
5
|
-
{
|
6
|
-
address: '127.0.0.1',
|
7
|
-
netmask: '255.0.0.0',
|
8
|
-
family: 'IPv4',
|
9
|
-
mac: '00:00:00:00:00:00',
|
10
|
-
internal: true,
|
11
|
-
cidr: '127.0.0.1/8',
|
12
|
-
},
|
13
|
-
],
|
14
|
-
en5: [
|
15
|
-
{
|
16
|
-
address: 'fe80::aede:48ff:fe00:1122',
|
17
|
-
netmask: 'ffff:ffff:ffff:ffff::',
|
18
|
-
family: 'IPv6',
|
19
|
-
mac: 'ac:de:48:00:11:22',
|
20
|
-
internal: false,
|
21
|
-
cidr: 'fe80::aede:48ff:fe00:1122/64',
|
22
|
-
scopeid: 4,
|
23
|
-
},
|
24
|
-
],
|
25
|
-
en0: [
|
26
|
-
{
|
27
|
-
address: '11.11.111.11',
|
28
|
-
netmask: '255.255.252.0',
|
29
|
-
family: 'IPv4',
|
30
|
-
mac: '90:9c:4a:cf:11:d2',
|
31
|
-
internal: false,
|
32
|
-
cidr: '10.85.117.60/22',
|
33
|
-
},
|
34
|
-
],
|
35
|
-
utun2: [
|
36
|
-
{
|
37
|
-
address: '10.100.100.100',
|
38
|
-
netmask: '255.255.224.0',
|
39
|
-
family: 'IPv4',
|
40
|
-
mac: '00:00:00:00:00:00',
|
41
|
-
internal: false,
|
42
|
-
cidr: '10.255.182.172/19',
|
43
|
-
},
|
44
|
-
],
|
45
|
-
};
|
46
|
-
|
47
|
-
jest.mock('os', () => {
|
48
|
-
const originalModule = jest.requireActual('os');
|
49
|
-
return {
|
50
|
-
__esModule: true,
|
51
|
-
...originalModule,
|
52
|
-
default: {
|
53
|
-
networkInterfaces() {
|
54
|
-
return mockNetworkInterfaces;
|
55
|
-
},
|
56
|
-
},
|
57
|
-
};
|
58
|
-
});
|
59
|
-
|
60
|
-
jest.mock('chalk', () => ({
|
61
|
-
__esModule: true,
|
62
|
-
default: {
|
63
|
-
bold: jest.fn(str => str),
|
64
|
-
green: jest.fn(str => str),
|
65
|
-
red: jest.fn(str => str),
|
66
|
-
yellow: jest.fn(str => str),
|
67
|
-
cyanBright: jest.fn(str => str),
|
68
|
-
},
|
69
|
-
}));
|
70
|
-
|
71
|
-
describe('prettyInstructions', () => {
|
72
|
-
test('basic usage', () => {
|
73
|
-
const mockAppContext = {
|
74
|
-
entrypoints: [
|
75
|
-
{
|
76
|
-
entryName: 'main',
|
77
|
-
entry: '/example/node_modules/.modern-js/main/index.js',
|
78
|
-
isAutoMount: true,
|
79
|
-
customBootstrap: false,
|
80
|
-
},
|
81
|
-
],
|
82
|
-
serverRoutes: [
|
83
|
-
{
|
84
|
-
urlPath: '/',
|
85
|
-
entryName: 'main',
|
86
|
-
entryPath: 'html/main/index.html',
|
87
|
-
isSPA: true,
|
88
|
-
isSSR: false,
|
89
|
-
enableModernMode: false,
|
90
|
-
},
|
91
|
-
{
|
92
|
-
urlPath: '/api',
|
93
|
-
isApi: true,
|
94
|
-
entryPath: '',
|
95
|
-
isSPA: false,
|
96
|
-
isSSR: false,
|
97
|
-
},
|
98
|
-
],
|
99
|
-
port: 8080,
|
100
|
-
existSrc: true,
|
101
|
-
};
|
102
|
-
const mockConfig = {
|
103
|
-
dev: {
|
104
|
-
https: true,
|
105
|
-
},
|
106
|
-
};
|
107
|
-
|
108
|
-
const message = prettyInstructions(mockAppContext, mockConfig);
|
109
|
-
|
110
|
-
expect(message).toMatchSnapshot();
|
111
|
-
});
|
112
|
-
|
113
|
-
test('The src directory does not exist', () => {
|
114
|
-
const mockAppContext = {
|
115
|
-
entrypoints: [],
|
116
|
-
serverRoutes: [
|
117
|
-
{
|
118
|
-
urlPath: '/api',
|
119
|
-
isApi: true,
|
120
|
-
entryPath: '',
|
121
|
-
isSPA: false,
|
122
|
-
isSSR: false,
|
123
|
-
},
|
124
|
-
],
|
125
|
-
port: 8080,
|
126
|
-
existSrc: false,
|
127
|
-
};
|
128
|
-
|
129
|
-
const mockConfig = {
|
130
|
-
dev: {
|
131
|
-
https: true,
|
132
|
-
},
|
133
|
-
};
|
134
|
-
|
135
|
-
const message = prettyInstructions(mockAppContext, mockConfig);
|
136
|
-
|
137
|
-
expect(message).toMatchSnapshot();
|
138
|
-
});
|
139
|
-
});
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
removeLeadingSlash,
|
3
|
-
removeSlash,
|
4
|
-
removeTailSlash,
|
5
|
-
} from '../src/removeSlash';
|
6
|
-
|
7
|
-
describe('remove slash', () => {
|
8
|
-
test(`should remove leading slash`, () => {
|
9
|
-
expect(removeLeadingSlash('///yuck/example//')).toEqual('yuck/example//');
|
10
|
-
});
|
11
|
-
|
12
|
-
test(`should remove tail slash`, () => {
|
13
|
-
expect(removeTailSlash('///yuck/example//')).toEqual('///yuck/example');
|
14
|
-
});
|
15
|
-
|
16
|
-
test(`should remove slash`, () => {
|
17
|
-
expect(removeSlash('///yuck/example//')).toEqual('yuck/example');
|
18
|
-
});
|
19
|
-
});
|
package/tests/tsconfig.json
DELETED
package/tests/wait.ts
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
import { wait } from '../src/wait';
|
2
|
-
|
3
|
-
jest.useRealTimers();
|
4
|
-
|
5
|
-
describe('wait', () => {
|
6
|
-
test('basic usage', async () => {
|
7
|
-
const fn1 = jest.fn();
|
8
|
-
const fn2 = jest.fn();
|
9
|
-
const fn3 = async () => {
|
10
|
-
fn1();
|
11
|
-
await wait();
|
12
|
-
fn2();
|
13
|
-
};
|
14
|
-
|
15
|
-
fn3();
|
16
|
-
expect(fn1).toBeCalled();
|
17
|
-
expect(fn2).not.toBeCalled();
|
18
|
-
await wait();
|
19
|
-
expect(fn2).toBeCalled();
|
20
|
-
});
|
21
|
-
|
22
|
-
test('delay', async () => {
|
23
|
-
const fn1 = jest.fn();
|
24
|
-
const fn2 = jest.fn();
|
25
|
-
const time = 100;
|
26
|
-
const fn3 = async () => {
|
27
|
-
fn1();
|
28
|
-
await wait(time);
|
29
|
-
fn2();
|
30
|
-
};
|
31
|
-
|
32
|
-
fn3();
|
33
|
-
expect(fn1).toBeCalled();
|
34
|
-
expect(fn2).not.toBeCalled();
|
35
|
-
await wait(time);
|
36
|
-
expect(fn2).toBeCalled();
|
37
|
-
});
|
38
|
-
});
|