@atlaspack/utils 2.17.3 → 2.17.4-typescript-17c3d1dec.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.
Files changed (113) hide show
  1. package/LICENSE +201 -0
  2. package/lib/DefaultMap.d.ts +13 -0
  3. package/lib/DefaultMap.js +0 -4
  4. package/lib/Deferred.d.ts +8 -0
  5. package/lib/PromiseQueue.d.ts +25 -0
  6. package/lib/TapStream.d.ts +6 -0
  7. package/lib/alternatives.d.ts +3 -0
  8. package/lib/ansi-html.d.ts +1 -0
  9. package/lib/ansi-html.js +2 -0
  10. package/lib/blob.d.ts +4 -0
  11. package/lib/bundle-url.d.ts +4 -0
  12. package/lib/collection.d.ts +33 -0
  13. package/lib/config.d.ts +17 -0
  14. package/lib/config.js +3 -1
  15. package/lib/countLines.d.ts +1 -0
  16. package/lib/debounce.d.ts +1 -0
  17. package/lib/debug-tools.d.ts +6 -0
  18. package/lib/debug-tools.js +1 -0
  19. package/lib/dependency-location.d.ts +14 -0
  20. package/lib/escape-html.d.ts +1 -0
  21. package/lib/generateBuildMetrics.d.ts +18 -0
  22. package/lib/generateCertificate.d.ts +5 -0
  23. package/lib/getCertificate.d.ts +6 -0
  24. package/lib/getExisting.d.ts +8 -0
  25. package/lib/getModuleParts.d.ts +4 -0
  26. package/lib/getRootDir.d.ts +2 -0
  27. package/lib/glob.d.ts +10 -0
  28. package/lib/glob.js +12 -4
  29. package/lib/hash.d.ts +7 -0
  30. package/lib/http-server.d.ts +19 -0
  31. package/lib/index.d.ts +48 -0
  32. package/lib/index.js +164 -9
  33. package/lib/is-url.d.ts +1 -0
  34. package/lib/is-url.js +2 -0
  35. package/lib/isDirectoryInside.d.ts +2 -0
  36. package/lib/objectHash.d.ts +3 -0
  37. package/lib/objectHash.js +0 -1
  38. package/lib/openInBrowser.d.ts +1 -0
  39. package/lib/parseCSSImport.d.ts +1 -0
  40. package/lib/path.d.ts +8 -0
  41. package/lib/prettifyTime.d.ts +1 -0
  42. package/lib/prettyDiagnostic.d.ts +17 -0
  43. package/lib/prettyDiagnostic.js +3 -5
  44. package/lib/progress-message.d.ts +3 -0
  45. package/lib/relativeBundlePath.d.ts +4 -0
  46. package/lib/relativeUrl.d.ts +1 -0
  47. package/lib/replaceBundleReferences.d.ts +39 -0
  48. package/lib/schema.d.ts +107 -0
  49. package/lib/schema.js +38 -19
  50. package/lib/shared-buffer.d.ts +2 -0
  51. package/lib/shared-buffer.js +5 -1
  52. package/lib/sourcemap.d.ts +16 -0
  53. package/lib/stream.d.ts +8 -0
  54. package/lib/throttle.d.ts +1 -0
  55. package/lib/urlJoin.d.ts +5 -0
  56. package/lib/urlJoin.js +1 -1
  57. package/package.json +22 -15
  58. package/src/{DefaultMap.js → DefaultMap.ts} +8 -12
  59. package/src/Deferred.ts +26 -0
  60. package/src/{PromiseQueue.js → PromiseQueue.ts} +40 -35
  61. package/src/{TapStream.js → TapStream.ts} +8 -7
  62. package/src/{alternatives.js → alternatives.ts} +14 -15
  63. package/src/{ansi-html.js → ansi-html.ts} +1 -1
  64. package/src/{blob.js → blob.ts} +2 -4
  65. package/src/{bundle-url.js → bundle-url.ts} +3 -5
  66. package/src/{collection.js → collection.ts} +14 -21
  67. package/src/{config.js → config.ts} +18 -19
  68. package/src/{countLines.js → countLines.ts} +0 -2
  69. package/src/{debounce.js → debounce.ts} +3 -5
  70. package/src/{debug-tools.js → debug-tools.ts} +6 -8
  71. package/src/{dependency-location.js → dependency-location.ts} +15 -11
  72. package/src/{escape-html.js → escape-html.ts} +5 -3
  73. package/src/{generateBuildMetrics.js → generateBuildMetrics.ts} +16 -18
  74. package/src/{generateCertificate.js → generateCertificate.ts} +7 -5
  75. package/src/{getCertificate.js → getCertificate.ts} +5 -3
  76. package/src/{getExisting.js → getExisting.ts} +4 -3
  77. package/src/{getModuleParts.js → getModuleParts.ts} +3 -2
  78. package/src/{getRootDir.js → getRootDir.ts} +0 -2
  79. package/src/{glob.js → glob.ts} +14 -10
  80. package/src/{hash.js → hash.ts} +22 -17
  81. package/src/{http-server.js → http-server.ts} +32 -38
  82. package/src/{index.js → index.ts} +7 -8
  83. package/src/{is-url.js → is-url.ts} +1 -2
  84. package/src/{isDirectoryInside.js → isDirectoryInside.ts} +0 -1
  85. package/src/{objectHash.js → objectHash.ts} +1 -4
  86. package/src/{openInBrowser.js → openInBrowser.ts} +2 -4
  87. package/src/{parseCSSImport.js → parseCSSImport.ts} +0 -2
  88. package/src/{path.js → path.ts} +1 -3
  89. package/src/{prettifyTime.js → prettifyTime.ts} +0 -2
  90. package/src/{prettyDiagnostic.js → prettyDiagnostic.ts} +22 -20
  91. package/src/{progress-message.js → progress-message.ts} +3 -2
  92. package/src/{relativeBundlePath.js → relativeBundlePath.ts} +3 -3
  93. package/src/{relativeUrl.js → relativeUrl.ts} +0 -1
  94. package/src/{replaceBundleReferences.js → replaceBundleReferences.ts} +54 -36
  95. package/src/{schema.js → schema.ts} +158 -141
  96. package/src/{shared-buffer.js → shared-buffer.ts} +5 -3
  97. package/src/{sourcemap.js → sourcemap.ts} +16 -6
  98. package/src/{stream.js → stream.ts} +29 -21
  99. package/src/throttle.ts +13 -0
  100. package/src/{urlJoin.js → urlJoin.ts} +1 -3
  101. package/test/{DefaultMap.test.js → DefaultMap.test.ts} +4 -6
  102. package/test/{PromiseQueue.test.js → PromiseQueue.test.ts} +5 -6
  103. package/test/{collection.test.js → collection.test.ts} +0 -2
  104. package/test/{config.test.js → config.test.ts} +0 -3
  105. package/test/{objectHash.test.js → objectHash.test.ts} +4 -5
  106. package/test/{prettifyTime.test.js → prettifyTime.test.ts} +0 -1
  107. package/test/{replaceBundleReferences.test.js → replaceBundleReferences.test.ts} +0 -32
  108. package/test/{sourcemap.test.js → sourcemap.test.ts} +0 -1
  109. package/test/{throttle.test.js → throttle.test.ts} +1 -3
  110. package/test/{urlJoin.test.js → urlJoin.test.ts} +0 -2
  111. package/tsconfig.json +4 -0
  112. package/src/Deferred.js +0 -23
  113. package/src/throttle.js +0 -15
