forked from sheetjs/docs.sheetjs.com
		
	astro 4 is out of beta
This commit is contained in:
		
							parent
							
								
									b571592055
								
							
						
					
					
						commit
						09e390a090
					
				| @ -43,6 +43,14 @@ Complete Examples are included [in the "Dojo" demo](/docs/demos/frontend/dojo) | ||||
| 
 | ||||
| ## Snowpack | ||||
| 
 | ||||
| Snowpack was a development tool built by the AstroJS team. | ||||
| 
 | ||||
| :::caution pass | ||||
| 
 | ||||
| Snowpack is no longer maintained. The developers recommend [ViteJS](/docs/demos/frontend/bundler/vitejs) | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| Snowpack works with no caveats. | ||||
| 
 | ||||
| <details> | ||||
| @ -54,7 +62,7 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| | Version | Date       | | ||||
| |:--------|:-----------| | ||||
| | `3.8.8` | 2023-12-04 | | ||||
| | `3.8.8` | 2024-04-14 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -165,6 +173,14 @@ Click on "Click here to export" to generate a file. | ||||
| 
 | ||||
| ## WMR | ||||
| 
 | ||||
| WMR was a development tool built by the PreactJS team. | ||||
| 
 | ||||
| :::caution pass | ||||
| 
 | ||||
| WMR is no longer maintained. The developers recommend [ViteJS](/docs/demos/frontend/bundler/vitejs) | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| WMR works with no caveats. | ||||
| 
 | ||||
| <details> | ||||
| @ -176,7 +192,7 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| | Version | Date       | | ||||
| |:--------|:-----------| | ||||
| | `3.8.0` | 2023-12-04 | | ||||
| | `3.8.0` | 2024-04-14 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -50,10 +50,10 @@ npx astro telemetry disable | ||||
| 
 | ||||
| This demo was tested in the following environments: | ||||
| 
 | ||||
| | AstroJS        | Date       | | ||||
| |:---------------|:-----------| | ||||
| | `3.6.4`        | 2023-12-04 | | ||||
| | `4.0.0-beta.4` | 2023-12-04 | | ||||
| | AstroJS | Template          | Date       | | ||||
| |:--------|:------------------|:-----------| | ||||
| | `3.6.5` |: Starlight 0.14.0 | 2024-04-14 | | ||||
| | `4.6.1` |: Starlight 0.21.5 | 2024-04-14 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -212,10 +212,13 @@ cd sheetjs-astro | ||||
| 
 | ||||
| :::note pass | ||||
| 
 | ||||
| To test the AstroJS 4 beta release, run the following command: | ||||
| To test an older version of AstroJS, install the specific version of `astro` and | ||||
| a supported starter template after creating the project. | ||||
| 
 | ||||
| For major version 3, Starlight must be version `0.14.0`: | ||||
| 
 | ||||
| ```bash | ||||
| npm install --force @astrojs/starlight@^0.14.0 astro@4.0.0-beta.4 | ||||
| npm install --force astro@3.6.5 @astrojs/starlight@0.14.0 | ||||
| ``` | ||||
| 
 | ||||
| The version can be verified by running: | ||||
| @ -251,7 +254,7 @@ declare module '*.xlsx'    { const data: string; export default data; } | ||||
| 
 | ||||
| - At the top of the script, import `readFileSync`: | ||||
| 
 | ||||
| ```js title="astro.config.mjs" | ||||
| ```js title="astro.config.mjs (add higlighted lines)" | ||||
| // highlight-start | ||||
| /* import `readFileSync` at the top of the script*/ | ||||
| import { readFileSync } from 'fs'; | ||||
| @ -261,7 +264,7 @@ import { defineConfig } from 'astro/config'; | ||||
| 
 | ||||
| - In the object argument to `defineConfig`, add a `vite` section: | ||||
| 
 | ||||
