Skip to content

Commit 978c475

Browse files
authored
fix: fixed exports format for package (#25)
Added conditional exports as modern approach Restrited interface to index files only for each lib part Removed config examples as non-relevant content Ported patch for collectPageActivity action from playwright-utils
1 parent b0dd6c0 commit 978c475

File tree

8 files changed

+83
-118
lines changed

8 files changed

+83
-118
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
class InvalidURLError extends Error {
2+
readonly url: string;
3+
readonly base: string | undefined;
4+
5+
constructor(message: string, url: string, base: string | undefined) {
6+
super(message);
7+
8+
this.name = 'InvalidURLError';
9+
this.url = url;
10+
this.base = base;
11+
12+
//https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
13+
Object.setPrototypeOf(this, InvalidURLError.prototype);
14+
15+
Error.captureStackTrace?.(this, this.constructor);
16+
}
17+
18+
toJSON() {
19+
const { url, base } = this;
20+
21+
return {
22+
url,
23+
base,
24+
};
25+
}
26+
}
27+
28+
export function getURL(url: string, base?: string) {
29+
try {
30+
return new URL(url, base);
31+
} catch {
32+
let message: string;
33+
34+
if (base === undefined) {
35+
message = 'isSameResponse: failed to create URL for url %s';
36+
} else {
37+
message = 'isSameResponse: failed to create URL for url %s and base %s';
38+
}
39+
40+
console.error(message, url, base);
41+
42+
throw new InvalidURLError('isSameResponse: failed to create url', url, base);
43+
}
44+
}

actions/collectPageActivity/isSameResponse.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { getURL } from './getURL';
12
import { normalizePathname } from './normalizePathname';
23
import type { ExpectedResponse } from './types';
34

@@ -7,13 +8,14 @@ export function isSameResponse(status: number, url: string, baseUrl: string) {
78
return (expectedResponse: ExpectedResponse) => {
89
const expectedUrl =
910
typeof expectedResponse.url === 'string'
10-
? new URL(expectedResponse.url, baseUrl)
11+
? getURL(expectedResponse.url, baseUrl)
1112
: expectedResponse.url;
12-
const failedUrl = new URL(url);
1313

1414
let result = expectedResponse.status === status;
1515

1616
if (result) {
17+
const failedUrl = getURL(url);
18+
1719
if (expectedUrl instanceof RegExp) {
1820
result = expectedUrl.test(failedUrl.href);
1921
} else {

config/README.md

Lines changed: 0 additions & 53 deletions
This file was deleted.

config/browsers.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

config/browsersDesktop.ts

Lines changed: 0 additions & 28 deletions
This file was deleted.

config/browsersMobile.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

package.json

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,42 @@
2222
"/data/**/*.*(js|d.ts)",
2323
"/fixtures/**/*.*(js|d.ts)",
2424
"/har/**/*.*(js|d.ts)",
25+
"/storybook/**/*.*(js|d.ts)",
2526
"/utils/**/*.*(js|d.ts)",
2627
"!/**/__tests__"
2728
],
28-
"exports": [
29-
"./actions/**/*.*(js|d.ts)",
30-
"./auth/**/*.*(js|d.ts)",
31-
"./config/**/*.*(js|d.ts)",
32-
"./data/**/*.*(js|d.ts)",
33-
"./fixtures/**/*.*(js|d.ts)",
34-
"./har/**/*.*(js|d.ts)",
35-
"./utils/**/*.*(js|d.ts)"
36-
],
29+
"exports": {
30+
"./actions": {
31+
"types": "./actions/index.d.ts",
32+
"import": "./actions/index.js",
33+
"require": "./actions/index.js"
34+
},
35+
"./auth/storage": {
36+
"types": "./auth/storage/index.d.ts",
37+
"import": "./auth/storage/index.js",
38+
"require": "./auth/storage/index.js"
39+
},
40+
"./fixtures": {
41+
"types": "./fixtures/index.d.ts",
42+
"import": "./fixtures/index.js",
43+
"require": "./fixtures/index.js"
44+
},
45+
"./har": {
46+
"types": "./har/index.d.ts",
47+
"import": "./har/index.js",
48+
"require": "./har/index.js"
49+
},
50+
"./storybook": {
51+
"types": "./storybook/index.d.ts",
52+
"import": "./storybook/index.js",
53+
"require": "./storybook/index.js"
54+
},
55+
"./utils": {
56+
"types": "./utils/index.d.ts",
57+
"import": "./utils/index.js",
58+
"require": "./utils/index.js"
59+
}
60+
},
3761
"scripts": {
3862
"prepare": "husky",
3963
"build": "tsc",

storybook/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export type { Cases, CasesWithName, Scenario, ScenarioName } from './types';
2+
export { createSmokeScenarios } from './create-smoke-scenarios';

0 commit comments

Comments
 (0)