Package Exports
- @one-ini/wasm
- @one-ini/wasm/one_ini.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@one-ini/wasm) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
One INI
The core implementation of an AST based, idiomatic INI parser which aims to provide an easy to implement and consistent INI-standard.
This reference implementation is provided as Rust-library and WASM-package.
The work on this project started with the search for an universal parser for the EditorConfig INI file format specification.
WASM
To use from Web Assembly, compile with:
wasm-pack build --release --target nodejs
and run the (limited) WASM tests with:
wasm-pack test --node
You can call the generated JS wrapper with either:
import { parse_to_json } from './pkg/one_ini.js'
const results = parse_to_json(`
root = true
[*]
# always use unix line endings
end_of_line = lf
`)
// {
// "version": "0.1.0",
// "body": [
// { "type": "Pair", "key": "root", "value": "true" },
// {
// "type": "Section",
// "name": "*",
// "body": [
// { "type": "Comment", "indicator": "#", "value": "always use unix line endings" },
// { "type": "Pair", "key": "end_of_line", "value": "lf" }
// ]
// }
// ]
// }
or:
import { parse_to_uint32array, TokenTypes } from './pkg/editorconfig_ini.js'
const buf = Buffer.from(`
root = true
[*]
# always use unix line endings
end_of_line = lf
`, 'utf8')
const ary = parse_to_uint32array(buf)
// Array with token type, start byte offset, end byte offset for each token
// Uint32Array(21) [
// TokenTypes.Key, 1, 5,
// TokenTypes.Value, 8, 12,
// TokenTypes.Section, 15, 16,
// TokenTypes.CommentIndicator, 18, 19,
// TokenTypes.CommentValue, 20, 48,
// TokenTypes.Key, 49, 60,
// TokenTypes.Value, 63, 65
// ]