@@ -1,4 +1,3 @@
1
- // @flow strict-local
2
1
  import type {Diagnostic} from '@atlaspack/diagnostic';
3
2
  import type {PluginOptions} from '@atlaspack/types';
4
3
 
@@ -6,29 +5,27 @@ import formatCodeFrame from '@atlaspack/codeframe';
6
5
  import _mdAnsi from '@atlaspack/markdown-ansi';
7
6
  import _chalk from 'chalk';
8
7
  import path from 'path';
9
- // $FlowFixMe
10
8
  import _terminalLink from 'terminal-link';
11
9
 
12
10
  /* eslint-disable import/no-extraneous-dependencies */
13
- // $FlowFixMe
14
11
  import snarkdown from 'snarkdown';
15
12
  /* eslint-enable import/no-extraneous-dependencies */
16
13
 
17
- export type FormattedCodeFrame = {|
18
- location: string,
19
- code: string,
20
- |};
14
+ export type FormattedCodeFrame = {
15
+ location: string;
16
+ code: string;
17
+ };
21
18
 
22
- export type AnsiDiagnosticResult = {|
23
- message: string,
24
- stack: string,
19
+ export type AnsiDiagnosticResult = {
20
+ message: string;
21
+ stack: string;
25
22
  /** A formatted string containing all code frames, including their file locations. */
26
- codeframe: string,
23
+ codeframe: string;
27
24
  /** A list of code frames with highlighted code and file locations separately. */
28
- frames: Array<FormattedCodeFrame>,
29
- hints: Array<string>,
30
- documentation: string,
31
- |};
25
+ frames: Array<FormattedCodeFrame>;
26
+ hints: Array<string>;
27
+ documentation: string;
28
+ };
32
29
 