| ```js title="astro.config.mjs" | ||||
| ```js title="astro.config.mjs (add highlighted lines)" | ||||
| export default defineConfig({ | ||||
|   // highlight-start | ||||
|   /* this vite section should be added as a property of the object */ | ||||
|  | ||||
| @ -1477,7 +1477,7 @@ The Numbers app will load the spreadsheet, confirming that the file is valid. | ||||
| [^2]: See ["Array of Arrays" in the API reference](/docs/api/utilities/array#array-of-arrays) | ||||
| [^3]: See ["Array Output" in "Utility Functions"](/docs/api/utilities/array#array-output) | ||||
| [^4]: See ["Array of Arrays Input" in "Utility Functions"](/docs/api/utilities/array#array-of-arrays-input) | ||||
| [^5]: React-Native commit [`5b597b5`](https://github.com/facebook/react-native/commit/5b597b5ff94953accc635ed3090186baeecb3873) added the final piece required for `fetch` support. It landed in version `0.72.0-rc.1` and is available in official releases starting from `0.72.0`. | ||||
| [^5]: React-Native commit [`5b597b5`](https://github.com/facebook/react-native/commit/5b597b5ff94953accc635ed3090186baeecb3873) added the final piece required for `fetch` support. It is available in official releases starting from `0.72.0`. | ||||
| [^6]: When the demo was last tested, the Temurin distribution of Java 17 was installed through the macOS Brew package manager by running `brew install temurin17`. [Direct downloads are available at `adoptium.net`](https://adoptium.net/temurin/releases/?version=17) | ||||
| [^7]: See ["Running On Device"](https://reactnative.dev/docs/running-on-device) in the React Native documentation | ||||
| [^8]: See [`UIFileSharingEnabled`](https://developer.apple.com/documentation/bundleresources/information_property_list/uifilesharingenabled) in the Apple Developer Documentation. | ||||
|  | ||||
| @ -38,7 +38,7 @@ This demo was tested in the following environments: | ||||
| |:-------------|:----------|:-----------| | ||||
| | `darwin-x64` | `cefd391` | 2024-03-15 | | ||||
| | `darwin-arm` | `ef4cb2b` | 2023-12-08 | | ||||
| | `win11-x64`  | `ef4cb2b` | 2023-12-08 | | ||||
| | `win10-x64`  | `47bd5d4` | 2024-04-14 | | ||||
| | `win11-arm`  | `ef4cb2b` | 2023-12-08 | | ||||
| | `linux-x64`  | `cefd391` | 2024-03-21 | | ||||
| | `linux-arm`  | `ef4cb2b` | 2023-12-08 | | ||||
|  | ||||
| @ -14,8 +14,7 @@ import EngineData from '/data/engines.js' | ||||
| data from spreadsheets. | ||||
| 
 | ||||
| JavaScript code cannot be directly executed on most modern computers. A software | ||||
| component ("JavaScript engine") executes code. There are many engines designed | ||||
| for embedding in other applications. After embedding a JS engine in software, | ||||
| component ("JavaScript engine") executes code. After embedding a JS engine, | ||||
| programs can leverage SheetJS libraries to process spreadsheets and data. | ||||
| 
 | ||||
| The demos in this section showcase a number of JS engines and language bindings. | ||||
| @ -25,23 +24,23 @@ SheetJS library scripts, and reads and writes spreadsheet files. | ||||
| 
 | ||||
| ## General Caveats | ||||
| 
 | ||||
| There are many other JS engines with different design goals. Some are designed | ||||
| for low-power or low-memory environments. Others aim for interoperability with | ||||
| There are many JS engines with different design goals. Some are designed for | ||||
| low-power or low-memory environments. Others aim for interoperability with | ||||
| specific programming languages or environments. Typically they support ES3 and | ||||
| are capable of running SheetJS code. | ||||
| 
 | ||||
| Common browser and NodeJS APIs are often missing from light-weight JS engines. | ||||
| 
 | ||||
| #### Global | ||||
| **Global** | ||||
| 
 | ||||
| Some engines do not provide `globalThis` or `global` or `window`.  A `global` | ||||
| Some engines do not provide `globalThis` or `global` or `window`. A `global` | ||||
| variable can be exposed in one line that should be run in the JS engine: | ||||
| 
 | ||||
| ```js | ||||
| var global = (function(){ return this; }).call(null); | ||||
| ``` | ||||
| 
 | ||||
| #### Console | ||||
| **Console** | ||||
| 
 | ||||
| Some engines do not provide a `console` object but offer other ways to print to | ||||
| standard output. For example, Hermes[^1] provides `print()`. A `console` object | ||||
| @ -51,16 +50,17 @@ should be created using the engine print function: | ||||
| var console = { log: function(x) { print(x); } }; | ||||
| ``` | ||||
| 
 | ||||
| #### Binary Data | ||||
| **Binary Data** | ||||
| 
 | ||||
| Some engines do not provide easy ways to exchange binary data.  For example, it | ||||
| is common to pass null-terminated arrays, which would truncate XLSX, XLS, and | ||||
| other exports.  APIs that accept pointers without length should be avoided. | ||||
| Some engines do not provide easy ways to exchange binary data. For example, some | ||||
| libraries pass null-terminated arrays, which would truncate XLSX, XLS, and other | ||||
| exports. APIs that accept pointers without length should be avoided. | ||||
| 
 | ||||
| Base64 strings are safe for passing between JS and native code, but they should | ||||
| only be used when there is no safe way to pass `ArrayBuffer` or `Uint8Array`. | ||||
| Base64 strings are safe, as they do not use null characters, but should only be | ||||
| used when there is no safe way to pass `ArrayBuffer` or `Uint8Array` objects. | ||||
| The SheetJS `read`[^2] and `write`[^3] methods directly support Base64 strings. | ||||
| 
 | ||||
| #### Byte Conventions | ||||
| **Byte Conventions** | ||||
| 
 | ||||
| Java has no native concept of unsigned bytes. Values in a `byte[]` are limited | ||||
| to the range `-128 .. 127`. They need to be fixed within the JS engine. | ||||
| @ -173,4 +173,6 @@ The demo includes examples in C++ and Rust. | ||||
| 
 | ||||
| The ["Python + Pandas" demo](/docs/demos/math/pandas) uses V8 with Python. | ||||
| 
 | ||||
| [^1]: See ["Initialize Hermes"](/docs/demos/engines/hermes#initialize-hermes) in the Hermes demo. | ||||
| [^1]: See ["Initialize Hermes"](/docs/demos/engines/hermes#initialize-hermes) in the Hermes demo. | ||||
| [^2]: See [`read` in "Reading Files"](/docs/api/parse-options) | ||||
| [^3]: See [`write` in "Writing Files"](/docs/api/write-options) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user