quickjs 0.17.0.pre → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b233c0e106654a50f4af274fef6a4dd77f0b53cc0a703473cda844da6ba3763
4
- data.tar.gz: 50dfeaf56422ee74e8cb8711a58e1678c8141ac4bb7256a4d8861fa1a9415c93
3
+ metadata.gz: 3b94d34d52891a60158c8576ae818c1bc2d499d4c868bffbc9d20e15e048f509
4
+ data.tar.gz: c8143e0ad9aee153f401eb967e00a5d1cef6988174786b717883b3ad10af349d
5
5
  SHA512:
6
- metadata.gz: 9f77f8b802055b1ec67ad9b4f45fb54cbdb1349a473457572c1c1b72115283bed9b99b15029e101256147ce0bbc72b64371fcbdd0ede6e8e9ba5e8d4a0bb0376
7
- data.tar.gz: 9387e82c41c0242caa67c16a67b48a204c32512b116c5e4cc61d83e892bec053393facaf7ac2553642b876cacecb3622ddb37a846fd1eea959c21ea7df70b569
6
+ metadata.gz: bb986f81e0af8f8e7803080e9f4f4b0a6ae6a62ecc913460726ecac7e52b75ace087c9f6183fcc50c7d6bf2e1c44c7368d0d4893376609e14710da0ea6d8414c
7
+ data.tar.gz: edb095fa0e09ab1d439c0c98bfe56f2cbd44fcf9c7f5d40a14dbf0f961356f1aa6221a62195b00013c63b394503c68d3bf0fb1f02cb08eee3b5982925bc41c99
data/README.md CHANGED
@@ -144,6 +144,22 @@ vm.import('DefaultExport', from: File.read('exports.esm.js'))
144
144
  vm.import('* as all', from: File.read('exports.esm.js'))
145
145
  ```
146
146
 
147
+ By default each imported binding is attached to `globalThis` under its own name so later `eval_code` / `call` can see it. Pass `code_to_expose:` to replace that step with your own JS — useful for renaming, attaching the import somewhere other than `globalThis`, or skipping the global assignment entirely for side-effect-only imports.
148
+
149
+ ```rb
150
+ # Rename on the way in
151
+ vm.import('Imported', from: File.read('exports.esm.js'),
152
+ code_to_expose: 'globalThis.RenamedImported = Imported;')
153
+
154
+ vm.eval_code('RenamedImported()') #=> calls the default export
155
+ vm.eval_code('!!globalThis.Imported') #=> false — the original name was never assigned
156
+
157
+ # Side-effect-only import: run the module body but don't expose anything
158
+ vm.import('initSomething', from: File.read('setup.esm.js'), code_to_expose: '')
159
+ ```
160
+
161
+ `code_to_expose` is just a JavaScript fragment that runs after the `import` statement, with the imported binding(s) in scope under the name(s) you requested. It works with both `from:` and `filename:`.
162
+
147
163
  #### `Quickjs::VM#module_loader=`: 🧩 Resolve `import` specifiers from Ruby
148
164
 
149
165
  By default, `import` specifiers that aren't already loaded fall through to QuickJS's filesystem loader. Set a `module_loader` Proc to resolve specifiers in-memory instead — useful when the source code lives in a database, an importmap, or a virtual filesystem.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Quickjs
4
- VERSION = "0.17.0.pre"
4
+ VERSION = "0.17.0"
5
5
  end
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "quickjs-rb-polyfills",
3
- "version": "0.17.0.pre",
3
+ "version": "0.17.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "quickjs-rb-polyfills",
9
- "version": "0.17.0.pre",
9
+ "version": "0.17.0",
10
10
  "dependencies": {
11
11
  "@formatjs/intl-datetimeformat": "^7.3.1",
12
12
  "@formatjs/intl-getcanonicallocales": "^3.2.2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quickjs-rb-polyfills",
3
- "version": "0.17.0.pre",
3
+ "version": "0.17.0",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "build": "rolldown -c rolldown.config.mjs",
data/sig/quickjs.rbs CHANGED
@@ -31,7 +31,7 @@ module Quickjs
31
31
  | (Array[String | Symbol] path, *Symbol flags) { (*untyped) -> untyped } -> Array[Symbol]
32
32
 
33
33
  def import: (String | Array[String] | Hash[Symbol, String] imported, from: String, ?code_to_expose: String?) -> true
34
- | (String | Array[String] | Hash[Symbol, String] imported, filename: String) -> true
34
+ | (String | Array[String] | Hash[Symbol, String] imported, filename: String, ?code_to_expose: String?) -> true
35
35
 
36
36
  def module_loader: () -> (^(String) -> String? | nil)
37
37
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quickjs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0.pre
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - hmsk