Skip to content

Commit e897f50

Browse files
authored
chore: update dependencies (#159)
1 parent 18c83d5 commit e897f50

10 files changed

+3674
-5233
lines changed

.eslintrc.json

+9-4
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@
2424
}
2525
],
2626
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
27-
"@typescript-eslint/consistent-type-imports": [
28-
"error",
29-
{"prefer": "type-imports", "fixStyle": "separate-type-imports"}
30-
],
3127
"jsx-a11y/no-autofocus": [
3228
"error",
3329
{
@@ -36,6 +32,15 @@
3632
]
3733
},
3834
"overrides": [
35+
{
36+
"files": ["**/*.tsx?"],
37+
"rules": {
38+
"@typescript-eslint/consistent-type-imports": [
39+
"error",
40+
{"prefer": "type-imports", "fixStyle": "separate-type-imports"}
41+
]
42+
}
43+
},
3944
{
4045
"files": ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"],
4146
"extends": ["plugin:testing-library/react"],

.storybook/main.ts

+29-1
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,42 @@
11
import type {StorybookConfig} from '@storybook/react-webpack5';
2+
import * as sass from 'sass';
23

34
const config: StorybookConfig = {
45
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(ts|tsx)'],
56
addons: [
6-
'@storybook/preset-scss',
77
{name: '@storybook/addon-essentials', options: {backgrounds: false}},
88
'@storybook/addon-a11y',
99
'./theme-addon/register.tsx',
1010
'@storybook/addon-webpack5-compiler-babel',
1111
'@storybook/addon-storysource',
12+
'@storybook/addon-styling-webpack',
13+
{
14+
name: '@storybook/addon-styling-webpack',
15+
options: {
16+
rules: [
17+
{
18+
test: /\.css$/,
19+
sideEffects: true,
20+
use: ['style-loader', 'css-loader'],
21+
},
22+
{
23+
test: /\.scss$/,
24+
sideEffects: true,
25+
use: [
26+
'style-loader',
27+
{
28+
loader: 'css-loader',
29+
options: {importLoaders: 1},
30+
},
31+
{
32+
loader: 'sass-loader',
33+
options: {implementation: sass},
34+
},
35+
],
36+
},
37+
],
38+
},
39+
},
1240
],
1341
framework: '@storybook/react-webpack5',
1442
typescript: {

.storybook/preview.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// eslint-disable-next-line import/order
2-
import '@gravity-ui/uikit/styles/styles.scss';
2+
import '@gravity-ui/uikit/styles/styles.css';
33

44
import React from 'react';
55

gulpfile.js

-62
This file was deleted.

gulpfile.mjs

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
import path from 'node:path';
2+
3+
import {addVirtualFile, createTypescriptProject} from '@gravity-ui/gulp-utils';
4+
import {dest, parallel, series, src, task} from 'gulp';
5+
import gulpSass from 'gulp-sass';
6+
import sourcemaps from 'gulp-sourcemaps';
7+
import * as rimraf from 'rimraf';
8+
import * as sass from 'sass';
9+
10+
const BUILD_DIR = path.resolve('dist');
11+
const sassLoader = gulpSass(sass);
12+
13+
task('clean', (done) => {
14+
rimraf.sync(BUILD_DIR);
15+
done();
16+
});
17+
18+
async function compileTs(modules = false) {
19+
const tsProject = await createTypescriptProject({
20+
compilerOptions: {
21+
declaration: true,
22+
...(modules ? undefined : {verbatimModuleSyntax: false}),
23+
module: modules ? 'esnext' : 'NodeNext',
24+
moduleResolution: modules ? 'bundler' : 'NodeNext',
25+
},
26+
});
27+
28+
const transformers = [
29+
tsProject.customTransformers.transformScssImports,
30+
tsProject.customTransformers.transformLocalModules,
31+
];
32+
33+
return new Promise((resolve) => {
34+
src([
35+
'src/**/*.{ts,tsx}',
36+
'!src/demo/**/*',
37+
'!src/**/__stories__/**/*',
38+
'!src/**/__tests__/**/*',
39+
'!src/**/*.test.{ts,tsx}',
40+
])
41+
.pipe(sourcemaps.init())
42+
.pipe(
43+
tsProject({
44+
customTransformers: {
45+
before: transformers,
46+
afterDeclarations: transformers,
47+
},
48+
}),
49+
)
50+
.pipe(sourcemaps.write('.', {includeContent: true, sourceRoot: '../../src'}))
51+
.pipe(
52+
addVirtualFile({
53+
fileName: 'package.json',
54+
text: JSON.stringify({type: modules ? 'module' : 'commonjs'}),
55+
}),
56+
)
57+
.pipe(dest(path.resolve(BUILD_DIR, modules ? 'esm' : 'cjs')))
58+
.on('end', resolve);
59+
});
60+
}
61+
62+
task('compile-to-esm', () => {
63+
return compileTs(true);
64+
});
65+
66+
task('compile-to-cjs', () => {
67+
return compileTs();
68+
});
69+
70+
task('copy-i18n', () => {
71+
return src(['src/**/i18n/*.json'])
72+
.pipe(dest(path.resolve(BUILD_DIR, 'esm')))
73+
.pipe(dest(path.resolve(BUILD_DIR, 'cjs')));
74+
});
75+
76+
task('styles', () => {
77+
return src(['src/**/*.scss', '!src/demo/**/*', '!src/**/__stories__/**/*'])
78+
.pipe(sourcemaps.init())
79+
.pipe(sassLoader({loadPaths: ['./node_modules/']}).on('error', sassLoader.logError))
80+
.pipe(sourcemaps.write('.'))
81+
.pipe(dest(path.resolve(BUILD_DIR, 'esm')))
82+
.pipe(dest(path.resolve(BUILD_DIR, 'cjs')));
83+
});
84+
85+
task(
86+
'build',
87+
series(['clean', parallel(['compile-to-esm', 'compile-to-cjs']), 'copy-i18n', 'styles']),
88+
);
89+
90+
task('default', series(['build']));

jest.config.ts jest.config.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import type {Config} from 'jest';
2-
3-
const config: Config = {
1+
/** @type {import('ts-jest').JestConfigWithTsJest} */
2+
const config = {
43
verbose: true,
54
moduleFileExtensions: ['js', 'json', 'ts', 'tsx'],
65
rootDir: '.',

0 commit comments

Comments
 (0)