@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.
Files changed (183) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/compiled/address/index.js +1 -0
  3. package/compiled/address/lib/address.d.ts +28 -0
  4. package/compiled/address/package.json +1 -0
  5. package/compiled/browserslist/index.js +1 -1
  6. package/compiled/dotenv/index.js +1 -0
  7. package/compiled/dotenv/license +23 -0
  8. package/compiled/dotenv/package.json +1 -0
  9. package/compiled/dotenv/types/index.d.ts +59 -0
  10. package/compiled/dotenv-expand/index.d.ts +15 -0
  11. package/compiled/dotenv-expand/index.js +1 -0
  12. package/compiled/dotenv-expand/license +24 -0
  13. package/compiled/dotenv-expand/package.json +1 -0
  14. package/compiled/fast-glob/@nodelib/fs.scandir/out/adapters/fs.d.ts +20 -0
  15. package/compiled/fast-glob/@nodelib/fs.scandir/out/index.d.ts +12 -0
  16. package/compiled/fast-glob/@nodelib/fs.scandir/out/providers/async.d.ts +7 -0
  17. package/compiled/fast-glob/@nodelib/fs.scandir/out/settings.d.ts +20 -0
  18. package/compiled/fast-glob/@nodelib/fs.scandir/out/types/index.d.ts +20 -0
  19. package/compiled/fast-glob/@nodelib/fs.stat/out/adapters/fs.d.ts +13 -0
  20. package/compiled/fast-glob/@nodelib/fs.stat/out/index.d.ts +12 -0
  21. package/compiled/fast-glob/@nodelib/fs.stat/out/providers/async.d.ts +4 -0
  22. package/compiled/fast-glob/@nodelib/fs.stat/out/settings.d.ts +16 -0
  23. package/compiled/fast-glob/@nodelib/fs.stat/out/types/index.d.ts +4 -0
  24. package/compiled/fast-glob/@nodelib/fs.walk/out/index.d.ts +14 -0
  25. package/compiled/fast-glob/@nodelib/fs.walk/out/providers/async.d.ts +12 -0
  26. package/compiled/fast-glob/@nodelib/fs.walk/out/readers/async.d.ts +30 -0
  27. package/compiled/fast-glob/@nodelib/fs.walk/out/readers/reader.d.ts +6 -0
  28. package/compiled/fast-glob/@nodelib/fs.walk/out/settings.d.ts +30 -0
  29. package/compiled/fast-glob/@nodelib/fs.walk/out/types/index.d.ts +8 -0
  30. package/compiled/fast-glob/index.js +37 -0
  31. package/compiled/fast-glob/license +21 -0
  32. package/compiled/fast-glob/out/index.d.ts +27 -0
  33. package/compiled/fast-glob/out/managers/tasks.d.ts +22 -0
  34. package/compiled/fast-glob/out/settings.d.ts +164 -0
  35. package/compiled/fast-glob/out/types/index.d.ts +31 -0
  36. package/compiled/fast-glob/package.json +1 -0
  37. package/compiled/globby/index.d.ts +186 -0
  38. package/compiled/globby/index.js +1 -0
  39. package/compiled/globby/license +9 -0
  40. package/compiled/globby/package.json +1 -0
  41. package/compiled/inquirer/index.d.ts +997 -0
  42. package/compiled/inquirer/index.js +9 -0
  43. package/compiled/inquirer/lib/objects/choice.d.ts +65 -0
  44. package/compiled/inquirer/lib/objects/choices.d.ts +206 -0
  45. package/compiled/inquirer/lib/objects/separator.d.ts +37 -0
  46. package/compiled/inquirer/lib/ui/baseUI.d.ts +37 -0
  47. package/compiled/inquirer/lib/ui/bottom-bar.d.ts +65 -0
  48. package/compiled/inquirer/lib/ui/prompt.d.ts +104 -0
  49. package/compiled/inquirer/license +22 -0
  50. package/compiled/inquirer/package.json +1 -0
  51. package/compiled/inquirer/through/index.d.ts +25 -0
  52. package/compiled/json5/index.js +1 -0
  53. package/compiled/json5/lib/index.d.ts +4 -0
  54. package/compiled/json5/lib/parse.d.ts +15 -0
  55. package/compiled/json5/lib/stringify.d.ts +89 -0
  56. package/compiled/json5/package.json +1 -0
  57. package/compiled/lodash/index.js +4 -8
  58. package/compiled/mime-types/index.d.ts +14 -0
  59. package/compiled/mime-types/index.js +14 -0
  60. package/compiled/mime-types/license +23 -0
  61. package/compiled/mime-types/package.json +1 -0
  62. package/compiled/minimist/index.d.ts +95 -0
  63. package/compiled/minimist/index.js +1 -0
  64. package/compiled/minimist/license +18 -0
  65. package/compiled/minimist/package.json +1 -0
  66. package/compiled/ora/cli-spinners/index.d.ts +125 -0
  67. package/compiled/ora/index.d.ts +277 -0
  68. package/compiled/ora/index.js +3 -0
  69. package/compiled/ora/license +9 -0
  70. package/compiled/ora/package.json +1 -0
  71. package/compiled/semver/classes/comparator.d.ts +17 -0
  72. package/compiled/semver/classes/range.d.ts +21 -0
  73. package/compiled/semver/classes/semver.d.ts +62 -0
  74. package/compiled/semver/functions/clean.d.ts +8 -0
  75. package/compiled/semver/functions/cmp.d.ts +16 -0
  76. package/compiled/semver/functions/coerce.d.ts +12 -0
  77. package/compiled/semver/functions/compare-build.d.ts +16 -0
  78. package/compiled/semver/functions/compare-loose.d.ts +5 -0
  79. package/compiled/semver/functions/compare.d.ts +20 -0
  80. package/compiled/semver/functions/diff.d.ts +13 -0
  81. package/compiled/semver/functions/eq.d.ts +9 -0
  82. package/compiled/semver/functions/gt.d.ts +9 -0
  83. package/compiled/semver/functions/gte.d.ts +9 -0
  84. package/compiled/semver/functions/inc.d.ts +15 -0
  85. package/compiled/semver/functions/lt.d.ts +9 -0
  86. package/compiled/semver/functions/lte.d.ts +8 -0
  87. package/compiled/semver/functions/major.d.ts +9 -0
  88. package/compiled/semver/functions/minor.d.ts +9 -0
  89. package/compiled/semver/functions/neq.d.ts +9 -0
  90. package/compiled/semver/functions/parse.d.ts +12 -0
  91. package/compiled/semver/functions/patch.d.ts +9 -0
  92. package/compiled/semver/functions/prerelease.d.ts +12 -0
  93. package/compiled/semver/functions/rcompare.d.ts +15 -0
  94. package/compiled/semver/functions/rsort.d.ts +9 -0
  95. package/compiled/semver/functions/satisfies.d.ts +14 -0
  96. package/compiled/semver/functions/sort.d.ts +9 -0
  97. package/compiled/semver/functions/valid.d.ts +11 -0
  98. package/compiled/semver/index.d.ts +133 -0
  99. package/compiled/semver/index.js +1 -0
  100. package/compiled/semver/internals/identifiers.d.ts +13 -0
  101. package/compiled/semver/license +15 -0
  102. package/compiled/semver/package.json +1 -0
  103. package/compiled/semver/ranges/gtr.d.ts +14 -0
  104. package/compiled/semver/ranges/intersects.d.ts +13 -0
  105. package/compiled/semver/ranges/ltr.d.ts +14 -0
  106. package/compiled/semver/ranges/max-satisfying.d.ts +14 -0
  107. package/compiled/semver/ranges/min-satisfying.d.ts +14 -0
  108. package/compiled/semver/ranges/min-version.d.ts +10 -0
  109. package/compiled/semver/ranges/outside.d.ts +15 -0
  110. package/compiled/semver/ranges/simplify.d.ts +14 -0
  111. package/compiled/semver/ranges/subset.d.ts +13 -0
  112. package/compiled/semver/ranges/to-comparators.d.ts +9 -0
  113. package/compiled/semver/ranges/valid.d.ts +12 -0
  114. package/compiled/slash/index.d.ts +25 -0
  115. package/compiled/slash/index.js +1 -0
  116. package/compiled/slash/license +9 -0
  117. package/compiled/slash/package.json +1 -0
  118. package/compiled/url-join/index.d.ts +17 -0
  119. package/compiled/url-join/index.js +1 -0
  120. package/compiled/url-join/license +21 -0
  121. package/compiled/url-join/package.json +1 -0
  122. package/dist/alias.js +4 -1
  123. package/dist/analyzeProject.d.ts +1 -0
  124. package/dist/analyzeProject.js +31 -0
  125. package/dist/compiled.d.ts +34 -17
  126. package/dist/compiled.js +59 -21
  127. package/dist/constants.d.ts +1 -1
  128. package/dist/constants.js +1 -1
  129. package/dist/emptyDir.js +4 -13
  130. package/dist/format.js +6 -1
  131. package/dist/getEntryOptions.js +2 -1
  132. package/dist/getPackageManager.js +19 -30
  133. package/dist/getPort.js +3 -12
  134. package/dist/getServerConfig.js +2 -11
  135. package/dist/index.d.ts +2 -2
  136. package/dist/index.js +2 -2
  137. package/dist/logger.d.ts +3 -0
  138. package/dist/logger.js +21 -6
  139. package/dist/monorepo.js +4 -1
  140. package/dist/nodeEnv.js +24 -39
  141. package/dist/prettyInstructions.js +3 -3
  142. package/dist/runtimeExports.js +1 -1
  143. package/dist/{ssrHelpers.d.ts → ssr.d.ts} +3 -0
  144. package/dist/{ssrHelpers.js → ssr.js} +0 -0
  145. package/dist/storage.js +1 -1
  146. package/dist/watch.js +9 -18
  147. package/package.json +41 -35
  148. package/tsconfig.json +1 -0
  149. package/dist/getCacheIdentifier.d.ts +0 -7
  150. package/dist/getCacheIdentifier.js +0 -24
  151. package/modern.config.js +0 -6
  152. package/tests/.eslintrc.js +0 -6
  153. package/tests/__snapshots__/prettyInstructions.test.ts.snap +0 -19
  154. package/tests/applyOptionsChain.test.ts +0 -100
  155. package/tests/compatRequire.test.ts +0 -32
  156. package/tests/debug.test.ts +0 -25
  157. package/tests/ensureAbsolutePath.test.ts +0 -16
  158. package/tests/findExists.test.ts +0 -22
  159. package/tests/fixtures/browserlist/develop/package.json +0 -11
  160. package/tests/fixtures/browserlist/dotfile/.browserslistrc +0 -3
  161. package/tests/fixtures/browserlist/pkg/package.json +0 -7
  162. package/tests/fixtures/compat-require/cjs.js +0 -1
  163. package/tests/fixtures/compat-require/empty.js +0 -1
  164. package/tests/fixtures/compat-require/esm.js +0 -5
  165. package/tests/fixtures/compat-require/foo.js +0 -3
  166. package/tests/fixtures/file-exists/a.ejs +0 -0
  167. package/tests/fixtures/file-exists/a.js/.gitkeep +0 -0
  168. package/tests/fixtures/file-exists/a.mjs +0 -0
  169. package/tests/fixtures/file-exists/a.ts +0 -0
  170. package/tests/format.test.ts +0 -60
  171. package/tests/generateMetaTags.test.ts +0 -19
  172. package/tests/getBrowserslist.test.ts +0 -32
  173. package/tests/getCacheIdentifier.test.ts +0 -37
  174. package/tests/getEntryOptions.test.ts +0 -53
  175. package/tests/index.test.ts +0 -18
  176. package/tests/is.test.ts +0 -27
  177. package/tests/isPlatform.test.ts +0 -19
  178. package/tests/isType.test.ts +0 -85
  179. package/tests/logger.test.ts +0 -53
  180. package/tests/prettyInstructions.test.ts +0 -139
  181. package/tests/removeSlash.test.ts +0 -19
  182. package/tests/tsconfig.json +0 -11
  183. 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
- });
@@ -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
- });
@@ -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
- });
@@ -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
- });
@@ -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
- });
@@ -1,11 +0,0 @@
1
- {
2
- "extends": "@modern-js/tsconfig/base",
3
- "compilerOptions": {
4
- "declaration": false,
5
- "jsx": "preserve",
6
- "baseUrl": "./",
7
- "isolatedModules": true,
8
- "paths": {},
9
- "types": ["node", "jest"]
10
- }
11
- }
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
- });