browsertime 17.0.0-beta.2 → 17.0.0-beta.3
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.
- package/lib/support/engineUtils.js +17 -13
- package/package.json +1 -1
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { resolve } from 'node:path';
|
|
1
|
+
import { resolve, join, sep } from 'node:path';
|
|
2
|
+
import os from 'node:os';
|
|
2
3
|
import { createRequire } from 'node:module';
|
|
3
4
|
import dayjs from 'dayjs';
|
|
4
5
|
import intel from 'intel';
|
|
5
6
|
import { toArray } from '../support/util.js';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
copyFile,
|
|
9
|
-
removeFileSync,
|
|
10
|
-
copyFileSync
|
|
11
|
-
} from './fileUtil.js';
|
|
7
|
+
import { copyFile, copyFileSync } from './fileUtil.js';
|
|
8
|
+
import { realpathSync, mkdtempSync, rmdirSync } from 'node:fs';
|
|
12
9
|
const require = createRequire(import.meta.url);
|
|
13
10
|
const log = intel.getLogger('browsertime');
|
|
14
11
|
|
|
15
12
|
const AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;
|
|
16
13
|
|
|
14
|
+
function getTmp() {
|
|
15
|
+
return mkdtempSync(realpathSync(os.tmpdir()) + sep);
|
|
16
|
+
}
|
|
17
|
+
|
|
17
18
|
export function loadPrePostScriptsSync(scripts) {
|
|
18
19
|
return toArray(scripts).map(script => {
|
|
19
20
|
// if the script is an AsyncFunction, return it.
|
|
@@ -22,10 +23,11 @@ export function loadPrePostScriptsSync(scripts) {
|
|
|
22
23
|
}
|
|
23
24
|
try {
|
|
24
25
|
if (script.endsWith('.js')) {
|
|
25
|
-
const
|
|
26
|
+
const dir = getTmp();
|
|
27
|
+
const name = join(dir, 'tmp.cjs');
|
|
26
28
|
copyFileSync(script, name);
|
|
27
29
|
const data = require(resolve(name));
|
|
28
|
-
|
|
30
|
+
rmdirSync(dir, { recursive: true });
|
|
29
31
|
return data;
|
|
30
32
|
} else {
|
|
31
33
|
return require(resolve(script));
|
|
@@ -44,10 +46,11 @@ export function loadScriptSync(script) {
|
|
|
44
46
|
}
|
|
45
47
|
try {
|
|
46
48
|
if (script.endsWith('.js')) {
|
|
47
|
-
const
|
|
49
|
+
const dir = getTmp();
|
|
50
|
+
const name = join(dir, 'tmp.cjs');
|
|
48
51
|
copyFileSync(script, name);
|
|
49
52
|
const data = require(resolve(name));
|
|
50
|
-
|
|
53
|
+
rmdirSync(dir, { recursive: true });
|
|
51
54
|
return data;
|
|
52
55
|
} else {
|
|
53
56
|
return require(resolve(script));
|
|
@@ -66,10 +69,11 @@ export async function loadScript(script, throwError) {
|
|
|
66
69
|
}
|
|
67
70
|
try {
|
|
68
71
|
if (script.endsWith('.js')) {
|
|
69
|
-
const
|
|
72
|
+
const dir = getTmp();
|
|
73
|
+
const name = join(dir, 'tmp.cjs');
|
|
70
74
|
await copyFile(script, name);
|
|
71
75
|
const data = require(resolve(name));
|
|
72
|
-
|
|
76
|
+
rmdirSync(dir, { recursive: true });
|
|
73
77
|
return data;
|
|
74
78
|
} else {
|
|
75
79
|
return require(resolve(script));
|