Skip to content

Commit 9749d7c

Browse files
committed
perf: update to the latest npm packages
1 parent 2fe0810 commit 9749d7c

11 files changed

+8194
-2946
lines changed

.nvmrc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v16.6.1

.vscode/settings.json

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"files.watcherExclude": {
3+
"**/.git/objects/**": true,
4+
"**/.git/subtree-cache/**": true,
5+
"**/node_modules/*/**": true,
6+
"**/docs/*/**": true,
7+
"**/lib/*/**": true,
8+
"**/dist/*/**": true
9+
}
10+
}

example/adder.js

+11-15
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// same example as https://github.com/cujojs/most#simple-example
22

3-
const { fromEvent, combine } = Servable;
3+
import { fromEvent, combine } from "../lib/index.js";
44

55
const xInput = document.querySelector('input.x');
66
const yInput = document.querySelector('input.y');
@@ -14,18 +14,14 @@ const renderResult = result => {
1414
resultNode.textContent = result
1515
};
1616

17-
const main = () => {
18-
// x represents the current value of xInput
19-
const x = fromEvent('input', xInput).map(toNumber);
20-
21-
// y represents the current value of yInput
22-
const y = fromEvent('input', yInput).map(toNumber);
23-
24-
// result is the live current value of adding x and y
25-
const result = combine([x, y], add);
26-
27-
// Observe the result value by rendering it to the resultNode
28-
result.subscribe(renderResult);
29-
};
17+
// x represents the current value of xInput
18+
const x = fromEvent('input', xInput).map(toNumber);
19+
20+
// y represents the current value of yInput
21+
const y = fromEvent('input', yInput).map(toNumber);
22+
23+
// result is the live current value of adding x and y
24+
const result = combine([x, y], add);
3025

31-
main();
26+
// Observe the result value by rendering it to the resultNode
27+
result.subscribe(renderResult);

example/dragdrop.js

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
var parent = document.body;
2-
var widget = document.getElementById("widget");
1+
import { Observable } from "../lib/index.js";
32

4-
var mouseDowns$ = Servable.Observable.fromEvent("mousedown", widget);
5-
var parentMouseMoves$ = Servable.Observable.fromEvent("mousemove", parent);
6-
var parentMouseUps$ = Servable.Observable.fromEvent("mouseup", parent);
3+
const parent = document.body;
4+
const widget = document.getElementById("widget");
75

8-
var drags$ = mouseDowns$
6+
const mouseDowns$ = Observable.fromEvent("mousedown", widget);
7+
const parentMouseMoves$ = Observable.fromEvent("mousemove", parent);
8+
const parentMouseUps$ = Observable.fromEvent("mouseup", parent);
9+
10+
const drags$ = mouseDowns$
911
.flatMap(() => parentMouseMoves$.takeUntil(parentMouseUps$))
1012
.do((e) => {
1113
widget.style.left = e.clientX + "px";
1214
widget.style.top = e.clientY + "px";
1315
});
1416

15-
var subscription =
16-
drags$.subscribe();
17+
const subscription = drags$.subscribe();

example/index.html

+4-6
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,9 @@ <h3>Log</h3>
4949
<p id="log"></p>
5050
</div>
5151
</div>
52-
53-
<script type="text/javascript" src="../dist/index.js"></script>
54-
<script type="text/javascript" src="logger.js"></script>
55-
<script type="text/javascript" src="index.js"></script>
56-
<script type="text/javascript" src="adder.js"></script>
57-
<script type="text/javascript" src="dragdrop.js"></script>
52+
<script type="module" type="text/javascript" src="./logger.js"></script>
53+
<script type="module" type="text/javascript" src="./index.js"></script>
54+
<script type="module" type="text/javascript" src="./adder.js"></script>
55+
<script type="module" type="text/javascript" src="./dragdrop.js"></script>
5856
</body>
5957
</html>

example/index.js

+13-12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
const {Observable} = Servable;
1+
import { Observable } from "../lib/index.js";
2+
import { logger } from "./logger.js";
23

34
const countObservable$ = Observable.interval(1000, 1).take(4);
45
const countObservable2$ = Observable.interval(500, 5);
@@ -10,15 +11,15 @@ Observable.zip([
1011
countObservable2$.take(7),
1112
]).subscribe({
1213
next(number) {
13-
console.log('Next numbers from countSubscription: ' + number);
14+
logger.log('Next numbers from countSubscription: ' + number);
1415
},
1516

1617
error(errors) {
17-
console.warn('I HAVE ERRORS', errors)
18+
logger.warn('I HAVE ERRORS', errors)
1819
},
1920

2021
complete() {
21-
console.log('I AM COMPLETE');
22+
logger.log('I AM COMPLETE');
2223
}
2324
});
2425

