# lock-em-sock-em

> atomic, cross-platform tcp domain servers & sockets

Latest version **1.0.0** (published 2022-06-23) · ISC license · 0 weekly downloads

## Install

```sh
npm install lock-em-sock-em
pnpm add lock-em-sock-em
yarn add lock-em-sock-em
bun add lock-em-sock-em
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2022-06-23 |
| First published | 2022-06-23 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 5.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | utanapishtim |

## Links

- npm: https://www.npmjs.com/package/lock-em-sock-em
- npm.io page: https://npm.io/package/lock-em-sock-em

## Dependencies (1)

- [fd-lock](https://npm.io/package/fd-lock.md) ^1.2.0

## Recent versions

- 1.0.0 (latest) — 2022-06-23

## README

# lock'em sock'em

atomic, cross-platform tcp domain servers & sockets

## Install

`npm i lock-em-sock-em`

## Usage

```js
const { createServer, connect, lockemSockem } = require('lock-em-sock-em')

const id = 'lock-em-sock-em'

const server = await createServer(id)

server.on('connection', async (socket) => {
  let str = ''
  for await (const buf of socket) str += buf
  console.log(str)
})

const socket = await connect(id)

socket.write(Buffer.from(id))
socket.end()

const { acquired } = await lockemSockem(id)
console.log('acquired file lock?', acquired)
```

## API

#### `const server = await createServer(id)`

`server` is an instance of `net.Server()`

#### `const socket = await connect(id)`

`socket` is an instance of `net.Socket()`

#### `const { handle, lock, acquired, sock } = await lockemSockem(id)`

* `handle` is an instance of `fs.FileHandle`
* `lock` is the `String` path of the file lock
* `acquired` is a `Boolean` indicating whether the file lock was successfully acquired
* `sock` is the `String` path of the domain socket

---
_Source: https://npm.io/package/lock-em-sock-em · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
