Skip to content

Commit e67f64c

Browse files
committed
Merge branch 'clean' of github.com:nihil-pro/js-framework-benchmark into nihil-pro-clean
2 parents 85e869e + 7fe669a commit e67f64c

File tree

11 files changed

+53
-67
lines changed

11 files changed

+53
-67
lines changed

frameworks/keyed/preact-kr-observable/package-lock.json

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frameworks/keyed/preact-kr-observable/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"url": "https://github.com/krausest/js-framework-benchmark.git"
2020
},
2121
"dependencies": {
22-
"kr-observable": "1.0.39",
22+
"kr-observable": "2.0.0",
2323
"preact": "^10.25.0",
2424
"react": "18.2.0",
2525
"react-dom": "18.2.0"

frameworks/keyed/preact-kr-observable/rollup.config.mjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export default defineConfig({
3838
input: 'src/Main.jsx',
3939
output: {
4040
file: 'dist/main.js',
41-
format: 'commonjs',
41+
// format: 'commonjs',
4242
},
4343
plugins,
4444
});

frameworks/keyed/preact-kr-observable/src/RowsStore.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Observable } from 'kr-observable';
22
import { buildData } from './data';
33

44
export class RowsStore extends Observable {
5-
static shallow = ['rows']
5+
static shallow = new Set(['rows'])
66
rows = [];
77

88
delete(e) {

frameworks/keyed/preact-kr-observable/src/data.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,14 @@ const random = (max) => Math.round(Math.random() * 1000) % max;
6464

6565
export const buildData = (count) => {
6666
const data = [];
67+
const ignore = new Set(['id'])
68+
const shallow = new Set(['label', 'selected'])
6769
for (let i = 0; i < count; i++) {
68-
const d = {
70+
data.push(makeObservable({
6971
id: id++,
7072
label: `${adjectives[random(adjectives.length)]} ${colours[random(colours.length)]} ${nouns[random(nouns.length)]}`,
7173
selected: false
72-
}
73-
74-
data.push(makeObservable(d, ['id']))
74+
}, ignore, shallow))
7575
}
7676
return data;
7777
};

frameworks/keyed/react-kr-observable/package-lock.json

+19-37
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frameworks/keyed/react-kr-observable/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
"url": "https://github.com/krausest/js-framework-benchmark.git"
2020
},
2121
"dependencies": {
22-
"kr-observable": "1.0.39",
23-
"react": "18.3.1",
24-
"react-dom": "18.3.1"
22+
"kr-observable": "2.0.0",
23+
"react": "19.0.0",
24+
"react-dom": "19.0.0"
2525
},
2626
"devDependencies": {
2727
"@babel/core": "7.21.8",

frameworks/keyed/react-kr-observable/rollup.config.mjs

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import terser from '@rollup/plugin-terser';
88
const plugins = [
99
commonjs(),
1010
replace({
11-
'process.env.NODE_ENV': JSON.stringify('production'),
11+
'process.env.NODE_ENV': JSON.stringify('production'), //production
1212
}),
1313
babel({
1414
exclude: 'node_modules/**',
15-
babelHelpers: 'bundled',
15+
// babelHelpers: 'bundled',
1616
presets: [
17-
'@babel/preset-env',
17+
// '@babel/preset-env',
1818
['@babel/preset-react', { runtime: 'automatic' }],
1919
],
2020
}),
@@ -29,7 +29,7 @@ export default defineConfig({
2929
input: 'src/Main.jsx',
3030
output: {
3131
file: 'dist/main.js',
32-
format: 'iife',
32+
// format: 'iife',
3333
},
3434
plugins,
3535
});

frameworks/keyed/react-kr-observable/src/Row.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ export const Row = observer(function row({ data }) {
66
<tr className={data.selected ? 'danger' : ''}>
77
<td className="col-md-1">{data.id}</td>
88
<td className="col-md-4">
9-
<a id={data.id} onClick={rowsStore.select}>{data.label}</a>
9+
<a id={data.id} onClick={() => rowsStore.select(data.id)}>{data.label}</a>
1010
</td>
1111
<td className="col-md-1">
12-
<a onClick={rowsStore.delete}>
12+
<a onClick={() => rowsStore.delete(data.id)}>
1313
<span
1414
id={data.id}
1515
className="glyphicon glyphicon-remove"

frameworks/keyed/react-kr-observable/src/RowsStore.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import { Observable } from 'kr-observable';
22
import { buildData } from './data';
33

44
export class RowsStore extends Observable {
5-
static shallow = ['rows']
5+
static shallow = new Set(['rows'])
66
rows = [];
77

8-
delete(e) {
9-
const rowIndexToDelete = this.rows.findIndex((row) => row.id === +e.target.id);
8+
delete(id) {
9+
const rowIndexToDelete = this.rows.findIndex(row => row.id === id);
1010
this.rows.splice(rowIndexToDelete, 1);
1111
};
1212

@@ -19,14 +19,14 @@ export class RowsStore extends Observable {
1919
};
2020

2121
update() {
22-
for (let i = 0; i < this.rows.length; i += 10) {
22+
const length = this.rows.length;
23+
for (let i = 0; i < length; i += 10) {
2324
this.rows[i].label += ' !!!';
2425
}
2526
};
2627

27-
select(e) {
28-
// this.selectedRowId = rowId;
29-
this.rows.forEach(row => row.selected = row.id === +e.target.id)
28+
select(id) {
29+
this.rows.forEach(row => row.selected = row.id === id)
3030
};
3131

3232
runLots() {
@@ -49,4 +49,4 @@ export class RowsStore extends Observable {
4949

5050

5151

52-
export const rowsStore = new RowsStore()
52+
export const rowsStore = new RowsStore()

frameworks/keyed/react-kr-observable/src/data.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const colours = [
4343
];
4444

4545
const nouns = [
46-
'table',
46+
'pencil',
4747
'chair',
4848
'house',
4949
'bbq',
@@ -64,12 +64,16 @@ const random = (max) => Math.round(Math.random() * 1000) % max;
6464

6565
export const buildData = (count) => {
6666
const data = [];
67+
const ignore = new Set(['id'])
68+
const shallow = new Set(['label', 'selected'])
6769
for (let i = 0; i < count; i++) {
6870
data.push(makeObservable({
6971
id: id++,
7072
label: `${adjectives[random(adjectives.length)]} ${colours[random(colours.length)]} ${nouns[random(nouns.length)]}`,
7173
selected: false
72-
}, ['id']))
74+
}, ignore, shallow))
7375
}
76+
// const t1 = performance.now();
77+
// console.log(`Call to doSomething took ${t1 - t0} milliseconds.`);
7478
return data;
7579
};

0 commit comments

Comments
 (0)