Skip to content

Commit d49e2ae

Browse files
authored
chore: explicit reexports (#10970)
* explicit re-exports * explicit re-exports * regenerate types
1 parent 8a758d8 commit d49e2ae

File tree

22 files changed

+192
-182
lines changed

22 files changed

+192
-182
lines changed

packages/svelte/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,9 @@
137137
"knip": {
138138
"entry": [
139139
"src/*/index.js",
140-
"src/*/public.d.ts"
140+
"src/index-client.ts",
141+
"src/index-server.ts",
142+
"src/index.d.ts"
141143
],
142144
"project": [
143145
"src/**"

packages/svelte/src/compiler/phases/2-analyze/utils/push_array.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

packages/svelte/src/compiler/phases/3-transform/client/transform-client.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ export function client_component(source, analysis, options) {
275275

276276
const setter = b.set(key, [
277277
b.stmt(b.call(b.id(name), b.id('$$value'))),
278-
b.stmt(b.call('$.flushSync'))
278+
b.stmt(b.call('$.flush_sync'))
279279
]);
280280

281281
if (analysis.runes && binding.initial) {

packages/svelte/src/compiler/utils/mapped_code.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ export function merge_with_preprocessor_map(result, options, source_name) {
412412
* @param {string} from
413413
* @param {string} to
414414
*/
415-
export function get_relative_path(from, to) {
415+
function get_relative_path(from, to) {
416416
// Don't use node's utils here to ensure the compiler is usable in a browser environment
417417
const from_parts = from.split(/[/\\]/);
418418
const to_parts = to.split(/[/\\]/);

packages/svelte/src/constants.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ export const DOMBooleanAttributes = [
9595
];
9696

9797
export const namespace_svg = 'http://www.w3.org/2000/svg';
98-
export const namespace_html = 'http://www.w3.org/1999/xhtml';
9998

10099
// while `input` is also an interactive element, it is never moved by the browser, so we don't need to check for it
101100
export const interactive_elements = new Set([

packages/svelte/src/index-client.js

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { current_component_context, untrack } from './internal/client/runtime.js';
1+
import { current_component_context, flush_sync, untrack } from './internal/client/runtime.js';
22
import { is_array } from './internal/client/utils.js';
33
import { user_effect } from './internal/client/index.js';
44

@@ -167,19 +167,24 @@ function init_update_callbacks(context) {
167167
return (context.u ??= { a: [], b: [], m: [] });
168168
}
169169

170-
// TODO bring implementations in here
171-
// (except probably untrack — do we want to expose that, if there's also a rune?)
170+
/**
171+
* Synchronously flushes any pending state changes and those that result from it.
172+
* @param {() => void} [fn]
173+
* @returns {void}
174+
*/
175+
export function flushSync(fn) {
176+
flush_sync(fn);
177+
}
178+
179+
export { unstate } from './internal/client/proxy.js';
180+
181+
export { hydrate, mount, unmount } from './internal/client/render.js';
182+
172183
export {
173-
flushSync,
174-
mount,
175-
hydrate,
176-
tick,
177-
unmount,
178-
untrack,
179-
unstate,
180-
createRoot,
181-
hasContext,
182184
getContext,
183185
getAllContexts,
184-
setContext
185-
} from './internal/client/index.js';
186+
hasContext,
187+
setContext,
188+
tick,
189+
untrack
190+
} from './internal/client/runtime.js';

packages/svelte/src/index-server.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ export {
1111
setContext,
1212
tick,
1313
unmount,
14-
untrack,
15-
createRoot
14+
untrack
1615
} from './index-client.js';
1716

1817
/** @returns {void} */

packages/svelte/src/internal/client/dev/ownership.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const boundaries = {};
99
const chrome_pattern = /at (?:.+ \()?(.+):(\d+):(\d+)\)?$/;
1010
const firefox_pattern = /@(.+):(\d+):(\d+)$/;
1111

12-
export function get_stack() {
12+
function get_stack() {
1313
const stack = new Error().stack;
1414
if (!stack) return null;
1515

packages/svelte/src/internal/client/dom/blocks/await.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { is_promise } from '../../../common.js';
22
import {
33
current_component_context,
4-
flushSync,
4+
flush_sync,
55
set_current_component_context,
66
set_current_effect,
77
set_current_reaction
@@ -48,7 +48,7 @@ export function await_block(anchor, get_input, pending_fn, then_fn, catch_fn) {
4848

4949
// without this, the DOM does not update until two ticks after the promise,
5050
// resolves which is unexpected behaviour (and somewhat irksome to test)
51-
flushSync();
51+
flush_sync();
5252

5353
return e;
5454
}

packages/svelte/src/internal/client/dom/elements/attributes.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ function split_srcset(srcset) {
273273
* @param {string | undefined | null} srcset
274274
* @returns {boolean}
275275
*/
276-
export function srcset_url_equal(element, srcset) {
276+
function srcset_url_equal(element, srcset) {
277277
var element_urls = split_srcset(element.srcset);
278278
var urls = split_srcset(srcset ?? '');
279279

packages/svelte/src/internal/client/dom/elements/custom-element.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { createClassComponent } from '../../../../legacy/legacy-client.js';
22
import { destroy_effect, render_effect } from '../../reactivity/effects.js';
33
import { append } from '../template.js';
4-
import { define_property } from '../../utils.js';
4+
import { define_property, object_keys } from '../../utils.js';
55

66
/**
77
* @typedef {Object} CustomElementPropDefinition
@@ -145,7 +145,7 @@ if (typeof HTMLElement === 'function') {
145145
// Reflect component props as attributes
146146
this.$$me = render_effect(() => {
147147
this.$$r = true;
148-
for (const key of Object.keys(this.$$c)) {
148+
for (const key of object_keys(this.$$c)) {
149149
if (!this.$$p_d[key]?.reflect) continue;
150150
this.$$d[key] = this.$$c[key];
151151
const attribute_value = get_custom_element_value(
@@ -205,7 +205,7 @@ if (typeof HTMLElement === 'function') {
205205
*/
206206
$$g_p(attribute_name) {
207207
return (
208-
Object.keys(this.$$p_d).find(
208+
object_keys(this.$$p_d).find(
209209
(key) =>
210210
this.$$p_d[key].attribute === attribute_name ||
211211
(!this.$$p_d[key].attribute && key.toLowerCase() === attribute_name)
@@ -290,12 +290,12 @@ export function create_custom_element(
290290
this.$$p_d = props_definition;
291291
}
292292
static get observedAttributes() {
293-
return Object.keys(props_definition).map((key) =>
293+
return object_keys(props_definition).map((key) =>
294294
(props_definition[key].attribute || key).toLowerCase()
295295
);
296296
}
297297
};
298-
Object.keys(props_definition).forEach((prop) => {
298+
object_keys(props_definition).forEach((prop) => {
299299
define_property(Class.prototype, prop, {
300300
get() {
301301
return this.$$c && prop in this.$$c ? this.$$c[prop] : this.$$d[prop];

packages/svelte/src/internal/client/dom/task.js

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,6 @@ function process_raf_task() {
2222
run_all(tasks);
2323
}
2424

25-
/**
26-
* @param {() => void} fn
27-
* @returns {void}
28-
*/
29-
export function schedule_raf_task(fn) {
30-
if (!is_raf_queued) {
31-
is_raf_queued = true;
32-
requestAnimationFrame(process_raf_task);
33-
}
34-
current_raf_tasks.push(fn);
35-
}
36-
3725
/**
3826
* Synchronously run any queued tasks.
3927
*/

packages/svelte/src/internal/client/index.js

Lines changed: 111 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,106 @@
1+
export { add_owner, mark_module_start, mark_module_end } from './dev/ownership.js';
2+
export { await_block as await } from './dom/blocks/await.js';
3+
export { if_block as if } from './dom/blocks/if.js';
4+
export { key_block as key } from './dom/blocks/key.js';
5+
export { css_props } from './dom/blocks/css-props.js';
6+
export { each_keyed, each_indexed } from './dom/blocks/each.js';
7+
export { html } from './dom/blocks/html.js';
8+
export { snippet } from './dom/blocks/snippet.js';
9+
export { component } from './dom/blocks/svelte-component.js';
10+
export { element } from './dom/blocks/svelte-element.js';
11+
export { head } from './dom/blocks/svelte-head.js';
12+
export { action } from './dom/elements/actions.js';
13+
export {
14+
remove_input_attr_defaults,
15+
set_attribute,
16+
set_attributes,
17+
set_custom_element_data,
18+
set_dynamic_element_attributes,
19+
set_xlink_attribute
20+
} from './dom/elements/attributes.js';
21+
export { set_class, set_svg_class, toggle_class } from './dom/elements/class.js';
22+
export { event, delegate } from './dom/elements/events.js';
23+
export { autofocus, remove_textarea_child } from './dom/elements/misc.js';
24+
export { set_style } from './dom/elements/style.js';
25+
export { animation, transition } from './dom/elements/transitions.js';
26+
export { bind_checked, bind_files, bind_group, bind_value } from './dom/elements/bindings/input.js';
27+
export {
28+
bind_buffered,
29+
bind_current_time,
30+
bind_ended,
31+
bind_muted,
32+
bind_paused,
33+
bind_playback_rate,
34+
bind_played,
35+
bind_ready_state,
36+
bind_seekable,
37+
bind_seeking,
38+
bind_volume
39+
} from './dom/elements/bindings/media.js';
40+
export { bind_online } from './dom/elements/bindings/navigator.js';
41+
export { bind_prop } from './dom/elements/bindings/props.js';
42+
export { bind_select_value, init_select, select_option } from './dom/elements/bindings/select.js';
43+
export { bind_element_size, bind_resize_observer } from './dom/elements/bindings/size.js';
44+
export { bind_this } from './dom/elements/bindings/this.js';
45+
export { bind_content_editable, bind_property } from './dom/elements/bindings/universal.js';
46+
export { bind_window_scroll, bind_window_size } from './dom/elements/bindings/window.js';
47+
export {
48+
once,
49+
preventDefault,
50+
self,
51+
stopImmediatePropagation,
52+
stopPropagation,
53+
trusted
54+
} from './dom/legacy/event-modifiers.js';
55+
export { init } from './dom/legacy/lifecycle.js';
56+
export {
57+
add_legacy_event_listener,
58+
bubble_event,
59+
reactive_import,
60+
update_legacy_props
61+
} from './dom/legacy/misc.js';
62+
export {
63+
append,
64+
comment,
65+
svg_template,
66+
svg_template_with_script,
67+
template,
68+
template_with_script,
69+
text
70+
} from './dom/template.js';
71+
export { derived, derived_safe_equal } from './reactivity/deriveds.js';
72+
export {
73+
effect_active,
74+
effect_root,
75+
legacy_pre_effect,
76+
legacy_pre_effect_reset,
77+
render_effect,
78+
user_effect,
79+
user_pre_effect
80+
} from './reactivity/effects.js';
81+
export { mutable_source, mutate, source, set } from './reactivity/sources.js';
82+
export {
83+
prop,
84+
rest_props,
85+
spread_props,
86+
update_pre_prop,
87+
update_prop
88+
} from './reactivity/props.js';
89+
export {
90+
invalidate_store,
91+
mutate_store,
92+
store_get,
93+
store_set,
94+
store_unsub,
95+
unsubscribe_on_destroy,
96+
update_pre_store,
97+
update_store
98+
} from './reactivity/store.js';
99+
export { append_styles, sanitize_slots, set_text, slot, stringify } from './render.js';
1100
export {
2101
get,
3102
invalidate_inner_signals,
4-
flushSync,
103+
flush_sync,
5104
tick,
6105
untrack,
7106
update,
@@ -20,45 +119,17 @@ export {
20119
setContext,
21120
hasContext
22121
} from './runtime.js';
23-
export * from './dev/ownership.js';
24-
export { await_block as await } from './dom/blocks/await.js';
25-
export { if_block as if } from './dom/blocks/if.js';
26-
export { key_block as key } from './dom/blocks/key.js';
27-
export * from './dom/blocks/css-props.js';
28-
export * from './dom/blocks/each.js';
29-
export * from './dom/blocks/html.js';
30-
export * from './dom/blocks/snippet.js';
31-
export * from './dom/blocks/svelte-component.js';
32-
export * from './dom/blocks/svelte-element.js';
33-
export * from './dom/blocks/svelte-head.js';
34-
export * from './dom/elements/actions.js';
35-
export * from './dom/elements/attributes.js';
36-
export * from './dom/elements/class.js';
37-
export * from './dom/elements/events.js';
38-
export * from './dom/elements/misc.js';
39-
export * from './dom/elements/style.js';
40-
export * from './dom/elements/transitions.js';
41-
export * from './dom/elements/bindings/input.js';
42-
export * from './dom/elements/bindings/media.js';
43-
export * from './dom/elements/bindings/navigator.js';
44-
export * from './dom/elements/bindings/props.js';
45-
export * from './dom/elements/bindings/select.js';
46-
export * from './dom/elements/bindings/size.js';
47-
export * from './dom/elements/bindings/this.js';
48-
export * from './dom/elements/bindings/universal.js';
49-
export * from './dom/elements/bindings/window.js';
50-
export * from './dom/legacy/event-modifiers.js';
51-
export * from './dom/legacy/lifecycle.js';
52-
export * from './dom/legacy/misc.js';
53-
export * from './dom/template.js';
54-
export * from './reactivity/deriveds.js';
55-
export * from './reactivity/effects.js';
56-
export * from './reactivity/sources.js';
57-
export * from './reactivity/equality.js';
58-
export * from './reactivity/props.js';
59-
export * from './reactivity/store.js';
60-
export * from './render.js';
61-
export * from './validate.js';
122+
export {
123+
add_snippet_symbol,
124+
validate_component,
125+
validate_dynamic_component,
126+
validate_dynamic_element_tag,
127+
validate_each_keys,
128+
validate_prop_bindings,
129+
validate_snippet,
130+
validate_store,
131+
validate_void_dynamic_element
132+
} from './validate.js';
62133
export { raf } from './timing.js';
63134
export { proxy, unstate } from './proxy.js';
64135
export { create_custom_element } from './dom/elements/custom-element.js';

packages/svelte/src/internal/client/reactivity/props.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { get_descriptor, is_function } from '../utils.js';
99
import { mutable_source, set } from './sources.js';
1010
import { derived } from './deriveds.js';
1111
import { get, inspect_fn, is_signals_recorded, untrack } from '../runtime.js';
12-
import { safe_equals, safe_not_equal } from './equality.js';
12+
import { safe_equals } from './equality.js';
1313

1414
/**
1515
* @param {((value?: number) => number)} fn

0 commit comments

Comments
 (0)