@modern-js/utils 1.4.1 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +39 -0
- package/compiled/address/index.js +1 -0
- package/compiled/address/lib/address.d.ts +28 -0
- package/compiled/address/package.json +1 -0
- package/compiled/browserslist/index.js +1 -1
- package/compiled/dotenv/index.js +1 -0
- package/compiled/dotenv/license +23 -0
- package/compiled/dotenv/package.json +1 -0
- package/compiled/dotenv/types/index.d.ts +59 -0
- package/compiled/dotenv-expand/index.d.ts +15 -0
- package/compiled/dotenv-expand/index.js +1 -0
- package/compiled/dotenv-expand/license +24 -0
- package/compiled/dotenv-expand/package.json +1 -0
- package/compiled/fast-glob/@nodelib/fs.scandir/out/adapters/fs.d.ts +20 -0
- package/compiled/fast-glob/@nodelib/fs.scandir/out/index.d.ts +12 -0
- package/compiled/fast-glob/@nodelib/fs.scandir/out/providers/async.d.ts +7 -0
- package/compiled/fast-glob/@nodelib/fs.scandir/out/settings.d.ts +20 -0
- package/compiled/fast-glob/@nodelib/fs.scandir/out/types/index.d.ts +20 -0
- package/compiled/fast-glob/@nodelib/fs.stat/out/adapters/fs.d.ts +13 -0
- package/compiled/fast-glob/@nodelib/fs.stat/out/index.d.ts +12 -0
- package/compiled/fast-glob/@nodelib/fs.stat/out/providers/async.d.ts +4 -0
- package/compiled/fast-glob/@nodelib/fs.stat/out/settings.d.ts +16 -0
- package/compiled/fast-glob/@nodelib/fs.stat/out/types/index.d.ts +4 -0
- package/compiled/fast-glob/@nodelib/fs.walk/out/index.d.ts +14 -0
- package/compiled/fast-glob/@nodelib/fs.walk/out/providers/async.d.ts +12 -0
- package/compiled/fast-glob/@nodelib/fs.walk/out/readers/async.d.ts +30 -0
- package/compiled/fast-glob/@nodelib/fs.walk/out/readers/reader.d.ts +6 -0
- package/compiled/fast-glob/@nodelib/fs.walk/out/settings.d.ts +30 -0
- package/compiled/fast-glob/@nodelib/fs.walk/out/types/index.d.ts +8 -0
- package/compiled/fast-glob/index.js +37 -0
- package/compiled/fast-glob/license +21 -0
- package/compiled/fast-glob/out/index.d.ts +27 -0
- package/compiled/fast-glob/out/managers/tasks.d.ts +22 -0
- package/compiled/fast-glob/out/settings.d.ts +164 -0
- package/compiled/fast-glob/out/types/index.d.ts +31 -0
- package/compiled/fast-glob/package.json +1 -0
- package/compiled/globby/index.d.ts +186 -0
- package/compiled/globby/index.js +1 -0
- package/compiled/globby/license +9 -0
- package/compiled/globby/package.json +1 -0
- package/compiled/inquirer/index.d.ts +997 -0
- package/compiled/inquirer/index.js +9 -0
- package/compiled/inquirer/lib/objects/choice.d.ts +65 -0
- package/compiled/inquirer/lib/objects/choices.d.ts +206 -0
- package/compiled/inquirer/lib/objects/separator.d.ts +37 -0
- package/compiled/inquirer/lib/ui/baseUI.d.ts +37 -0
- package/compiled/inquirer/lib/ui/bottom-bar.d.ts +65 -0
- package/compiled/inquirer/lib/ui/prompt.d.ts +104 -0
- package/compiled/inquirer/license +22 -0
- package/compiled/inquirer/package.json +1 -0
- package/compiled/inquirer/through/index.d.ts +25 -0
- package/compiled/json5/index.js +1 -0
- package/compiled/json5/lib/index.d.ts +4 -0
- package/compiled/json5/lib/parse.d.ts +15 -0
- package/compiled/json5/lib/stringify.d.ts +89 -0
- package/compiled/json5/package.json +1 -0
- package/compiled/lodash/index.js +4 -8
- package/compiled/mime-types/index.d.ts +14 -0
- package/compiled/mime-types/index.js +14 -0
- package/compiled/mime-types/license +23 -0
- package/compiled/mime-types/package.json +1 -0
- package/compiled/minimist/index.d.ts +95 -0
- package/compiled/minimist/index.js +1 -0
- package/compiled/minimist/license +18 -0
- package/compiled/minimist/package.json +1 -0
- package/compiled/ora/cli-spinners/index.d.ts +125 -0
- package/compiled/ora/index.d.ts +277 -0
- package/compiled/ora/index.js +3 -0
- package/compiled/ora/license +9 -0
- package/compiled/ora/package.json +1 -0
- package/compiled/semver/classes/comparator.d.ts +17 -0
- package/compiled/semver/classes/range.d.ts +21 -0
- package/compiled/semver/classes/semver.d.ts +62 -0
- package/compiled/semver/functions/clean.d.ts +8 -0
- package/compiled/semver/functions/cmp.d.ts +16 -0
- package/compiled/semver/functions/coerce.d.ts +12 -0
- package/compiled/semver/functions/compare-build.d.ts +16 -0
- package/compiled/semver/functions/compare-loose.d.ts +5 -0
- package/compiled/semver/functions/compare.d.ts +20 -0
- package/compiled/semver/functions/diff.d.ts +13 -0
- package/compiled/semver/functions/eq.d.ts +9 -0
- package/compiled/semver/functions/gt.d.ts +9 -0
- package/compiled/semver/functions/gte.d.ts +9 -0
- package/compiled/semver/functions/inc.d.ts +15 -0
- package/compiled/semver/functions/lt.d.ts +9 -0
- package/compiled/semver/functions/lte.d.ts +8 -0
- package/compiled/semver/functions/major.d.ts +9 -0
- package/compiled/semver/functions/minor.d.ts +9 -0
- package/compiled/semver/functions/neq.d.ts +9 -0
- package/compiled/semver/functions/parse.d.ts +12 -0
- package/compiled/semver/functions/patch.d.ts +9 -0
- package/compiled/semver/functions/prerelease.d.ts +12 -0
- package/compiled/semver/functions/rcompare.d.ts +15 -0
- package/compiled/semver/functions/rsort.d.ts +9 -0
- package/compiled/semver/functions/satisfies.d.ts +14 -0
- package/compiled/semver/functions/sort.d.ts +9 -0
- package/compiled/semver/functions/valid.d.ts +11 -0
- package/compiled/semver/index.d.ts +133 -0
- package/compiled/semver/index.js +1 -0
- package/compiled/semver/internals/identifiers.d.ts +13 -0
- package/compiled/semver/license +15 -0
- package/compiled/semver/package.json +1 -0
- package/compiled/semver/ranges/gtr.d.ts +14 -0
- package/compiled/semver/ranges/intersects.d.ts +13 -0
- package/compiled/semver/ranges/ltr.d.ts +14 -0
- package/compiled/semver/ranges/max-satisfying.d.ts +14 -0
- package/compiled/semver/ranges/min-satisfying.d.ts +14 -0
- package/compiled/semver/ranges/min-version.d.ts +10 -0
- package/compiled/semver/ranges/outside.d.ts +15 -0
- package/compiled/semver/ranges/simplify.d.ts +14 -0
- package/compiled/semver/ranges/subset.d.ts +13 -0
- package/compiled/semver/ranges/to-comparators.d.ts +9 -0
- package/compiled/semver/ranges/valid.d.ts +12 -0
- package/compiled/slash/index.d.ts +25 -0
- package/compiled/slash/index.js +1 -0
- package/compiled/slash/license +9 -0
- package/compiled/slash/package.json +1 -0
- package/compiled/url-join/index.d.ts +17 -0
- package/compiled/url-join/index.js +1 -0
- package/compiled/url-join/license +21 -0
- package/compiled/url-join/package.json +1 -0
- package/dist/alias.js +4 -1
- package/dist/analyzeProject.d.ts +1 -0
- package/dist/analyzeProject.js +31 -0
- package/dist/compiled.d.ts +34 -17
- package/dist/compiled.js +59 -21
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/emptyDir.js +4 -13
- package/dist/format.js +6 -1
- package/dist/getEntryOptions.js +2 -1
- package/dist/getPackageManager.js +19 -30
- package/dist/getPort.js +3 -12
- package/dist/getServerConfig.js +2 -11
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/logger.d.ts +3 -0
- package/dist/logger.js +21 -6
- package/dist/monorepo.js +4 -1
- package/dist/nodeEnv.js +24 -39
- package/dist/prettyInstructions.js +3 -3
- package/dist/runtimeExports.js +1 -1
- package/dist/{ssrHelpers.d.ts → ssr.d.ts} +3 -0
- package/dist/{ssrHelpers.js → ssr.js} +0 -0
- package/dist/storage.js +1 -1
- package/dist/watch.js +9 -18
- package/package.json +41 -35
- package/tsconfig.json +1 -0
- package/dist/getCacheIdentifier.d.ts +0 -7
- package/dist/getCacheIdentifier.js +0 -24
- package/modern.config.js +0 -6
- 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,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('../compiled/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
|
-
});
|