1.1.2 • Published 2 years ago

@ranchonyx/ini-parser v1.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

INI-Parser

INI-Parser is a simplistic ini file format parser written in typescript for node.js. I wrote this in my downtime at work to fend off boredom. To use it, simply import it in your typescript files.

Example

Ini file

;Demo.ini
[details]
firstname=John
lastname=Doe
id=0123456789
alive=yes

[activity]
name=Reticulating splines
since=2023-08-02T14:54:11.840Z

Typescript code

//Demo.ts
import {INIParser} from "@ranchonyx/ini-parser"

const parser = INIParser.GetParser("./Demo.ini");

///Get the value of a key in a section as an INI entity.
parser.get("details", "firstname").asString();
///>>> John

///Get all keys for a section
parser.getKeysForSection("details");
///>>> [ 'firstname', 'lastname', 'id', 'alive' ]

///Get sections
parser.getSections();
///>>> [ 'details', 'activity' ]

///Convert to JSON
parser.asJSON();
/*>>>
{
  details: { firstname: 'john', lastname: 'doe', id: 123456789, alive: true },
  activity: { name: 'reticulating splines', since: 2023-08-02T14:54:11.840Z }
}
*/

Documentation

Types

type nativeType = string | number | boolean | Date;
type maybe<T> = undefined | T;

type INIEntity = {
    getKey: () => string;
    asNumber: () => maybe<number>;
    asString: () => maybe<string>;
    asBoolean: () => maybe<boolean>;
    asDate: () => maybe<Date>;
    asGuessedNative: () => nativeType;
}

type INIBlock = Record<string, INIEntity | string> & { __ini_section_name__: string };

type INIParseResult = Record<string, INIBlock>;

Signatures

public static INIParser.GetParser(INIContentOrFilePath: string): INIParser;
public INIParser.get(sectionKey: string, key: string): INIEntity;
public INIParser.getKeysForSection(sectionKey: string): string[];
public INIParser.getSections(): string[];
public INIParser.asJSON(): any;

Notes

INIEntity

Please not that INIEntity describes a wrapper around the raw string-like value read from the ini. You may interpret the raw value as

  • string
  • number
  • boolean
  • Date

by calling their respective as-methods.
A way of implicitly getting a javascript native type is to calle the asGuessedNative()-method, which will, with decent accuracy, convert the raw type to a javascript native type.

JSON.stringify() support

Calling JSON.stringify() with an INIParser as argument, it will return the same data as INIParser.asJSON().

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago