open-index/open-npm huggingface dataset:
npm package: @hexarc/api-generator
Description: Hexarc API generator
Author: Max Koverdyaev
Latest version: 1.4.0

Hexarc API generator for Typescript/Javascript project
======================================================

This NPM package provides ability to generate a Hexarc API client for frontend TypeScript/Javascript projects from the API schema that can be obtain from one of the Hexarc API services.

# Setup
The package can be installed using the npm package manager in a TypeScript/JavaScript frontend project:

```sh
npm install --save-dev @hexarc/api-generator
```

Or globally:

```sh
npm install -g @hexarc/api-generator
```

During installation the package will register a CLI-utility for API client generation.

Be advised that this package is developed and tested under Unix-like environment. Not tested on Win platforms.

# Generation
As mentioned the package provides the CLI-utility to build an API client for any Hexarc API that supports API schema exposing via a special endpoint.
The CLI-utility can be call via shell:

```sh
npx hexarc --help
```

Or if installed globally:

```sh
hexarc --help
```

`--help` option will show available options for generation.

A common command to generate an API client:

```sh
npx hexarc <api_schema_url> <output_dir>
```

Arguments:

* `<api_schema_url>` - an API services endpoint that expose the API schema,
* `<output_dir>` - the output directory for a generated API client.

Options:

* `--api-client-name <name>` - an API client class name. Default name is just `Api`

# Usage
A generated API client will be located in the provided output directory.

Now you can import and use the generated API client class into any project file:
```ts
import { Api } from "./output_dir"

const api = new Api("https://example.com");

...
await api.controllerName.controllerMethod(arg1, arg2);
```

# Api structure
Every generated API client has a common structure that can be explored:

*  `bootstrap` - directory for some base classes
*  `controllers` - concrete API controller classes
*  `types` - all types used by the API controllers
*  `values` - common values used between client and server applications (like errors and etc.)
*  `api.ts` - file with the api client class
npm package: @hexarc/bn.ts
Description: Modern big number implementation in TypeScript
Author: Max Koverdyaev
Latest version: 0.1.3

BigNum in TypeScript
===========
# <img src="./bn.png" alt="bn.ts" width="128" height="128" />