@@ -27,7 +28,7 @@ const inputObservable$ = Observable.fromEvent('input', document.getElementById('
2728
const divReverse = document.getElementById('myTextReverse');
2829
const div = document.getElementById('myText');
2930

30-
console.log(inputObservable$);
31+
logger.log(inputObservable$);
3132

3233
inputObservable$
3334
.map((text) => text.split('').reverse().join(''))
@@ -40,22 +41,22 @@ inputObservable$
4041

4142
const ajaxCall$ = Observable
4243
.of('../package.json')
43-
.do(fileName => console.log('Request ' + fileName))
44+
.do(fileName => logger.log('Request ' + fileName))
4445
.flatMap(fileName => Observable.ajax(fileName))
4546
.map(response => response.toJSON())
46-
.do(console.log.bind(console, 'Value of ./package.json: '));
47+
.do(logger.log.bind(logger, 'Value of ./package.json: '));
4748

4849
const ajaxSubscription = ajaxCall$
4950
.subscribe({
50-
next: () => console.log('Finished request to ./package.json'),
51-
error: (e) => console.warn('ERROR', e, e.response)
51+
next: () => logger.log('Finished request to ./package.json'),
52+
error: (e) => logger.warn('ERROR', e, e.response)
5253
});
5354

54-
console.error('Cancel one request to package.json')
55+
logger.error('Cancel one request to package.json')
5556
ajaxSubscription.unsubscribe();
5657

5758
ajaxCall$
5859
.subscribe({
59-
next: () => console.log('Finished request to ./package.json'),
60-
error: (e) => console.warn('ERROR', e, e.response)
60+
next: () => logger.log('Finished request to ./package.json'),
61+
error: (e) => logger.warn('ERROR', e, e.response)
6162
});

example/logger.js

+40-35
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,47 @@
1-
function Logger (element) {
2-
this.element = element;
3-
}
4-
5-
window.originalConsole = window.console;
6-
Logger.prototype = Object.keys(window.originalConsole).reduce((memo, consoleFn) => ({
7-
...memo,
8-
[`_${consoleFn}`]: typeof window.originalConsole[consoleFn] === 'function' ? window.originalConsole[consoleFn].bind(window.originalConsole) : window.originalConsole[consoleFn],
9-
}), {});
10-
11-
Logger.prototype.log = function () {
12-
const preTag = document.createElement('pre');
13-
14-
this._log.apply(this, arguments);
15-
16-
if (!this.element) {
17-
this._error('No element set', this.element)
1+
export class Logger {
2+
constructor (elementSelector = '#log', logger = console) {
3+
this.elementSelector = elementSelector;
4+
this.logger = logger;
185
}
196

20-
this.element.appendChild(preTag);
21-
22-
preTag.textContent = Array.from(arguments).map((arg) => JSON.stringify(arg, null, 2)).join(', ');
23-
24-
preTag.classList.add('bg-info');
25-
preTag.style.maxHeight = '25vh';
7+
get element () {
8+
if (!this._element) {
9+
this._element = document.querySelector(this.elementSelector);
10+
}
2611

27-
return preTag;
28-
};
29-
30-
Logger.prototype.warn = function () {
31-
const preTag = this.log.apply(this, arguments);
12+
return this._element;
13+
}
3214

33-
preTag.classList.add('bg-warning');
34-
};
15+
log(...args) {
16+
const preTag = document.createElement('pre');
17+
18+
this.logger.log.apply(this.logger, args);
19+
20+
if (!this.element) {
21+
this.logger.error.call(this.logger, 'No element set', this.element)
22+
}
23+
24+
this.element.appendChild(preTag);
25+
26+
preTag.textContent = Array.from(args).map((arg) => JSON.stringify(arg, null, 2)).join(', ');
27+
28+
preTag.classList.add('bg-info');
29+
preTag.style.maxHeight = '25vh';
30+
31+
return preTag;
32+
}
3533

36-
Logger.prototype.error = function () {
37-
const preTag = this.log.apply(this, arguments);
34+
warn(...args) {
35+
const preTag = this.log(...args);
36+
37+
preTag.classList.add('bg-warning');
38+
}
3839

39-
preTag.classList.add('bg-danger');
40-
};
40+
error(...args) {
41+
const preTag = this.log(...args);
42+
43+
preTag.classList.add('bg-danger');
44+
}
45+
}
4146

42-
window.console = new Logger(document.getElementById('log'));
47+
export const logger = new Logger();

package.json

+27-34
Original file line numberDiff line numberDiff line change
@@ -3,53 +3,46 @@
33
"version": "0.4.2",
44
"description": "From scratch observable",
55
"main": "lib/index.js",
6-
"jsnext:main": "src/index.js",
6+
"type": "module",
77
"scripts": {
88
"test": "jest",
9-
"build": "rimraf lib dist && yarn build:lib && yarn rollup && uglifyjs dist/index.js -c \"warnings=false\" --comments -m -o dist/index.min.js --verbose",
10-
"build:lib": "babel src --out-dir lib",
9+
"prebuild": "rimraf dist lib",
10+
"build": "yarn rollup",
1111
"watch": "yarn rollup -w",
1212
"rollup": "rollup -c",
1313
"release": "node release.js",
1414
"exampleDemo": "yarn build && yarn docs",
15-
"docs": "yarn documentation build src/** -f html -g -o .",
16-
"server": "http-server"
15+
"predocs": "rimraf docs",
16+
"docs": "documentation build src/** --format html --document-exported --theme node_modules/clean-documentation-theme -g -o docs",
17+
"serve": "npx serve"
1718
},
19+
"author": "Naftali Lubin",
20+
"license": "MIT",
21+
"bugs": {
22+
"url": "https://github.com/maniator/servable/issues"
23+
},
24+
"homepage": "https://github.com/maniator/servable#readme",
1825
"engines": {
19-
"yarn": ">=1 <2",
20-
"node": ">=10"
26+
"node": ">=12"
2127
},
2228
"repository": {
2329
"type": "git",
2430
"url": "git+https://github.com/maniator/servable.git"
2531
},
26-
"author": "Neal Lubin",
27-
"license": "MIT",
28-
"bugs": {
29-
"url": "https://github.com/maniator/servable/issues"
30-
},
31-
"homepage": "https://github.com/maniator/servable#readme",
3232
"devDependencies": {
33-
"@babel/cli": "7.1.5",
34-
"@babel/core": "7.1.6",
35-
"@babel/preset-env": "7.1.6",
36-
"documentation": "9.0.0-alpha.1",
37-
"http-server": "^0.10.0",
38-
"inquirer": "^3.0.6",
39-
"jest": "23.6.0",
40-
"rimraf": "^2.6.1",
41-
"rollup": "0.41.6",
42-
"rollup-plugin-babel": "4.0.3",
43-
"rollup-plugin-filesize": "^1.3.2",
44-
"rollup-plugin-license": "^0.3.0",
45-
"rollup-plugin-node-globals": "^1.1.0",
46-
"rollup-plugin-node-resolve": "^3.0.0",
47-
"rollup-watch": "^3.2.2",
48-
"semver": "^6.1.0",
49-
"shelljs": "^0.8.3",
50-
"uglify-js": "^3.0.3"
51-
},
52-
"resolutions": {
53-
"babel-core": "7.0.0-bridge.0"
33+
"@babel/cli": "7.14.8",
34+
"@babel/core": "7.15.0",
35+
"@babel/preset-env": "7.15.0",
36+
"clean-documentation-theme": "^0.5.2",
37+
"documentation": "13.2.5",
38+
"inquirer": "^8.1.2",
39+
"jest": "27.0.6",
40+
"rimraf": "^3.0.2",
41+
"rollup": "2.56.0",
42+
"rollup-plugin-babel": "4.4.0",
43+
"rollup-plugin-filesize": "^9.1.1",
44+
"rollup-plugin-terser": "^7.0.2",
45+
"semver": "^7.3.5",
46+
"shelljs": "^0.8.3"
5447
}
5548
}

release.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,8 @@ inquirer.prompt(questions).then(function(answers) {
4242
}
4343
console.log('');
4444

45-
// run('npm test', dryRun) &&
46-
run('yarn build', dryRun) &&
4745
run(`npm version ${newVerison}`, dryRun) &&
46+
run('yarn build', dryRun) &&
4847
run('git push origin --tags', dryRun) &&
4948
run('npm publish', dryRun);
5049
});

0 commit comments

Comments
 (0)