open-index/open-npm huggingface dataset:
npm package: @sim.perelli/dot-conf
Description: Simple .conf file parser for Nodejs
Author: Simone Perelli
Latest version: 0.2.2

# dot-conf
Simple .conf file parser for Nodejs

This is mostly done with educational purposes.
```javascript
npm install @sim.perelli/dot-conf
```

Let's write a simple configuration file

```bash
# main.conf
# this is a comment 
log_level = debug

server_name = _hostname_ # this is a symbol

# this is a namespace
@database
username = alfred # this is an inline comment
host = _localhost_
database = wayne_mansion

```
dot-conf will try its best to retrieve all the configuration files and serve them in a useful way
```javascript
// somewhere else
const conf = await dotConf('main.conf')

conf('log_level')
// debug

conf('server_name')
// nightwing01.batcave.com

conf('database.username')
// 'alfred'

conf('mislept.or.undefined')
// undefined

conf('*')
// { log_level: 'warn', database: { username: 'alfred' ...

conf('database')
// { host: '127.0.0.1', username: 'alfred' ...

```
If you're organizing your application in submodules and don't feel like letting know the persistence module what an eventbus or an email server are, you can always detach a namespace from the main conf
```javascript
const databaseConf = conf.detach('database')

//somewhere in the persistence module
const username = databaseConf('username')
```

Maybe you would like to define default values for missing configuration variables
```javascript
const defaultTo = {
    log_level: 'info',
    server_name: 'nightwing01.batcave.com'
}

const conf = dotConf('main.conf',{ defaultTo })
```
Ehy what is this symbol thingy?
```bash
// some.conf
server_name = _hostname_
timeout = _timeout_
```
dot-conf let's you define placeholders (sorrounded by _) to access dynamically computed or very common values
```javascript
// a symbol is essentially a function
const symbols = {
    timeout: () => 5*1000
}

const conf = dotConf('main.file', { symbols })
```

Any suggestion is of course very welcome.
npm package: @sim.perelli/spaghetti
Description: Simple wrapper, run a bash script directly or through wsl
Author: Simone Perelli
Latest version: 0.5.1
Deprecated: this package has been deprecated

# spaghetti

You know you shouldn't but sometimes you have to
```json
{
    "scripts": {
        "do-something": "./do-something.sh"
    }
}
```

The problem gets bigger when a random teammate works with Windows

```json
{
    "scripts": {
        "do-something": "./do-something.sh",
        "do-something-win": "bash -c \"./do-something.sh\""
    }
}
```

Meet spaghetti...
```json
{
    "scripts": {
        "do-something": "spaghetti ./do-something.sh"
    }
}
```

spaghetti will check for `process.platform === win32` and wrap
the bash script with "bash -c" for you. Just that.
npm package: @sim0n92/mermaid-editor-angular
Description: Angular wrapper for Mermaid Editor V2.
Latest version: 1.0.2

# @sim0n92/mermaid-editor-angular

Angular wrapper for Mermaid Editor V2.

## Installation

```bash
npm install @sim0n92/mermaid-editor-angular
```

## Quick Start

### 1. Import the Component

```typescript
import { Component } from '@angular/core';
import { MermaidEditorComponent } from '@sim0n92/mermaid-editor-angular';

@Component({
  selector: 'app-example',
  standalone: true,
  imports: [MermaidEditorComponent],
  template: `
    <mermaid-editor
      [initialCode]="diagramCode"
      [theme]="'light'"
      [height]="'600px'"
      (codeChange)="onCodeChange($event)"
      (modelChange)="onModelChange($event)"
      (editorReady)="onEditorReady($event)"
    >
    </mermaid-editor>
  `
})
export class ExampleComponent {
  diagramCode = `flowchart TD
    A[Start] --> B[Process]
    B --> C[Decision]
    C -->|Yes| D[Success]
    C -->|No| E[Error]`;

  onCodeChange(code: string) {
    console.log('Code changed:', code);
  }

  onModelChange(model: any) {
    console.log('Model changed:', model);
  }

  onEditorReady(editor: any) {
    console.log('Editor ready:', editor);
  }
}
```

## API

### Inputs

| Property | Type | Default | Description |
|----------|------|---------|-------------|
| `initialCode` | `string` | `undefined` | Initial Mermaid diagram code |
| `theme` | `'light' \| 'dark'` | `'light'` | Editor theme |
| `readonly` | `boolean` | `false` | Read-only mode |
| `height` | `string` | `'600px'` | Container height |
| `width` | `string` | `'100%'` | Container width |

### Outputs

| Event | Type | Description |
|-------|------|-------------|
| `modelChange` | `EventEmitter<any>` | Diagram model changed |
| `codeChange` | `EventEmitter<string>` | Code changed |
| `editorReady` | `EventEmitter<any>` | Editor initialized |
| `editorError` | `EventEmitter<Error>` | Error occurred |

### Methods

| Method | Return Type | Description |
|--------|-------------|-------------|
| `getModel()` | `any \| null` | Get current diagram model |
| `getCode()` | `string` | Get current code |
| `setCode(code)` | `Promise<void>` | Set code programmatically |
| `getEditorInstance()` | `any \| undefined` | Get underlying editor instance |
| `isEditorReady()` | `boolean` | Check if editor is ready |

## Peer Dependencies

- `@angular/common` ^20.0.0
- `@angular/core` ^20.0.0
- `rxjs` ^7.8.0

## License

MIT