Skip to content

Commit

Permalink
have web.dart export the helpers; deprecate helpers.dart (#115)
Browse files Browse the repository at this point in the history
* have web.dart export the helpers; deprecate helpers.dart

* fix typo
  • Loading branch information
devoncarew authored Dec 5, 2023
1 parent 865aeaf commit 34b3618
Show file tree
Hide file tree
Showing 15 changed files with 356 additions and 341 deletions.
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
## 0.4.1-wip

- Exported the helper libraries from `web.dart`.
- Deprecated the `helpers.dart` library in favor of `web.dart`.
- Updated the readme to include usage info and package status.
- Add an example.
- `helpers.dart`:
- `src/helpers.dart`:
- Added event extensions for `WebSocket`

## 0.4.0
Expand Down
2 changes: 1 addition & 1 deletion example/example.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'package:web/helpers.dart';
import 'package:web/web.dart';

void main() {
final div = document.querySelector('div') as HTMLDivElement;
Expand Down
51 changes: 1 addition & 50 deletions lib/helpers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,56 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/// Main entry library for `package:web` helper layer.
///
/// The helper layer is a collection of libraries with extensions and methods
/// that bring functionality to `package:web` that many Dart developers are used
/// to have from `dart:html`.
///
/// This helper layer serves two purposes:
/// * provide useful functionality in environments where `dart:html` is not
/// available (like on Wasm).
/// * help bridge the gap in functionality from the past, which may reduce
/// the burden of migrating from code that previously used `dart:html`.
///
/// The main reason this functionality is provided on the side, is that some of
/// the functionality is expensive, and not always the right match for every
/// developer. Unlike `dart:html`, each developer needs to make a choice for
/// whether to consume some of the APIs provided here.
///
/// The libraries in this helper layer can also be consumed piece by piece.
@Deprecated('See instead package:web/web.dart.')
library;

import 'dart:js_interop';
import 'dart:js_interop_unsafe';

import 'web.dart';

export 'src/helpers/enums.dart';
export 'src/helpers/events/events.dart';
export 'src/helpers/events/providers.dart';
export 'src/helpers/events/streams.dart' show EventStreamProvider;
export 'src/helpers/extensions.dart';
export 'src/helpers/http.dart';
export 'src/helpers/lists.dart';
export 'src/helpers/renames.dart';
export 'web.dart';

HTMLElement createElementTag(String s) =>
document.createElement(s) as HTMLElement;

HTMLCanvasElement createCanvasElement({int? width, int? height}) {
final result = document.createElement('canvas') as HTMLCanvasElement;
if (width != null) result.width = width;
if (height != null) result.height = height;
return result;
}

HTMLIFrameElement createIFrameElement() =>
document.createElement('iframe') as HTMLIFrameElement;

@JS('Audio')
external JSFunction get _audioConstructor;
HTMLAudioElement createAudioElement() => _audioConstructor.callAsConstructor();

Element? querySelector(String selectors) => document.querySelector(selectors);
281 changes: 281 additions & 0 deletions lib/src/dom.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,281 @@
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

export 'dom/accelerometer.dart';
export 'dom/ambient_light.dart';
export 'dom/anchors.dart';
export 'dom/angle_instanced_arrays.dart';
export 'dom/attribution_reporting_api.dart';
export 'dom/audio_output.dart';
export 'dom/audio_session.dart';
export 'dom/autoplay_detection.dart';
export 'dom/background_fetch.dart';
export 'dom/background_sync.dart';
export 'dom/battery_status.dart';
export 'dom/capture_handle_identity.dart';
export 'dom/captured_mouse_events.dart';
export 'dom/clipboard_apis.dart';
export 'dom/compression.dart';
export 'dom/compute_pressure.dart';
export 'dom/console.dart';
export 'dom/contact_picker.dart';
export 'dom/content_index.dart';
export 'dom/cookie_store.dart';
export 'dom/crash_reporting.dart';
export 'dom/credential_management.dart';
export 'dom/csp.dart';
export 'dom/csp_next.dart';
export 'dom/css_anchor_position.dart';
export 'dom/css_animation_worklet.dart';
export 'dom/css_animations.dart';
export 'dom/css_animations_2.dart';
export 'dom/css_cascade.dart';
export 'dom/css_cascade_6.dart';
export 'dom/css_color_5.dart';
export 'dom/css_conditional.dart';
export 'dom/css_contain.dart';
export 'dom/css_contain_3.dart';
export 'dom/css_counter_styles.dart';
export 'dom/css_font_loading.dart';
export 'dom/css_fonts.dart';
export 'dom/css_highlight_api.dart';
export 'dom/css_layout_api.dart';
export 'dom/css_masking.dart';
export 'dom/css_nav.dart';
export 'dom/css_paint_api.dart';
export 'dom/css_parser_api.dart';
export 'dom/css_properties_values_api.dart';
export 'dom/css_pseudo.dart';
export 'dom/css_regions.dart';
export 'dom/css_transitions.dart';
export 'dom/css_transitions_2.dart';
export 'dom/css_typed_om.dart';
export 'dom/css_view_transitions.dart';
export 'dom/css_view_transitions_2.dart';
export 'dom/cssom.dart';
export 'dom/cssom_view.dart';
export 'dom/custom_state_pseudo_class.dart';
export 'dom/datacue.dart';
export 'dom/deprecation_reporting.dart';
export 'dom/device_posture.dart';
export 'dom/digital_goods.dart';
export 'dom/document_picture_in_picture.dart';
export 'dom/dom.dart';
export 'dom/dom_parsing.dart';
export 'dom/edit_context.dart';
export 'dom/element_capture.dart';
export 'dom/element_timing.dart';
export 'dom/encoding.dart';
export 'dom/encrypted_media.dart';
export 'dom/entries_api.dart';
export 'dom/event_timing.dart';
export 'dom/ext_blend_minmax.dart';
export 'dom/ext_color_buffer_float.dart';
export 'dom/ext_color_buffer_half_float.dart';
export 'dom/ext_disjoint_timer_query.dart';
export 'dom/ext_disjoint_timer_query_webgl2.dart';
export 'dom/ext_float_blend.dart';
export 'dom/ext_frag_depth.dart';
export 'dom/ext_shader_texture_lod.dart';
export 'dom/ext_srgb.dart';
export 'dom/ext_texture_compression_bptc.dart';
export 'dom/ext_texture_compression_rgtc.dart';
export 'dom/ext_texture_filter_anisotropic.dart';
export 'dom/ext_texture_norm16.dart';
export 'dom/eyedropper_api.dart';
export 'dom/fedcm.dart';
export 'dom/fenced_frame.dart';
export 'dom/fetch.dart';
export 'dom/fido.dart';
export 'dom/file_system_access.dart';
export 'dom/fileapi.dart';
export 'dom/filter_effects.dart';
export 'dom/font_metrics_api.dart';
export 'dom/fs.dart';
export 'dom/fullscreen.dart';
export 'dom/gamepad.dart';
export 'dom/gamepad_extensions.dart';
export 'dom/generic_sensor.dart';
export 'dom/geolocation.dart';
export 'dom/geolocation_sensor.dart';
export 'dom/geometry.dart';
export 'dom/get_installed_related_apps.dart';
export 'dom/gyroscope.dart';
export 'dom/hr_time.dart';
export 'dom/html.dart';
export 'dom/idle_detection.dart';
export 'dom/image_capture.dart';
export 'dom/image_resource.dart';
export 'dom/indexeddb.dart';
export 'dom/ink_enhancement.dart';
export 'dom/input_device_capabilities.dart';
export 'dom/intersection_observer.dart';
export 'dom/intervention_reporting.dart';
export 'dom/is_input_pending.dart';
export 'dom/js_self_profiling.dart';
export 'dom/keyboard_lock.dart';
export 'dom/keyboard_map.dart';
export 'dom/khr_parallel_shader_compile.dart';
export 'dom/largest_contentful_paint.dart';
export 'dom/layout_instability.dart';
export 'dom/local_font_access.dart';
export 'dom/longtasks.dart';
export 'dom/magnetometer.dart';
export 'dom/manifest_incubations.dart';
export 'dom/mathml_core.dart';
export 'dom/media_capabilities.dart';
export 'dom/media_playback_quality.dart';
export 'dom/media_source.dart';
export 'dom/mediacapture_automation.dart';
export 'dom/mediacapture_fromelement.dart';
export 'dom/mediacapture_handle_actions.dart';
export 'dom/mediacapture_region.dart';
export 'dom/mediacapture_streams.dart';
export 'dom/mediacapture_transform.dart';
export 'dom/mediacapture_viewport.dart';
export 'dom/mediasession.dart';
export 'dom/mediastream_recording.dart';
export 'dom/model_element.dart';
export 'dom/mst_content_hint.dart';
export 'dom/navigation_timing.dart';
export 'dom/netinfo.dart';
export 'dom/notifications.dart';
export 'dom/oes_draw_buffers_indexed.dart';
export 'dom/oes_element_index_uint.dart';
export 'dom/oes_fbo_render_mipmap.dart';
export 'dom/oes_standard_derivatives.dart';
export 'dom/oes_texture_float.dart';
export 'dom/oes_texture_float_linear.dart';
export 'dom/oes_texture_half_float.dart';
export 'dom/oes_texture_half_float_linear.dart';
export 'dom/oes_vertex_array_object.dart';
export 'dom/orientation_event.dart';
export 'dom/orientation_sensor.dart';
export 'dom/ovr_multiview2.dart';
export 'dom/page_lifecycle.dart';
export 'dom/paint_timing.dart';
export 'dom/payment_handler.dart';
export 'dom/payment_request.dart';
export 'dom/performance_measure_memory.dart';
export 'dom/performance_timeline.dart';
export 'dom/periodic_background_sync.dart';
export 'dom/permissions.dart';
export 'dom/permissions_policy.dart';
export 'dom/picture_in_picture.dart';
export 'dom/pointerevents.dart';
export 'dom/portals.dart';
export 'dom/presentation_api.dart';
export 'dom/private_network_access.dart';
export 'dom/proximity.dart';
export 'dom/push_api.dart';
export 'dom/raw_camera_access.dart';
export 'dom/real_world_meshing.dart';
export 'dom/referrer_policy.dart';
export 'dom/remote_playback.dart';
export 'dom/reporting.dart';
export 'dom/requestidlecallback.dart';
export 'dom/requeststorageaccessfor.dart';
export 'dom/resize_observer.dart';
export 'dom/resource_timing.dart';
export 'dom/sanitizer_api.dart';
export 'dom/scheduling_apis.dart';
export 'dom/screen_capture.dart';
export 'dom/screen_orientation.dart';
export 'dom/screen_wake_lock.dart';
export 'dom/scroll_animations.dart';
export 'dom/scroll_to_text_fragment.dart';
export 'dom/secure_payment_confirmation.dart';
export 'dom/selection_api.dart';
export 'dom/serial.dart';
export 'dom/server_timing.dart';
export 'dom/service_workers.dart';
export 'dom/shape_detection_api.dart';
export 'dom/shared_storage.dart';
export 'dom/speech_api.dart';
export 'dom/storage.dart';
export 'dom/storage_buckets.dart';
export 'dom/streams.dart';
export 'dom/svg.dart';
export 'dom/svg_animations.dart';
export 'dom/testutils.dart';
export 'dom/text_detection_api.dart';
export 'dom/touch_events.dart';
export 'dom/trust_token_api.dart';
export 'dom/trusted_types.dart';
export 'dom/turtledove.dart';
export 'dom/ua_client_hints.dart';
export 'dom/uievents.dart';
export 'dom/url.dart';
export 'dom/urlpattern.dart';
export 'dom/user_timing.dart';
export 'dom/vibration.dart';
export 'dom/video_rvfc.dart';
export 'dom/virtual_keyboard.dart';
export 'dom/wasm_js_api.dart';
export 'dom/web_animations.dart';
export 'dom/web_animations_2.dart';
export 'dom/web_app_launch.dart';
export 'dom/web_bluetooth.dart';
export 'dom/web_locks.dart';
export 'dom/web_nfc.dart';
export 'dom/web_otp.dart';
export 'dom/web_share.dart';
export 'dom/webaudio.dart';
export 'dom/webauthn.dart';
export 'dom/webcodecs.dart';
export 'dom/webcodecs_aac_codec_registration.dart';
export 'dom/webcodecs_av1_codec_registration.dart';
export 'dom/webcodecs_avc_codec_registration.dart';
export 'dom/webcodecs_flac_codec_registration.dart';
export 'dom/webcodecs_hevc_codec_registration.dart';
export 'dom/webcodecs_opus_codec_registration.dart';
export 'dom/webcodecs_vp9_codec_registration.dart';
export 'dom/webcrypto_secure_curves.dart';
export 'dom/webcryptoapi.dart';
export 'dom/webgl1.dart';
export 'dom/webgl2.dart';
export 'dom/webgl_blend_equation_advanced_coherent.dart';
export 'dom/webgl_clip_cull_distance.dart';
export 'dom/webgl_color_buffer_float.dart';
export 'dom/webgl_compressed_texture_astc.dart';
export 'dom/webgl_compressed_texture_etc.dart';
export 'dom/webgl_compressed_texture_etc1.dart';
export 'dom/webgl_compressed_texture_pvrtc.dart';
export 'dom/webgl_compressed_texture_s3tc.dart';
export 'dom/webgl_compressed_texture_s3tc_srgb.dart';
export 'dom/webgl_debug_renderer_info.dart';
export 'dom/webgl_debug_shaders.dart';
export 'dom/webgl_depth_texture.dart';
export 'dom/webgl_draw_buffers.dart';
export 'dom/webgl_draw_instanced_base_vertex_base_instance.dart';
export 'dom/webgl_lose_context.dart';
export 'dom/webgl_multi_draw.dart';
export 'dom/webgl_multi_draw_instanced_base_vertex_base_instance.dart';
export 'dom/webgl_provoking_vertex.dart';
export 'dom/webgpu.dart';
export 'dom/webhid.dart';
export 'dom/webidl.dart';
export 'dom/webmidi.dart';
export 'dom/webnn.dart';
export 'dom/webrtc.dart';
export 'dom/webrtc_encoded_transform.dart';
export 'dom/webrtc_ice.dart';
export 'dom/webrtc_identity.dart';
export 'dom/webrtc_priority.dart';
export 'dom/webrtc_stats.dart';
export 'dom/websockets.dart';
export 'dom/webtransport.dart';
export 'dom/webusb.dart';
export 'dom/webvtt.dart';
export 'dom/webxr.dart';
export 'dom/webxr_ar_module.dart';
export 'dom/webxr_depth_sensing.dart';
export 'dom/webxr_dom_overlays.dart';
export 'dom/webxr_hand_input.dart';
export 'dom/webxr_hit_test.dart';
export 'dom/webxr_lighting_estimation.dart';
export 'dom/webxrlayers.dart';
export 'dom/window_controls_overlay.dart';
export 'dom/window_management.dart';
export 'dom/xhr.dart';
Loading

0 comments on commit 34b3618

Please sign in to comment.