1
1
import validatePackgeName from "validate-npm-package-name" ;
2
2
import type { ResultMessage } from "../worker/worker.ts" ;
3
3
import { subscribeRenderer } from "./renderer.ts" ;
4
- import {
5
- updateState ,
6
- type PackageInfo ,
7
- type ParsedPackageSpec ,
8
- getState ,
9
- subscribe ,
10
- type State ,
11
- deserializeState ,
12
- setState ,
13
- serializeState ,
14
- } from "./state.ts" ;
4
+ import { updateState , type PackageInfo , type ParsedPackageSpec , getState , subscribe , type State } from "./state.ts" ;
15
5
import { shallowEqual } from "./utils/shallowEqual.ts" ;
16
6
17
7
// Good grief https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
@@ -25,11 +15,17 @@ worker.onmessage = async (event: MessageEvent<ResultMessage>) => {
25
15
state . message = undefined ;
26
16
} ) ;
27
17
28
- const state = getState ( ) ;
29
- const serializedState = await serializeState ( state ) ;
30
18
const params = new URLSearchParams ( location . search ) ;
31
- params . set ( "s" , serializedState ) ;
32
- history . replaceState ( null , "" , `?${ params } ` ) ;
19
+ const state = getState ( ) ;
20
+ if ( state . packageInfo . parsed ) {
21
+ params . set (
22
+ "p" ,
23
+ `${ state . packageInfo . parsed . packageName } ${
24
+ state . packageInfo . info ?. version ? `@${ state . packageInfo . info . version } ` : ""
25
+ } `
26
+ ) ;
27
+ history . replaceState ( null , "" , `?${ params } ` ) ;
28
+ }
33
29
} ;
34
30
35
31
subscribeRenderer ( {
@@ -45,22 +41,23 @@ subscribeRenderer({
45
41
subscribe ( debounce ( getPackageInfo , 300 ) ) ;
46
42
47
43
if ( location . search ) {
44
+ const packageNameInput = document . getElementById ( "package-spec" ) as HTMLInputElement ;
48
45
const params = new URLSearchParams ( location . search ) ;
49
- const serializedState = params . get ( "s" ) ;
50
- if ( serializedState ) {
51
- deserializeState ( serializedState ) . then ( ( state ) => {
52
- const packageNameInput = document . getElementById ( "package-spec" ) as HTMLInputElement ;
53
- if ( state . packageInfo . parsed ) {
54
- packageNameInput . value = `${ state . packageInfo . parsed . packageName } ${
55
- state . packageInfo . info ?. version ? `@${ state . packageInfo . info . version } ` : ""
56
- } `;
46
+ const packageSpec = params . get ( "p" ) ;
47
+ if ( packageSpec ) {
48
+ packageNameInput . value = packageSpec ;
49
+ onPackageNameInput ( packageSpec ) ;
50
+ getPackageInfo ( ) . then ( ( ) => {
51
+ const info = getState ( ) . packageInfo . info ;
52
+ console . log ( info ) ;
53
+ if ( info && info . size && info . size < 1_000_000 && ! navigator . connection ?. saveData ) {
54
+ onCheck ( ) ;
57
55
}
58
- setState ( state ) ;
59
56
} ) ;
60
57
}
61
58
}
62
59
63
- async function onPackageNameInput ( value : string ) {
60
+ function onPackageNameInput ( value : string ) {
64
61
value = value . trim ( ) ;
65
62
if ( ! value ) {
66
63
updateState ( ( state ) => {
0 commit comments