README update [ci skip]
This commit is contained in:
		
							parent
							
								
									6fb0427a31
								
							
						
					
					
						commit
						a79d4e4b32
					
				
							
								
								
									
										39
									
								
								README.md
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										39
									
								
								README.md
									
									
									
									
									
								
							@ -20,6 +20,7 @@ A self-contained specification of the printf format string is included below in
 | 
			
		||||
<!-- toc -->
 | 
			
		||||
 | 
			
		||||
  * [Installation](#installation)
 | 
			
		||||
    + [ES Module Support](#es-module-support)
 | 
			
		||||
  * [Usage](#usage)
 | 
			
		||||
  * [Testing](#testing)
 | 
			
		||||
  * [License](#license)
 | 
			
		||||
@ -95,6 +96,38 @@ string with the given arguments.  Running the script with `-h` displays help.
 | 
			
		||||
The script will manipulate `module.exports` if available.  This is not always
 | 
			
		||||
desirable.  To prevent the behavior, define `DO_NOT_EXPORT_PRINTJ`
 | 
			
		||||
 | 
			
		||||
### ES Module Support
 | 
			
		||||
 | 
			
		||||
The bundle ships with a `printj.mjs` script that acts as an ES Module.
 | 
			
		||||
 | 
			
		||||
**NodeJS**
 | 
			
		||||
 | 
			
		||||
NodeJS 12+ support ES modules.  The default import uses the CommonJS script:
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
import PRINTJ from "printj";
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
It is possible to use the ESM powered script referencing `printj.mjs` directly:
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
import * as PRINTJ from "printj/printj.mjs"; // pull all exports
 | 
			
		||||
import { sprintf } from "printj/printj.mjs"; // pull `sprintf`
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**Browser Module Support**
 | 
			
		||||
 | 
			
		||||
Chrome 61+ and Safari 11+ support module imports in the web browser.  The `.mjs`
 | 
			
		||||
script can be imported from a `script type=module` block:
 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<script type="module">
 | 
			
		||||
import { sprintf } from './printj.mjs';
 | 
			
		||||
console.log(sprintf("%02hhx", 123));
 | 
			
		||||
</script>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
In all cases, the relevant function takes a format and arguments to be rendered.
 | 
			
		||||
@ -693,10 +726,10 @@ This implementation performs the required adjustments.
 | 
			
		||||
Aside from the special cases discussed above, JS `num.toExponential(prec)`
 | 
			
		||||
differs from POSIX `printf("%1$.*2$e", num, prec)` in the exponent field: JS
 | 
			
		||||
writes exponents with the fewest digits (POSIX requires 2+ digits).  This is
 | 
			
		||||
easily fixed by inspecting the output string and inserting a "0" when needed.
 | 
			
		||||
addressed by inspecting the output string and inserting a "0" when needed.
 | 
			
		||||
 | 
			
		||||
The optional `#` flag forces the decimal point to appear when precision is 0.
 | 
			
		||||
This is also easily corrected by adding a decimal point just before the "e".
 | 
			
		||||
This is also fixed by adding a decimal point just before the "e".
 | 
			
		||||
 | 
			
		||||
## Standard Form ("f" and "F" conversions)
 | 
			
		||||
 | 
			
		||||
@ -749,7 +782,7 @@ JS `num.toString(radix)` is implementation-dependent for radices other than 10
 | 
			
		||||
(`2-9, 11-36`).  IE uses hex-mantissa decimal-hex-exponent form when the
 | 
			
		||||
absolute value of the base-2 exponent exceeds 60.  Otherwise, IE uses an exact
 | 
			
		||||
standard hexadecimal form.  Chrome, Safari and other browsers always use the
 | 
			
		||||
exact standard hexadecimal form.  Both forms are easily converted to `"%a"` by
 | 
			
		||||
exact standard hexadecimal form.  Both forms are converted to `"%a"` by
 | 
			
		||||
calculating and dividing by the appropriate power of 2.
 | 
			
		||||
 | 
			
		||||
For each non-zero normal floating point value, there are 4 acceptable strings
 | 
			
		||||
 | 
			
		||||
@ -46,7 +46,7 @@
 | 
			
		||||
	},
 | 
			
		||||
	"alex": {
 | 
			
		||||
		"allow": [
 | 
			
		||||
			"period"
 | 
			
		||||
			"period", "just", "special", "invalid"
 | 
			
		||||
		]
 | 
			
		||||
	},
 | 
			
		||||
	"homepage": "http://sheetjs.com/opensource",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user