[![Version](http://img.shields.io/npm/v/@hexarc/bn.ts.svg)](https://www.npmjs.org/package/@hexarc/bn.ts)
[![License](http://img.shields.io/:license-mit-blue.svg)](http://badges.mit-license.org)
[![Downloads](http://img.shields.io/npm/dm/@hexarc/bn.ts.svg)](https://npmjs.org/package/@hexarc/bn.ts)
[![Downloads](http://img.shields.io/npm/dt/@hexarc/bn.ts.svg)](https://npmjs.org/package/@hexarc/bn.ts)

A modern big number implementation in TypeScript. It's based on [bn.js](https://github.com/indutny/bn.js) but overhauled and refactored using modern JavaScript/TypeScript with type annotations out of the box.

## Install with npm:

```sh
npm install --save @hexarc/bn.ts
```

## Usage

```ts
import BN from "@hexarc/bn.ts";

const a = new BN("dead", 16);
const b = new BN("101010", 2);

const res = a.add(b);
console.log(res.toString(10));  // 57047
```

## Compatibility
As this library is fully compatible with `bn.js` you can use it in [the same way](https://github.com/indutny/bn.js#instructions).

## License

[MIT](LICENSE)
npm package: @hexarc/csharp-dom
Description: Microsoft C# source code generation based on the language document object model
Author: Max Koverdyaev
Latest version: 0.0.16

Microsoft C# source code generation based on the language document object model
======================================================

[![Version](http://img.shields.io/npm/v/@hexarc/csharp-dom.svg)](https://www.npmjs.org/package/@hexarc/csharp-dom)
[![License](http://img.shields.io/:license-mit-blue.svg)](http://badges.mit-license.org)
[![Downloads](http://img.shields.io/npm/dm/@hexarc/csharp-dom.svg)](https://npmjs.org/package/@hexarc/csharp-dom)
[![Downloads](http://img.shields.io/npm/dt/@hexarc/csharp-dom.svg)](https://npmjs.org/package/@hexarc/csharp-dom)

Generate Microsoft C# source files from any Node.js projects just using a simple and well-structured language document object model API.

This package is designed for usage with TypeScript and provides extensive typings for the C# document object model.

# Setup
Install with npm:

```sh
npm install @hexarc/csharp-dom
```

Using with node.js (ES6 syntax):

```js
import * as CSharpDom from "@hexarc/csharp-dom";
```

Or using the CommonJS module syntax:

```js
const CSharpDom = require("@hexarc/csharp-dom");
```

# Examples
* [Generate a POCO class](#generate-a-poco-class)
* [Generate an enum](#generate-an-enum)

## Generate a POCO class ##
```ts
import * as fs from "fs";
import * as CSharpDom from "@hexarc/csharp-dom";


const codeUnit: Hexarc.CSharpDom.CodeUnit = {
  name: "Point2D.cs",
  namespaces: [{
    path: ["Hexarc", "Geometry"],
    types: [{
      kind: "class",
      access: "public",
      modifier: "sealed",
      name: "Point2D",
      members: [{
        kind: "property",
        access: "public",
        type: { namespace: "System", name: "Single" },
        name: "X"
      }, {
        kind: "property",
        access: "public",
        type: { namespace: "System", name: "Single" },
        name: "Y"
      }]
    }]
  }]
};

fs.writeFileSync(codeUnit.name, CSharpDom.emit(codeUnit));
```

```cs
namespace Hexarc.Geometry
{
    public sealed class Point2D
    {
        public System.Single X { get; set; }
        
        public System.Single Y { get; set; }
    }
}
```

## Generate an enum ##
```ts
import * as fs from "fs";
import * as CSharpDom from "@hexarc/csharp-dom";


const codeUnit: Hexarc.CSharpDom.CodeUnit = {
  name: "enum.cs",
  namespaces: [{
    path: ["Hexarc", "Flags"],
    types: [{
      kind: "enum",
      access: "public",
      name: "Direction",
      members: [{
        name: "Up"
      }, {
        name: "Down"
      }, {
        name: "Left"
      }, {
        name: "Right"
      }]
    }]
  }]
};

fs.writeFileSync(codeUnit.name, CSharpDom.emit(codeUnit));
```

```csharp
namespace Hexarc.Flags
{
    public enum Direction
    {
        Up,
        Down,
        Left,
        Right
    }
}
```

## License

[MIT](LICENSE)
npm package: @hexarc/romanify-russian-names
Description: Library for romanization of russian names
Author: Max Koverdyaev
Latest version: 1.0.4

Romanization of russian names
===========

[![Version](http://img.shields.io/npm/v/@hexarc/romanify-russian-names.svg)](https://www.npmjs.org/package/@hexarc/romanify-russian-names)
[![License](http://img.shields.io/:license-mit-blue.svg)](http://badges.mit-license.org)
[![Downloads](http://img.shields.io/npm/dm/@hexarc/romanify-russian-names.svg)](https://npmjs.org/package/@hexarc/romanify-russian-names)
[![Downloads](http://img.shields.io/npm/dt/@hexarc/romanify-russian-names.svg)](https://npmjs.org/package/@hexarc/romanify-russian-names)

This library helps with transliterating russian cyrillic names into the latin script.

Supported transliteration methods:
- MID ORDER #4271


## Setup
Install with npm:

```sh
npm install @hexarc/romanify-russian-names
```

Using with node.js (ES6 syntax):

```js
import { romanify } from "@hexarc/romanify-russian-names";
```

Or using the CommonJS module syntax:

```js
const { romanify } = require("@hexarch/romanify-russian-names");
```

## Usage
```js
let romanName = romanify("Василий Петрович Долговязов");
console.log(romanName); //Vasilii Petrovich Dolgoviazov
```

## License

[MIT](LICENSE)