Skip to content

Commit 7afba07

Browse files
committed
chore: make load private and remove bind:this examples
BREAKING: removed export of 'load' method from both module and instance scopes
1 parent f798b08 commit 7afba07

File tree

5 files changed

+3347
-2364
lines changed

5 files changed

+3347
-2364
lines changed

.eslintrc

+3-28
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,8 @@
11
{
2-
"root": true,
3-
"extends": ["eslint:recommended", "prettier", "prettier/standard"],
4-
"plugins": ["prettier", "html", "svelte3"],
5-
"overrides": [
6-
{
7-
"files": ["**/*.svelte"],
8-
"processor": "svelte3/svelte3"
9-
}
10-
],
2+
"extends": "@kiwi/eslint-config/svelte",
113
"parser": "babel-eslint",
12-
"settings": {
13-
"html/html-extensions": [".html", ".svelte"],
14-
"html/indent": "+2",
15-
"html/report-bad-indent": "warn"
16-
},
17-
"env": {
18-
"browser": true,
19-
"es6": true
20-
},
21-
"parserOptions": {
22-
"ecmaFeatures": {
23-
"modules": true
24-
}
25-
},
26-
"globals": {
27-
"$$props": true
28-
},
294
"rules": {
30-
"no-unused-vars": "off",
31-
"no-unused-labels": "off"
5+
"camelcase": 0,
6+
"import/first": 0
327
}
338
}

Loadable.svelte

+14-9
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010
TIMEOUT: 4,
1111
})
1212
13-
export function findByResolved(resolved) {
14-
for (let [loader, r] of ALL_LOADERS) {
13+
function findByResolved(resolved) {
14+
for (const [loader, r] of ALL_LOADERS) {
1515
if (r === resolved) return loader
1616
}
17+
1718
return null
1819
}
1920
@@ -24,14 +25,15 @@
2425
if (loader) return loader
2526
2627
ALL_LOADERS.set(loadable.loader, resolved)
28+
2729
return loadable.loader
2830
}
2931
3032
export function preloadAll() {
3133
return Promise.all(
3234
Array.from(ALL_LOADERS.keys())
3335
.filter((loader) => !LOADED.has(loader))
34-
.map(async (loader) => load(loader)),
36+
.map((loader) => loadComponent(loader)),
3537
).then(() => {
3638
/** If new loaders have been registered by loaded components, load them next. */
3739
if (ALL_LOADERS.size > LOADED.size) {
@@ -40,17 +42,16 @@
4042
})
4143
}
4244
43-
export async function load(loader, unloader) {
45+
async function loadComponent(loader, unloader) {
4446
const componentModule = await loader()
4547
const component = componentModule.default || componentModule
4648
4749
if (!unloader) {
4850
LOADED.set(loader, component)
4951
}
52+
5053
return component
5154
}
52-
53-
let loadComponent = load
5455
</script>
5556

5657
<script>
@@ -63,21 +64,25 @@
6364
export let component = null
6465
export let error = null
6566
67+
const slots = $$props.$$slots
68+
6669
let load_timer = null
6770
let timeout_timer = null
6871
let state = STATES.INITIALIZED
6972
let componentProps
70-
let slots = $$props.$$slots
7173
let mounted = false
7274
7375
$: {
74-
let { delay, timeout, loader, component, error, ...rest } = $$props
76+
// eslint-disable-next-line no-shadow
77+
const { delay, timeout, loader, component, error, ...rest } = $$props
78+
7579
componentProps = rest
7680
}
7781
7882
const dispatch = createEventDispatcher()
7983
8084
const capture = getContext('svelte-loadable-capture')
85+
8186
if (typeof capture === 'function' && ALL_LOADERS.has(loader)) {
8287
capture(loader)
8388
}
@@ -87,7 +92,7 @@
8792
clearTimeout(timeout_timer)
8893
}
8994
90-
export async function load() {
95+
async function load() {
9196
clearTimers()
9297
9398
if (typeof loader !== 'function') {

example/src/App.svelte

+13-11
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
<script>
22
import Loadable from '../../Loadable.svelte'
33
4-
let retry
5-
6-
const getDelayedLoader = (delay = 3000) => () =>
7-
new Promise((resolve, reject) =>
8-
setTimeout(() => resolve(import('./AsyncComponent.svelte')), delay),
9-
)
10-
11-
const getFailureLoader = (delay = 3000) => () =>
12-
new Promise((resolve, reject) =>
13-
setTimeout(() => reject(new Error('Some error')), delay),
14-
)
4+
const getDelayedLoader =
5+
(delay = 3000) =>
6+
() =>
7+
new Promise((resolve) =>
8+
setTimeout(() => resolve(import('./AsyncComponent.svelte')), delay),
9+
)
10+
11+
const getFailureLoader =
12+
(delay = 3000) =>
13+
() =>
14+
new Promise((resolve, reject) =>
15+
setTimeout(() => reject(new Error('Some error')), delay),
16+
)
1517
</script>
1618

1719
<h1>This one will work</h1>

0 commit comments

Comments
 (0)