GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — WinterTC Minimum Common Web Platform API Alignment · Issue #10297 · NativeScript/NativeScript

WinterTC Minimum Common Web Platform API Alignment #10297

New issue
Copy link
New issue
Copy link
Open
Open
WinterTC Minimum Common Web Platform API Alignment#10297
Copy link
Assignees
NathanWalkerrigor789edusperonitriniwiz
Labels
featurein progress
Milestone
10.0

Description

@NathanWalker
NathanWalker
opened on May 25, 2023
Issue body actions

Is your feature request related to a problem? Please describe.

In addition to what the NativeScript runtimes provide, they should also provide all the common interfaces and global objects expected from any state of the art JavaScript runtime. WinterCG is a community group doing excellent work in this space to help runtime interoperability of APIs across runtimes.

  • https://wintercg.org/work
  • https://common-min-api.proposal.wintercg.org/

Describe the solution you'd like

Ensure compliance with at least the minimum specification:

Interfaces:

  • AbortController
  • AbortSignal
  • Blob
  • ByteLengthQueuingStrategy
  • CompressionStream
  • CountQueuingStrategy
  • Crypto 8.8
  • CryptoKey
  • DecompressionStream
  • DOMException
  • Event
  • EventTarget
  • File
  • ReadableByteStreamController
  • ReadableStream
  • ReadableStreamBYOBReader
  • ReadableStreamBYOBRequest
  • ReadableStreamDefaultController
  • ReadableStreamDefaultReader
  • SubtleCrypto 8.8
  • TextDecoder
  • TextDecoderStream
  • TextEncoder
  • TextEncoderStream
  • TransformStream
  • TransformStreamDefaultController
  • URL 8.7
  • URLPattern
  • URLSearchParams 8.7
  • WritableStream
  • WritableStreamDefaultController

Global methods / properties:

globalThis

  • globalThis.atob() 8.8
  • globalThis.btoa() 8.8
  • globalThis.console
  • globalThis.crypto 8.8
  • globalThis.navigator.userAgent
  • globalThis.queueMicrotask()
  • globalThis.setTimeout() / globalThis.clearTimeout()
  • globalThis.setInterval() / globalThis.clearInterval()
  • globalThis.[structuredClone()](https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone

Please accept these terms

  • I have searched the existing issues as well as StackOverflow and this has not been posted before
  • I agree to follow this project's Code of Conduct
Reacted by Juan de Dios Martínez Vallejo, Dj, Angel D. Munoz, Daniel Herr, Jason, Yevhenii Herasymchuk and Paul O
Reacted by Angel D. Munoz, Yevhenii Herasymchuk and Paul O

Activity

  1. NathanWalker
    added
    feature-pending-triageA new feature request pending triage to confirm validity.A new feature request pending triage to confirm validity.
    in progress
    and removed
    feature-pending-triageA new feature request pending triage to confirm validity.A new feature request pending triage to confirm validity.
    on May 25, 2023
  2. NathanWalker
    added this to the 9.0 milestone on May 25, 2023
  3. NathanWalker
    assigned
    NathanWalker
    ,
    rigor789
    ,
    edusperoni
    and
    triniwiz
    on May 25, 2023
  4. NathanWalker
    pinned this issue on Jan 9, 2024
  5. MrSnoozles commented on Feb 24, 2024

    @MrSnoozles
    MrSnoozles
    on Feb 24, 2024
    More actions

    @NathanWalker I needed queueMicrotask for the latest Vue Apollo Client to work. I polyfilled it using

    import queueMicrotask from "queue-microtask";
    global.queueMicrotask ??= queueMicrotask;

    which works perfectly. The queue-microtask library is effectively 5 lines of code, so that could be added easily as well.

    Reacted by Nathan Walker and Martin Honermeyer
    Reacted by Juan de Dios Martínez Vallejo
  6. dangrima90 commented on Feb 26, 2024

    @dangrima90
    dangrima90
    on Feb 26, 2024
    Contributor
    More actions

    @NathanWalker I've a question about the polyfills that will be eventually implemented. I see that in the list above there's no mention of Intl API. My main point of interest is the NumberFormat class, as currently to support number formatting via .toLocaleString(), or be to able to use formatToParts(), polyfills have to be used (such as format js polyfills).

    Is this something out of scope for this update please?

    Reacted by azriel46d
  7. rigor789
    unpinned this issue on Mar 8, 2024
  8. NathanWalker commented on May 6, 2024

    @NathanWalker
    NathanWalker
    on May 6, 2024
    ContributorAuthor
    More actions

    @dangrima90 Intl will be an optional package you could include when your app needs it vs. being built into runtime by default.

  9. jasongitmail commented on Jul 19, 2024

    @jasongitmail
    jasongitmail
    on Jul 19, 2024
    More actions

    @NathanWalker Interesting to note (if only for others searching issues like me) that Intl.NumberFormat() partially works in the NativeScript runtime currently, making it seem buggy.

    I was attempting to use it to detect whether a dot or comma thousands separator should be used, but NativeScript always formats with a , thousands separator (for every locale I've tried), whereas the same code in Chrome on MacOS will use a dot thousands separator when appropriate for the locale.

      // const locale = Device.language; // e.g. 'en-US'
      // const locale = 'pt-BR'; // should use dot as thousands separator
      const locale = 'NL'; // should use dot as thousands separator
    
      // Format a number and extract the thousand separator
      const numberFormat = new Intl.NumberFormat(locale);
      const formattedNumber = numberFormat.format(1_000);
      const thousandSeparator = formattedNumber.charAt(1);
    
      console.log('locale', locale);
      console.log(`Formatted Number: ${formattedNumber}`);
      console.log(`Thousand Separator: ${thousandSeparator}`);

    Expected result (Chrome MacOS)

    chrome
  10. NathanWalker
    changed the title [-]WinterCG Minimum Common Web Platform API Alignment[/-] [+]WinterTC Minimum Common Web Platform API Alignment[/+] on Jan 17, 2025
  11. NathanWalker
    modified the milestones: 9.0, 10.0 on Nov 12, 2025
  12. NathanWalker
    added
    feature
    on Oct 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

  • @NathanWalker
    NathanWalker
  • @edusperoni
    edusperoni
  • @rigor789
    rigor789
  • @triniwiz
    triniwiz

Labels

featurein progress

Type

No type

Projects

No projects

    Milestone

    • 10.0No due date

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    You are visitor 01402503 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.