@vnodes/net 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,35 @@
1
+ ![Npm version](https://img.shields.io/npm/v/@vnodes/net)
2
+ ![Npm downloads](https://img.shields.io/npm/dm/@vnodes/net)
3
+ ![Build Status](https://img.shields.io/github/actions/workflow/status/vnodes/vnodes/ci.yml)
4
+ ![Doc Status](https://img.shields.io/github/actions/workflow/status/vnodes/vnodes/doc.yml)
5
+ ![Bundle size](https://img.shields.io/bundlephobia/min/@vnodes/net)
6
+
7
+ <p align="center">
8
+ <img srcset="./assets/favicon.png, https://vnodes.github.io/vnodes/libs/net/assets/favicon.png" alt="Logo" width="200" height="200" style="border-radius: 100%"/>
9
+ </p>
10
+
11
+ ## @vnodes/net
12
+
13
+ Common net functions
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ pnpm add @vnodes/net
19
+ ```
20
+
21
+ ## 💖 Support My Work
22
+
23
+ If you find my open-source contributions or the **@vnodes/net** project helpful, consider supporting my work. Your sponsorship helps me maintain these projects and explore new enterprise patterns.
24
+
25
+ [![CashApp](https://img.shields.io/badge/Sponsor%20me-%23EA4AAA.svg?style=for-the-badge&logo=github-sponsors&logoColor=white)](https://cash.app/$puqlib)
26
+
27
+ ---
28
+
29
+ ## 🤝 Connect with Me
30
+
31
+ <p align="left">
32
+ <a href="mailto:robert.brightline+vnodes-net@gmail.com">
33
+ <img src="https://img.shields.io/badge/Email-D14836?style=for-the-badge&logo=gmail&logoColor=white" />
34
+ </a>
35
+ </p>
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { readFileSync } from 'node:fs';
4
+ import { dirname, join } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = dirname(__filename);
9
+ const packageJsonPath = join(__dirname, '..', 'package.json');
10
+ const packageJson = readFileSync(packageJsonPath, { encoding: 'utf-8' });
11
+ const version = JSON.parse(packageJson).version;
12
+ console.log(version);
@@ -0,0 +1,2 @@
1
+ export * from './lib/get-port.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ // @index(['./**/*.ts', '!./**/*.{spec,test}.ts'], f => `export * from '${f.path}.js'`)
2
+ export * from './lib/get-port.js';
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @index(['./**/*.ts', '!./**/*.{spec,test}.ts'], f => `export * from '${f.path}.js'`)\nexport * from './lib/get-port.js';\n"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,cAAc,oBAAoB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Get an open port number between {@link start} and {@link end}F
3
+ */
4
+ export declare function getPort(start: number, end: number): Promise<number>;
5
+ //# sourceMappingURL=get-port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-port.d.ts","sourceRoot":"","sources":["../../src/lib/get-port.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,mBAsBvD"}
@@ -0,0 +1,24 @@
1
+ import { createServer } from 'node:net';
2
+ /**
3
+ * Get an open port number between {@link start} and {@link end}F
4
+ */ export async function getPort(start, end) {
5
+ for(let i = start; i <= end; i++){
6
+ const result = await new Promise((resolve)=>{
7
+ const server = createServer();
8
+ server.once('error', ()=>{
9
+ server.close();
10
+ resolve(false);
11
+ });
12
+ server.once('listening', ()=>{
13
+ server.close(()=>resolve(true));
14
+ });
15
+ server.listen(i, '127.0.0.1');
16
+ });
17
+ if (result === true) {
18
+ return i;
19
+ }
20
+ }
21
+ throw new Error(`There is no available port between ${start} and ${end}`);
22
+ }
23
+
24
+ //# sourceMappingURL=get-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/get-port.ts"],"sourcesContent":["import { createServer, type Server } from 'node:net';\n\n/**\n * Get an open port number between {@link start} and {@link end}F\n */\nexport async function getPort(start: number, end: number) {\n for (let i = start; i <= end; i++) {\n const result = await new Promise((resolve) => {\n const server: Server = createServer();\n server.once('error', () => {\n server.close();\n resolve(false);\n });\n\n server.once('listening', () => {\n server.close(() => resolve(true));\n });\n\n server.listen(i, '127.0.0.1');\n });\n\n if (result === true) {\n return i;\n }\n }\n\n throw new Error(`There is no available port between ${start} and ${end}`);\n}\n"],"names":["createServer","getPort","start","end","i","result","Promise","resolve","server","once","close","listen","Error"],"mappings":"AAAA,SAASA,YAAY,QAAqB,WAAW;AAErD;;CAEC,GACD,OAAO,eAAeC,QAAQC,KAAa,EAAEC,GAAW;IACpD,IAAK,IAAIC,IAAIF,OAAOE,KAAKD,KAAKC,IAAK;QAC/B,MAAMC,SAAS,MAAM,IAAIC,QAAQ,CAACC;YAC9B,MAAMC,SAAiBR;YACvBQ,OAAOC,IAAI,CAAC,SAAS;gBACjBD,OAAOE,KAAK;gBACZH,QAAQ;YACZ;YAEAC,OAAOC,IAAI,CAAC,aAAa;gBACrBD,OAAOE,KAAK,CAAC,IAAMH,QAAQ;YAC/B;YAEAC,OAAOG,MAAM,CAACP,GAAG;QACrB;QAEA,IAAIC,WAAW,MAAM;YACjB,OAAOD;QACX;IACJ;IAEA,MAAM,IAAIQ,MAAM,CAAC,mCAAmC,EAAEV,MAAM,KAAK,EAAEC,KAAK;AAC5E"}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@vnodes/net",
3
+ "version": "0.0.23",
4
+ "description": "@vnodes/net",
5
+ "keywords": [
6
+ "net"
7
+ ],
8
+ "author": {
9
+ "name": "Robert Brightline",
10
+ "email": "robert.brightline+vnodes-net@gmail.com",
11
+ "url": "https://vnodes.github.io/vnodes"
12
+ },
13
+ "homepage": "https://vnodes.github.io/vnodes/libs/net",
14
+ "icon": "https://vnodes.github.io/vnodes/libs/net/assets/favicon.png",
15
+ "funding": [
16
+ "https://cash.app/$puqlib"
17
+ ],
18
+ "bin": {
19
+ "version": "./bin/version.mjs"
20
+ },
21
+ "type": "module",
22
+ "main": "./dist/index.js",
23
+ "module": "./dist/index.js",
24
+ "types": "./dist/index.d.ts",
25
+ "exports": {
26
+ "./package.json": "./package.json",
27
+ ".": {
28
+ "@vnodes/source": "./src/index.ts",
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js",
31
+ "default": "./dist/index.js"
32
+ }
33
+ },
34
+ "files": [
35
+ "dist",
36
+ "bin",
37
+ "!**/*.tsbuildinfo"
38
+ ],
39
+ "nx": {
40
+ "sourceRoot": "libs/net/src",
41
+ "targets": {
42
+ "build": {},
43
+ "doc": {},
44
+ "lint": {}
45
+ },
46
+ "tags": [
47
+ "lib"
48
+ ]
49
+ },
50
+ "dependencies": {
51
+ "@swc/helpers": "~0.5.18"
52
+ },
53
+ "publishConfig": {
54
+ "access": "public",
55
+ "tag": "latest"
56
+ }
57
+ }