creevey 0.9.0-beta.21 → 0.9.0-beta.22
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/dist/server/config.js +6 -4
- package/dist/server/config.js.map +1 -1
- package/dist/server/testsFiles/parser.js +6 -6
- package/dist/server/testsFiles/parser.js.map +1 -1
- package/dist/server/utils.d.ts +1 -0
- package/dist/server/utils.js +15 -0
- package/dist/server/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/server/config.ts +7 -7
- package/src/server/testsFiles/parser.ts +9 -7
- package/src/server/utils.ts +22 -0
- package/eslint.config.mjs +0 -62
- package/webpack.config.mjs +0 -46
package/dist/server/config.js
CHANGED
@@ -7,10 +7,10 @@ exports.defaultConfig = exports.defaultBrowser = void 0;
|
|
7
7
|
exports.readConfig = readConfig;
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
9
9
|
const path_1 = __importDefault(require("path"));
|
10
|
+
const url_1 = require("url");
|
10
11
|
const browser_js_1 = require("./storybook/providers/browser.js");
|
11
12
|
const types_js_1 = require("../types.js");
|
12
13
|
const utils_js_1 = require("./utils.js");
|
13
|
-
const api_1 = require("tsx/esm/api");
|
14
14
|
exports.defaultBrowser = 'chrome';
|
15
15
|
exports.defaultConfig = {
|
16
16
|
disableTelemetry: false,
|
@@ -61,9 +61,11 @@ async function readConfig(options) {
|
|
61
61
|
const configPath = resolveConfigPath(options.config);
|
62
62
|
const userConfig = { ...exports.defaultConfig };
|
63
63
|
if ((0, types_js_1.isDefined)(configPath)) {
|
64
|
-
const
|
65
|
-
|
66
|
-
|
64
|
+
const configModule = await (0, utils_js_1.loadThroughTSX)((load) => {
|
65
|
+
const configFileUrl = (0, url_1.pathToFileURL)(configPath).toString();
|
66
|
+
return load(configFileUrl);
|
67
|
+
});
|
68
|
+
const configData = 'default' in configModule ? configModule.default : configModule;
|
67
69
|
Object.assign(userConfig, configData);
|
68
70
|
}
|
69
71
|
if (!userConfig.storiesProvider)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":";;;;;;AAqDA,gCA6BC;AAlFD,4CAAoB;AACpB,gDAAwB;AACxB,iEAAyF;AACzF,0CAAiF;AACjF,
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"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"}
|
@@ -2,15 +2,15 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.test = exports.story = exports.kind = void 0;
|
4
4
|
exports.default = parse;
|
5
|
-
const
|
5
|
+
const url_1 = require("url");
|
6
6
|
const csf_1 = require("@storybook/csf");
|
7
|
+
const utils_js_1 = require("../utils.js");
|
7
8
|
async function parse(files) {
|
8
9
|
result = {};
|
9
|
-
|
10
|
-
|
11
|
-
await
|
12
|
-
}));
|
13
|
-
await unregister();
|
10
|
+
await (0, utils_js_1.loadThroughTSX)(async (load) => Promise.all(files.map(async (file) => {
|
11
|
+
const fileUrl = (0, url_1.pathToFileURL)(file).toString();
|
12
|
+
await load(fileUrl);
|
13
|
+
})));
|
14
14
|
return result;
|
15
15
|
}
|
16
16
|
let result = {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/server/testsFiles/parser.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/server/testsFiles/parser.ts"],"names":[],"mappings":";;;AAOA,wBAaC;AApBD,6BAAoC;AACpC,wCAA2D;AAE3D,0CAA6C;AAI9B,KAAK,UAAU,KAAK,CAAC,KAAe;IACjD,MAAM,GAAG,EAAE,CAAC;IAEZ,MAAM,IAAA,yBAAc,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAClC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,OAAO,GAAG,IAAA,mBAAa,EAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC,CAAC,CACH,CACF,CAAC;IAEF,OAAO,MAAgC,CAAC;AAC1C,CAAC;AAED,IAAI,MAAM,GAAoC,EAAE,CAAC;AAEjD,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,IAAI,WAAW,GAA8B,IAAI,CAAC;AAElD,MAAM,kBAAkB,GAAG,CAAC,MAA0B,EAAQ,EAAE;IAC9D,WAAW,GAAG,MAAM,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,UAAkB,EAAU,EAAE;IACnE,OAAO,IAAA,UAAI,EAAC,SAAS,EAAE,IAAA,yBAAmB,EAAC,UAAU,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEK,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,MAAkB,EAAQ,EAAE;IAC9D,SAAS,GAAG,KAAK,CAAC;IAClB,MAAM,EAAE,CAAC;IACT,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC,CAAC;AAJW,QAAA,IAAI,QAIf;AAEK,MAAM,KAAK,GAAG,CACnB,KAAa,EACb,OAAoF,EAC9E,EAAE;IACR,UAAU,GAAG,KAAK,CAAC;IACnB,WAAW,GAAG,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpF,UAAU,GAAG,EAAE,CAAC;IAChB,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC,CAAC;AAXW,QAAA,KAAK,SAWhB;AAEK,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,MAA2B,EAAQ,EAAE;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AACxF,CAAC,CAAC;AANW,QAAA,IAAI,QAMf"}
|
package/dist/server/utils.d.ts
CHANGED
@@ -22,3 +22,4 @@ export declare const isInsideDocker: boolean;
|
|
22
22
|
export declare const downloadBinary: (downloadUrl: string, destination: string) => Promise<void>;
|
23
23
|
export declare function readDirRecursive(dirPath: string): string[];
|
24
24
|
export declare function tryToLoadTestsData(filename: string): Partial<Record<string, ServerTest>> | undefined;
|
25
|
+
export declare function loadThroughTSX<T>(callback: (load: (modulePath: string) => Promise<T>) => Promise<T>): Promise<T>;
|
package/dist/server/utils.js
CHANGED
@@ -13,6 +13,7 @@ exports.runSequence = runSequence;
|
|
13
13
|
exports.testsToImages = testsToImages;
|
14
14
|
exports.readDirRecursive = readDirRecursive;
|
15
15
|
exports.tryToLoadTestsData = tryToLoadTestsData;
|
16
|
+
exports.loadThroughTSX = loadThroughTSX;
|
16
17
|
const fs_1 = __importDefault(require("fs"));
|
17
18
|
const https_1 = require("https");
|
18
19
|
const cluster_1 = __importDefault(require("cluster"));
|
@@ -20,6 +21,8 @@ const path_1 = require("path");
|
|
20
21
|
const url_1 = require("url");
|
21
22
|
const module_1 = require("module");
|
22
23
|
const find_cache_dir_1 = __importDefault(require("find-cache-dir"));
|
24
|
+
const api_1 = require("tsx/esm/api");
|
25
|
+
const api_2 = require("tsx/cjs/api");
|
23
26
|
const types_js_1 = require("../types.js");
|
24
27
|
const messages_js_1 = require("./messages.js");
|
25
28
|
const importMetaUrl = (0, url_1.pathToFileURL)(__filename).href;
|
@@ -139,4 +142,16 @@ function tryToLoadTestsData(filename) {
|
|
139
142
|
/* noop */
|
140
143
|
}
|
141
144
|
}
|
145
|
+
const [nodeVersion] = process.versions.node.split('.').map(Number);
|
146
|
+
async function loadThroughTSX(callback) {
|
147
|
+
const unregister = nodeVersion > 18 ? (0, api_1.register)() : (0, api_2.register)();
|
148
|
+
const result = await callback((modulePath) => nodeVersion > 18
|
149
|
+
? import(modulePath)
|
150
|
+
: // eslint-disable-next-line @typescript-eslint/no-require-imports
|
151
|
+
Promise.resolve(require(modulePath)));
|
152
|
+
// NOTE: `unregister` type is `(() => Promise<void>) | (() => void)`
|
153
|
+
// eslint-disable-next-line @typescript-eslint/await-thenable, @typescript-eslint/no-confusing-void-expression
|
154
|
+
await unregister();
|
155
|
+
return result;
|
156
|
+
}
|
142
157
|
//# sourceMappingURL=utils.js.map
|
package/dist/server/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/server/utils.ts"],"names":[],"mappings":";;;;;;
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/server/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/server/config.ts
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
import fs from 'fs';
|
2
2
|
import path from 'path';
|
3
|
+
import { pathToFileURL } from 'url';
|
3
4
|
import { loadStories as browserStoriesProvider } from './storybook/providers/browser.js';
|
4
5
|
import { Config, Browser, BrowserConfig, Options, isDefined } from '../types.js';
|
5
|
-
import { configExt } from './utils.js';
|
6
|
-
import { register } from 'tsx/esm/api';
|
6
|
+
import { configExt, loadThroughTSX } from './utils.js';
|
7
7
|
|
8
8
|
export const defaultBrowser = 'chrome';
|
9
9
|
|
@@ -56,11 +56,11 @@ export async function readConfig(options: Options): Promise<Config> {
|
|
56
56
|
const userConfig: typeof defaultConfig & Partial<Pick<Config, 'gridUrl' | 'storiesProvider'>> = { ...defaultConfig };
|
57
57
|
|
58
58
|
if (isDefined(configPath)) {
|
59
|
-
const
|
60
|
-
|
61
|
-
|
62
|
-
};
|
63
|
-
|
59
|
+
const configModule = await loadThroughTSX<{ default: Partial<Config> } | Partial<Config>>((load) => {
|
60
|
+
const configFileUrl = pathToFileURL(configPath).toString();
|
61
|
+
return load(configFileUrl);
|
62
|
+
});
|
63
|
+
const configData = 'default' in configModule ? configModule.default : configModule;
|
64
64
|
|
65
65
|
Object.assign(userConfig, configData);
|
66
66
|
}
|
@@ -1,19 +1,21 @@
|
|
1
|
-
import {
|
1
|
+
import { pathToFileURL } from 'url';
|
2
2
|
import { toId, storyNameFromExport } from '@storybook/csf';
|
3
3
|
import { CreeveyStoryParams, CreeveyTestFunction } from '../../types.js';
|
4
|
+
import { loadThroughTSX } from '../utils.js';
|
4
5
|
|
5
6
|
export type CreeveyParamsByStoryId = Record<string, CreeveyStoryParams>;
|
6
7
|
|
7
8
|
export default async function parse(files: string[]): Promise<CreeveyParamsByStoryId> {
|
8
9
|
result = {};
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
await loadThroughTSX(async (load) =>
|
12
|
+
Promise.all(
|
13
|
+
files.map(async (file) => {
|
14
|
+
const fileUrl = pathToFileURL(file).toString();
|
15
|
+
await load(fileUrl);
|
16
|
+
}),
|
17
|
+
),
|
15
18
|
);
|
16
|
-
await unregister();
|
17
19
|
|
18
20
|
return result as CreeveyParamsByStoryId;
|
19
21
|
}
|
package/src/server/utils.ts
CHANGED
@@ -5,6 +5,8 @@ import { dirname } from 'path';
|
|
5
5
|
import { fileURLToPath, pathToFileURL } from 'url';
|
6
6
|
import { createRequire } from 'module';
|
7
7
|
import findCacheDir from 'find-cache-dir';
|
8
|
+
import { register as esmRegister } from 'tsx/esm/api';
|
9
|
+
import { register as cjsRegister } from 'tsx/cjs/api';
|
8
10
|
import { SkipOptions, SkipOption, isDefined, TestData, noop, ServerTest } from '../types.js';
|
9
11
|
import { emitShutdownMessage, sendShutdownMessage } from './messages.js';
|
10
12
|
|
@@ -182,3 +184,23 @@ export function tryToLoadTestsData(filename: string): Partial<Record<string, Ser
|
|
182
184
|
/* noop */
|
183
185
|
}
|
184
186
|
}
|
187
|
+
|
188
|
+
const [nodeVersion] = process.versions.node.split('.').map(Number);
|
189
|
+
export async function loadThroughTSX<T>(
|
190
|
+
callback: (load: (modulePath: string) => Promise<T>) => Promise<T>,
|
191
|
+
): Promise<T> {
|
192
|
+
const unregister = nodeVersion > 18 ? esmRegister() : cjsRegister();
|
193
|
+
|
194
|
+
const result = await callback((modulePath) =>
|
195
|
+
nodeVersion > 18
|
196
|
+
? import(modulePath)
|
197
|
+
: // eslint-disable-next-line @typescript-eslint/no-require-imports
|
198
|
+
Promise.resolve(require(modulePath) as T),
|
199
|
+
);
|
200
|
+
|
201
|
+
// NOTE: `unregister` type is `(() => Promise<void>) | (() => void)`
|
202
|
+
// eslint-disable-next-line @typescript-eslint/await-thenable, @typescript-eslint/no-confusing-void-expression
|
203
|
+
await unregister();
|
204
|
+
|
205
|
+
return result;
|
206
|
+
}
|
package/eslint.config.mjs
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
import globals from 'globals';
|
2
|
-
import js from '@eslint/js';
|
3
|
-
import tseslint from 'typescript-eslint';
|
4
|
-
// @ts-expect-error There is no types in this package
|
5
|
-
import react from 'eslint-plugin-react';
|
6
|
-
import prettierRecommended from 'eslint-plugin-prettier/recommended';
|
7
|
-
|
8
|
-
// TODO Add import plugin after it migrated to eslint 9.x
|
9
|
-
const config = tseslint.config(
|
10
|
-
{ ignores: ['dist/*', 'report/*', 'scripts/*'] },
|
11
|
-
js.configs.recommended,
|
12
|
-
prettierRecommended,
|
13
|
-
/* eslint-disable-next-line */
|
14
|
-
react.configs.flat.recommended,
|
15
|
-
...tseslint.configs.strictTypeChecked,
|
16
|
-
...tseslint.configs.stylisticTypeChecked,
|
17
|
-
{
|
18
|
-
languageOptions: {
|
19
|
-
globals: {
|
20
|
-
...globals.browser,
|
21
|
-
...globals.node,
|
22
|
-
},
|
23
|
-
|
24
|
-
ecmaVersion: 2021,
|
25
|
-
sourceType: 'module',
|
26
|
-
|
27
|
-
parserOptions: {
|
28
|
-
projectService: {
|
29
|
-
allowDefaultProject: ['*.{m,}js'],
|
30
|
-
defaultProject: 'tsconfig.json',
|
31
|
-
},
|
32
|
-
},
|
33
|
-
},
|
34
|
-
settings: {
|
35
|
-
react: {
|
36
|
-
version: 'detect',
|
37
|
-
},
|
38
|
-
},
|
39
|
-
rules: {
|
40
|
-
'react/prop-types': 'off',
|
41
|
-
'@typescript-eslint/restrict-template-expressions': [
|
42
|
-
'error',
|
43
|
-
{
|
44
|
-
allowNumber: true,
|
45
|
-
},
|
46
|
-
],
|
47
|
-
'@typescript-eslint/no-unused-vars': [
|
48
|
-
'error',
|
49
|
-
{
|
50
|
-
args: 'all',
|
51
|
-
argsIgnorePattern: '^_',
|
52
|
-
caughtErrors: 'all',
|
53
|
-
caughtErrorsIgnorePattern: '^_',
|
54
|
-
destructuredArrayIgnorePattern: '^_',
|
55
|
-
varsIgnorePattern: '^_',
|
56
|
-
},
|
57
|
-
],
|
58
|
-
},
|
59
|
-
},
|
60
|
-
);
|
61
|
-
|
62
|
-
export default config;
|
package/webpack.config.mjs
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
import { createRequire } from 'module';
|
2
|
-
import path from 'path';
|
3
|
-
import { fileURLToPath } from 'url';
|
4
|
-
import webpack from 'webpack';
|
5
|
-
|
6
|
-
const _require = createRequire(import.meta.url);
|
7
|
-
/**
|
8
|
-
* @type {import("webpack").Configuration & import("webpack-dev-server").Configuration}
|
9
|
-
*/
|
10
|
-
const config = {
|
11
|
-
entry: [_require.resolve('core-js'), _require.resolve('regenerator-runtime/runtime'), './src/client/web/index.tsx'],
|
12
|
-
output: { path: path.join(path.dirname(fileURLToPath(import.meta.url)), './dist/client/web') },
|
13
|
-
mode: process.env.WEBPACK_SERVE ? 'development' : 'production',
|
14
|
-
module: {
|
15
|
-
rules: [
|
16
|
-
{
|
17
|
-
test: /\.tsx?/,
|
18
|
-
exclude: /node_modules/,
|
19
|
-
use: {
|
20
|
-
loader: 'babel-loader',
|
21
|
-
options: {
|
22
|
-
presets: [
|
23
|
-
'@babel/preset-react',
|
24
|
-
'@babel/preset-typescript',
|
25
|
-
// TODO Don't need, see https://babeljs.io/docs/en/babel-preset-env#usebuiltins-entry
|
26
|
-
['@babel/preset-env', { useBuiltIns: 'entry', corejs: 3 }],
|
27
|
-
],
|
28
|
-
},
|
29
|
-
},
|
30
|
-
},
|
31
|
-
],
|
32
|
-
},
|
33
|
-
resolve: {
|
34
|
-
extensions: ['.tsx', '.ts', '.jsx', '.js'],
|
35
|
-
extensionAlias: {
|
36
|
-
'.js': ['.tsx', '.ts', '.jsx', '.js'],
|
37
|
-
},
|
38
|
-
},
|
39
|
-
devServer: { port: 8000, proxy: [{ path: '/', target: 'http://localhost:3000' }] },
|
40
|
-
...(process.env.WEBPACK_SERVE
|
41
|
-
? { plugins: [new webpack.DefinePlugin({ __CREEVEY_SERVER_PORT__: JSON.stringify('3000') })] }
|
42
|
-
: {}),
|
43
|
-
performance: false,
|
44
|
-
};
|
45
|
-
|
46
|
-
export default config;
|