open-index/open-npm huggingface dataset:
npm package: @oldbros/shiftjs
Description: Oldbros functional library, pure, readable and fast
Author: Georg Oldenburger
Latest version: 1.2.0

# @oldbros/shiftjs

![Documented](/docs/coverage.svg "Documented")
![Test Covered](/docs/testCoverage.svg "Test Covered")

**ShiftJS** is a functional programming library provided by **@oldbros** organization

Inspired from [**Ramda**](https://ramdajs.com/) and [**HowProgrammingWorks**](https://github.com/HowProgrammingWorks)

Faster, lightweight and readble code compare to **ramda**

JS implementations of **Clojure** persistent data structures: Persistent Vector.

Original code: https://github.com/clojure/clojure/tree/master/src/jvm/clojure/lang

## Installation

```sh
npm install @oldbros/shiftjs
```
npm package: @oldbros/tsconfig
Description: Oldbros typescript configuration
Author: Georg Oldenburger
Latest version: 1.0.2

# @oldbros/tsconfig

**OldBros** recommended typescript configuration

## Installing

```sh
npm install --save-dev @oldbros/tsconfig
```

## Usage

Add this line to your `tsconfig.json` file:

```json
{
  "extends": "@oldbros/tsconfig"
}
```

Add check script to your `package.json` file:

```json
{
  "scripts": {
    "check": "npx tsc --project ."
  }
}
```

Run `npm run check` command to check js files with ts compiler

[**Code examples**](https://github.com/georgolden/ts-guideline)

## Features

- Support latest ECMAScript2022 language features
- Uses ECMAScript Modules
- Recommended for NodeJS v18 and higher
- No typescript experimental features

## Description

This configuration is to check JavaScript with TypeScript compiler.

### Why doesn't **OldBros** use TypeScript as a main language:

1. There is no TypeScript RFC. Nobody knows what TypeScript actually is in details.
2. TypeScript is not a JavaScript superset. It does not support all JavaScript syntax such as `await new` and many others
3. TypeScript specific features. Enums, Namespaces, Decorators, `private` keyword (there are native js private fields)

### Why **OldBros** uses TypeScript compiler for JavaScript:

1. Explicit interfaces. They are especially useful for designing libraries and applications.
2. IDE autocompletion and hints. Those are quite useful during development time.
3. More elegant than JSDoc. The problem with JSDoc - it is quite heavy compare to TypeScript types.
4. Disctinct types and interfaces declarations with `d.ts` files are sometimes useful.
npm package: @oldendev/mson
Description: JS code serialization library compatible with NodeJS vm
Author: Georg Oldenburger
Latest version: 1.0.1

# MSON

Js code serialization library. Supports js native types. Stringify a func or an object to be compatible with NodeJS vm module.
Server to server use. Not for client.

v1.0.0
Features:

- `stringify` - stringifies a jscode to compatible format with Node.js vm module
- `parse` - parses a jscode string in to object or function with `Metarhia/metavm` module
- `stringFrom` - an object that has methods equal to js types. Map serrialized as an object. Set as an array. For number, boolean and bigint one method called primitives

This library is for internal use with `Metarhia/impress` application server
npm package: @oldendev/plugins
Description: CRUD plugin for Metarhia impress, metasql
Author: Georg Oldenburger
Latest version: 0.5.0

# CRUD plugin for Metarhia impress, metasql

## Description

This plugin contains features such as caching and hooks for CRUDs
It generates espoints for Metarhia impress application server with predifined configuration such as `metasql/crud` but rich featured

## Usage

Create file in impress application folder. `<yourFileName>.<version>.js`

File `example.1.js`:

```js
({
  plugin: 'oldendev/crud',
  database: db.pg,
  entities: {
    Doctor: ['get', 'select'],
    Patient: ['get', 'select'],
    Reason: ['get', 'select'],
  },
});
```