Open lsh opened 2 years ago
Skypack (which works for arrow) seems to have an issue with arquero.
> import arquero from "https://cdn.skypack.dev/arquero"
Uncaught TypeError: Relative import path "acorn" not prefixed with / or ./ or ../
at https://cdn.skypack.dev/-/arquero@v4.8.8-dWXL1bFb2EbzIQrDNAMi/dist=es2019,mode=imports/optimized/arquero.js:2:34
at async <anonymous>:2:33
That would probably be the first thing to fix.
import * as arquero from "https://cdn.jsdelivr.net/npm/arquero@4.8.8/+esm";
works actually. 🎉
The acorn issue might just be that there's no ESM target in general?
Note that it seems any of the load{CSV,JSON,etc}
operations seem to not work in Deno (using the jsdelivr URL).
Node output:
> const df = await aq.loadJSON("/Users/lukas/Downloads/cars.json");
undefined
> df
ColumnTable [Table: 9 cols x 406 rows] {
_names: [
'Name',
'Miles_per_Gallon',
'Cylinders',
'Displacement',
'Horsepower',
'Weight_in_lbs',
'Acceleration',
'Year',
'Origin'
],
_data: {
Name: Column$1 { data: [Array] },
Miles_per_Gallon: Column$1 { data: [Array] },
Cylinders: Column$1 { data: [Array] },
Displacement: Column$1 { data: [Array] },
Horsepower: Column$1 { data: [Array] },
Weight_in_lbs: Column$1 { data: [Array] },
Acceleration: Column$1 { data: [Array] },
Year: Column$1 { data: [Array] },
Origin: Column$1 { data: [Array] }
},
_total: 406,
_nrows: 406,
_mask: null,
_group: null,
_order: null
}
Deno output:
> const df = await aq.loadJSON("/Users/lukas/Downloads/cars.json");
Uncaught TypeError: Invalid URL
at Object.opSync (deno:core/01_core.js:172:12)
at opUrlParse (deno:ext/url/00_url.js:48:27)
at new URL (deno:ext/url/00_url.js:322:20)
at new Request (deno:ext/fetch/23_request.js:212:27)
at deno:ext/fetch/26_fetch.js:429:29
at new Promise (<anonymous>)
at fetch (deno:ext/fetch/26_fetch.js:425:20)
at us (https://cdn.jsdelivr.net/npm/arquero@4.8.8/+esm:7:86377)
at Module.ps (https://cdn.jsdelivr.net/npm/arquero@4.8.8/+esm:7:86640)
at <anonymous>:2:21
Problem
The Arquero build distribution does not support the Deno runtime (even with the
--compat
flag).Proposed Solution
Since the main dependency that causes issues for a Deno build is
apache-arrow
installed from Node, replacing it with a CDN link for the Deno distribution would allow a Deno build target.Considerations
Another build target means series of tests for platform specific errors.
Benefits
Access to the Deno runtime and ecosystem.