33
30
  export default async function prettyDiagnostic(
34
31
  diagnostic: Diagnostic,
@@ -51,18 +48,24 @@ export default async function prettyDiagnostic(
51
48
  format === 'ansi'
52
49
  ? _terminalLink
53
50
  : // eslint-disable-next-line no-unused-vars
54
- (text, url, _) => `<a href="${url}">${text}</a>`;
51
+ (
52
+ text: string,
53
+ url: string,
54
+ _: {
55
+ fallback: (text: never, url: never) => string;
56
+ },
57
+ ) => `<a href="${url}">${text}</a>`;
55
58
  const chalk =
56
59
  format === 'ansi'
57
60
  ? _chalk
58
61
  : {
59
62
  gray: {
60
- underline: (v) =>
63
+ underline: (v: string) =>
61
64
  `<span style="color: grey; text-decoration: underline;">${v}</span>`,
62
65
  },
63
66
  };
64
67
 
65
- let result = {
68
+ let result: AnsiDiagnosticResult = {
66
69
  message:
67
70
  md(`**${origin ?? 'unknown'}**: `) +
68
71
  (skipFormatting ? message : md(message)),
@@ -92,7 +95,6 @@ export default async function prettyDiagnostic(
92
95
  useColor: true,
93
96
  syntaxHighlighting: true,
94
97
  language:
95
- // $FlowFixMe sketchy null checks do not matter here...
96
98
  codeFrame.language ||
97
99
  (filePath != null ? path.extname(filePath).substr(1) : undefined),
98
100
  terminalWidth,
@@ -132,7 +134,7 @@ export default async function prettyDiagnostic(
132
134
 
133
135
  if (documentationURL != null) {
134
136
  result.documentation = terminalLink('Learn more', documentationURL, {
135
- fallback: (text, url) => `${text}: ${url}`,
137
+ fallback: (text: string, url: string) => `${text}: ${url}`,
136
138
  });
137
139
  }
138
140
 
@@ -1,9 +1,10 @@
1
- // @flow strict-local
2
1
  import type {BuildProgressEvent} from '@atlaspack/types';
3
2
 
4
3
  import path from 'path';
5
4
 
6
- export function getProgressMessage(event: BuildProgressEvent): ?string {
5
+ export function getProgressMessage(
6
+ event: BuildProgressEvent,
7
+ ): string | null | undefined {
7
8
  switch (event.phase) {
8
9
  case 'transforming':
9
10
  return `Building ${path.basename(event.filePath)}...`;
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {FilePath, NamedBundle} from '@atlaspack/types';
4
2
 
5
3
  import path from 'path';
@@ -8,7 +6,9 @@ import {relativePath} from './path';
8
6
  export function relativeBundlePath(
9
7
  from: NamedBundle,
10
8
  to: NamedBundle,
11
- opts: {|leadingDotSlash: boolean|} = {leadingDotSlash: true},
9
+ opts: {
10
+ leadingDotSlash: boolean;
11
+ } = {leadingDotSlash: true},
12
12
  ): FilePath {
13
13
  let fromPath = path.join(from.target.distDir, from.name);
14
14
  let toPath = path.join(to.target.distDir, to.name);
@@ -1,4 +1,3 @@
1
- // @flow
2
1
  import path from 'path';
3
2
  import url from 'url';
4
3
 
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type SourceMap from '@parcel/source-map';
4
2
  import type {
5
3
  Async,
@@ -20,7 +18,10 @@ import {bufferStream, relativeBundlePath, urlJoin} from './';
20
18
 
21
19
  type ReplacementMap = Map<
22
20
  string /* dependency id */,
23
- {|from: string, to: string|},
21
+ {
22
+ from: string;
23
+ to: string;
24
+ }
24
25
  >;
25
26
 
26
27
  /*
@@ -35,18 +36,21 @@ export function replaceURLReferences({
35
36
  bundleGraph,
36
37
  contents,
37
38
  map,
38
- getReplacement = (s) => s,
39
+ getReplacement = (s: string) => s,
39
40
  relative = true,
40
- }: {|
41
- bundle: NamedBundle,
42
- bundleGraph: BundleGraph<NamedBundle>,
43
- contents: string,
44
- relative?: boolean,
45
- map?: ?SourceMap,
46
- getReplacement?: (string) => string,
47
- |}): {|+contents: string, +map: ?SourceMap|} {
41
+ }: {
42
+ bundle: NamedBundle;
43
+ bundleGraph: BundleGraph<NamedBundle>;
44
+ contents: string;
45
+ relative?: boolean;
46
+ map?: SourceMap | null | undefined;
47
+ getReplacement?: (arg1: string) => string;
48
+ }): {
49
+ readonly contents: string;
50
+ readonly map: SourceMap | null | undefined;
51
+ } {
48
52
  let replacements = new Map();
49
- let urlDependencies = [];
53
+ let urlDependencies: Array<Dependency> = [];
50
54
  bundle.traverse((node) => {
51
55
  if (node.type === 'dependency' && node.value.specifierType === 'url') {
52
56
  urlDependencies.push(node.value);
@@ -102,24 +106,32 @@ export async function replaceInlineReferences({
102
106
  map,
103
107
  getInlineReplacement,
104
108
  getInlineBundleContents,
105
- }: {|
106
- bundle: Bundle,
107
- bundleGraph: BundleGraph<NamedBundle>,
108
- contents: string,
109
+ }: {
110
+ bundle: Bundle;
111
+ bundleGraph: BundleGraph<NamedBundle>;
112
+ contents: string;
109
113
  getInlineReplacement: (
110
- Dependency,
111
- ?'string',
112
- string,
113
- ) => {|from: string, to: string|},
114
+ arg1: Dependency,
115
+ arg2: 'string' | null | undefined,
116
+ arg3: string,
117
+ ) => {
118
+ from: string;
119
+ to: string;
120
+ };
114
121
  getInlineBundleContents: (
115
- Bundle,
116
- BundleGraph<NamedBundle>,
117
- ) => Async<{|contents: Blob|}>,
118
- map?: ?SourceMap,
119
- |}): Promise<{|+contents: string, +map: ?SourceMap|}> {
122
+ arg1: Bundle,
123
+ arg2: BundleGraph<NamedBundle>,
124
+ ) => Async<{
125
+ contents: Blob;
126
+ }>;
127
+ map?: SourceMap | null | undefined;
128
+ }): Promise<{
129
+ readonly contents: string;
130
+ readonly map: SourceMap | null | undefined;
131
+ }> {
120
132
  let replacements = new Map();
121
133
 
122
- let dependencies = [];
134
+ let dependencies: Array<Dependency> = [];
123
135
  bundle.traverse((node) => {
124
136
  if (node.type === 'dependency') {
125
137
  dependencies.push(node.value);
@@ -162,13 +174,16 @@ export function getURLReplacement({
162
174
  toBundle,
163
175
  relative,
164
176
  getReplacement,
165
- }: {|
166
- dependency: Dependency,
167
- fromBundle: NamedBundle,
168
- toBundle: NamedBundle,
169
- relative: boolean,
170
- getReplacement?: (string) => string,
171
- |}): {|from: string, to: string|} {
177
+ }: {
178
+ dependency: Dependency;
179
+ fromBundle: NamedBundle;
180
+ toBundle: NamedBundle;
181
+ relative: boolean;
182
+ getReplacement?: (arg1: string) => string;
183
+ }): {
184
+ from: string;
185
+ to: string;
186
+ } {
172
187
  let to;
173
188
 
174
189
  let orig = URL.parse(dependency.specifier);
@@ -208,8 +223,11 @@ export function getURLReplacement({
208
223
  function performReplacement(
209
224
  replacements: ReplacementMap,
210
225
  contents: string,
211
- map?: ?SourceMap,
212
- ): {|+contents: string, +map: ?SourceMap|} {
226
+ map?: SourceMap | null,
227
+ ): {
228
+ readonly contents: string;
229
+ readonly map: SourceMap | null | undefined;
230
+ } {
213
231
  let finalContents = contents;
214
232
 
215
233
  if (getFeatureFlag('inlineStringReplacementPerf')) {