@tapjs/processinfo 1.0.11 → 2.0.0

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.
Files changed (166) hide show
  1. package/README.md +20 -11
  2. package/dist/cjs/argv-to-node-options.d.ts +2 -0
  3. package/dist/cjs/argv-to-node-options.d.ts.map +1 -0
  4. package/dist/cjs/argv-to-node-options.js +6 -0
  5. package/dist/cjs/argv-to-node-options.js.map +1 -0
  6. package/dist/cjs/child_process.d.ts +205 -0
  7. package/dist/cjs/child_process.d.ts.map +1 -0
  8. package/dist/cjs/child_process.js +109 -0
  9. package/dist/cjs/child_process.js.map +1 -0
  10. package/dist/cjs/cjs.d.ts +2 -0
  11. package/dist/cjs/cjs.d.ts.map +1 -0
  12. package/dist/cjs/cjs.js +5 -0
  13. package/dist/cjs/cjs.js.map +1 -0
  14. package/dist/cjs/get-exclude.d.ts +3 -0
  15. package/dist/cjs/get-exclude.d.ts.map +1 -0
  16. package/dist/cjs/get-exclude.js +23 -0
  17. package/dist/cjs/get-exclude.js.map +1 -0
  18. package/dist/cjs/get-process-info.d.ts +25 -0
  19. package/dist/cjs/get-process-info.d.ts.map +1 -0
  20. package/dist/cjs/get-process-info.js +69 -0
  21. package/dist/cjs/get-process-info.js.map +1 -0
  22. package/dist/cjs/index.d.ts +44 -0
  23. package/dist/cjs/index.d.ts.map +1 -0
  24. package/dist/cjs/index.js +148 -0
  25. package/dist/cjs/index.js.map +1 -0
  26. package/dist/cjs/json-file.d.ts +3 -0
  27. package/dist/cjs/json-file.d.ts.map +1 -0
  28. package/dist/cjs/json-file.js +20 -0
  29. package/dist/cjs/json-file.js.map +1 -0
  30. package/dist/cjs/loader-paths.d.ts +5 -0
  31. package/dist/cjs/loader-paths.d.ts.map +1 -0
  32. package/dist/cjs/loader-paths.js +35 -0
  33. package/dist/cjs/loader-paths.js.map +1 -0
  34. package/dist/cjs/node-options-env.d.ts +6 -0
  35. package/dist/cjs/node-options-env.d.ts.map +1 -0
  36. package/dist/cjs/node-options-env.js +58 -0
  37. package/dist/cjs/node-options-env.js.map +1 -0
  38. package/dist/cjs/node-options-to-argv.d.ts +2 -0
  39. package/dist/cjs/node-options-to-argv.d.ts.map +1 -0
  40. package/dist/cjs/node-options-to-argv.js +58 -0
  41. package/dist/cjs/node-options-to-argv.js.map +1 -0
  42. package/dist/cjs/package.json +3 -0
  43. package/dist/cjs/process-info-node.d.ts +24 -0
  44. package/dist/cjs/process-info-node.d.ts.map +1 -0
  45. package/dist/cjs/process-info-node.js +100 -0
  46. package/dist/cjs/process-info-node.js.map +1 -0
  47. package/dist/cjs/register-cjs.d.ts +2 -0
  48. package/dist/cjs/register-cjs.d.ts.map +1 -0
  49. package/dist/cjs/register-cjs.js +21 -0
  50. package/dist/cjs/register-cjs.js.map +1 -0
  51. package/dist/cjs/register-coverage.d.ts +7 -0
  52. package/dist/cjs/register-coverage.d.ts.map +1 -0
  53. package/dist/cjs/register-coverage.js +94 -0
  54. package/dist/cjs/register-coverage.js.map +1 -0
  55. package/dist/cjs/register-env.d.ts +2 -0
  56. package/dist/cjs/register-env.d.ts.map +1 -0
  57. package/dist/cjs/register-env.js +26 -0
  58. package/dist/cjs/register-env.js.map +1 -0
  59. package/dist/cjs/register-process-end.d.ts +2 -0
  60. package/dist/cjs/register-process-end.d.ts.map +1 -0
  61. package/dist/cjs/register-process-end.js +30 -0
  62. package/dist/cjs/register-process-end.js.map +1 -0
  63. package/dist/cjs/require-resolve-cjs.d.ts.map +1 -0
  64. package/dist/cjs/require-resolve-cjs.js.map +1 -0
  65. package/dist/cjs/require-resolve.d.ts +3 -0
  66. package/dist/cjs/require-resolve.js +9 -0
  67. package/dist/cjs/spawn-opts.d.ts +10 -0
  68. package/dist/cjs/spawn-opts.d.ts.map +1 -0
  69. package/dist/cjs/spawn-opts.js +18 -0
  70. package/dist/cjs/spawn-opts.js.map +1 -0
  71. package/dist/cjs/x.d.ts +2 -0
  72. package/dist/cjs/x.d.ts.map +1 -0
  73. package/dist/cjs/x.js +5 -0
  74. package/dist/cjs/x.js.map +1 -0
  75. package/dist/mjs/argv-to-node-options.d.ts +2 -0
  76. package/dist/mjs/argv-to-node-options.d.ts.map +1 -0
  77. package/dist/mjs/argv-to-node-options.js +2 -0
  78. package/dist/mjs/argv-to-node-options.js.map +1 -0
  79. package/dist/mjs/child_process.d.ts +205 -0
  80. package/dist/mjs/child_process.d.ts.map +1 -0
  81. package/dist/mjs/child_process.js +99 -0
  82. package/dist/mjs/child_process.js.map +1 -0
  83. package/dist/mjs/esm.d.mts +11 -0
  84. package/dist/mjs/esm.d.mts.map +1 -0
  85. package/dist/mjs/esm.mjs +45 -0
  86. package/dist/mjs/esm.mjs.map +1 -0
  87. package/dist/mjs/get-exclude.d.ts +3 -0
  88. package/dist/mjs/get-exclude.d.ts.map +1 -0
  89. package/dist/mjs/get-exclude.js +19 -0
  90. package/dist/mjs/get-exclude.js.map +1 -0
  91. package/dist/mjs/get-process-info.d.ts +25 -0
  92. package/dist/mjs/get-process-info.d.ts.map +1 -0
  93. package/dist/mjs/get-process-info.js +64 -0
  94. package/dist/mjs/get-process-info.js.map +1 -0
  95. package/dist/mjs/index.d.ts +44 -0
  96. package/dist/mjs/index.d.ts.map +1 -0
  97. package/dist/mjs/index.js +130 -0
  98. package/dist/mjs/index.js.map +1 -0
  99. package/dist/mjs/json-file.d.ts +3 -0
  100. package/dist/mjs/json-file.d.ts.map +1 -0
  101. package/dist/mjs/json-file.js +15 -0
  102. package/dist/mjs/json-file.js.map +1 -0
  103. package/dist/mjs/loader-paths.d.ts +5 -0
  104. package/dist/mjs/loader-paths.d.ts.map +1 -0
  105. package/dist/mjs/loader-paths.js +30 -0
  106. package/dist/mjs/loader-paths.js.map +1 -0
  107. package/dist/mjs/node-options-env.d.ts +6 -0
  108. package/dist/mjs/node-options-env.d.ts.map +1 -0
  109. package/dist/mjs/node-options-env.js +54 -0
  110. package/dist/mjs/node-options-env.js.map +1 -0
  111. package/dist/mjs/node-options-to-argv.d.ts +2 -0
  112. package/dist/mjs/node-options-to-argv.d.ts.map +1 -0
  113. package/dist/mjs/node-options-to-argv.js +54 -0
  114. package/dist/mjs/node-options-to-argv.js.map +1 -0
  115. package/dist/mjs/package.json +3 -0
  116. package/dist/mjs/process-info-node.d.ts +24 -0
  117. package/dist/mjs/process-info-node.d.ts.map +1 -0
  118. package/dist/mjs/process-info-node.js +96 -0
  119. package/dist/mjs/process-info-node.js.map +1 -0
  120. package/dist/mjs/register-cjs.d.ts +2 -0
  121. package/dist/mjs/register-cjs.d.ts.map +1 -0
  122. package/dist/mjs/register-cjs.js +17 -0
  123. package/dist/mjs/register-cjs.js.map +1 -0
  124. package/dist/mjs/register-coverage.d.ts +7 -0
  125. package/dist/mjs/register-coverage.d.ts.map +1 -0
  126. package/dist/mjs/register-coverage.js +89 -0
  127. package/dist/mjs/register-coverage.js.map +1 -0
  128. package/dist/mjs/register-env.d.ts +2 -0
  129. package/dist/mjs/register-env.d.ts.map +1 -0
  130. package/dist/mjs/register-env.js +19 -0
  131. package/dist/mjs/register-env.js.map +1 -0
  132. package/dist/mjs/register-process-end.d.ts +2 -0
  133. package/dist/mjs/register-process-end.d.ts.map +1 -0
  134. package/dist/mjs/register-process-end.js +26 -0
  135. package/dist/mjs/register-process-end.js.map +1 -0
  136. package/dist/mjs/require-resolve.d.ts +3 -0
  137. package/dist/mjs/require-resolve.d.ts.map +1 -0
  138. package/dist/mjs/require-resolve.js +9 -0
  139. package/dist/mjs/require-resolve.js.map +1 -0
  140. package/dist/mjs/spawn-opts.d.ts +10 -0
  141. package/dist/mjs/spawn-opts.d.ts.map +1 -0
  142. package/dist/mjs/spawn-opts.js +14 -0
  143. package/dist/mjs/spawn-opts.js.map +1 -0
  144. package/dist/mjs/x.d.ts +2 -0
  145. package/dist/mjs/x.d.ts.map +1 -0
  146. package/dist/mjs/x.js +2 -0
  147. package/dist/mjs/x.js.map +1 -0
  148. package/package.json +49 -19
  149. package/index.d.ts +0 -196
  150. package/lib/argv-to-node-options.cjs +0 -2
  151. package/lib/child_process.cjs +0 -81
  152. package/lib/cjs.cjs +0 -16
  153. package/lib/esm.mjs +0 -74
  154. package/lib/get-exclude.cjs +0 -21
  155. package/lib/get-process-info.cjs +0 -45
  156. package/lib/index.cjs +0 -163
  157. package/lib/index.d.cts +0 -196
  158. package/lib/index.d.ts +0 -196
  159. package/lib/json-file.cjs +0 -19
  160. package/lib/node-options-env.cjs +0 -100
  161. package/lib/node-options-to-argv.cjs +0 -52
  162. package/lib/process-info-node.cjs +0 -84
  163. package/lib/register-coverage.cjs +0 -74
  164. package/lib/register-env.cjs +0 -21
  165. package/lib/register-process-end.cjs +0 -29
  166. package/lib/spawn-opts.cjs +0 -16
package/lib/esm.mjs DELETED
@@ -1,74 +0,0 @@
1
- // usage: node '--loader=esm.mjs?other-loader&otherotherloader' foo.mjs
2
- import { fileURLToPath } from 'url'
3
- import { getProcessInfo } from './get-process-info.cjs'
4
- import { getExclude } from './get-exclude.cjs'
5
- import './cjs.cjs'
6
-
7
- // on Node v20, loaders are executed in a separate isolated environment
8
- // As a result, to register coverage and track files, we need to act in
9
- // the globalPreload function. The load() method posts a message with the
10
- // filename being loaded, because any registrations that happen in the
11
- // loader thread will not have any effect.
12
- // The check for the 'port' being undefined is to allow for support back to
13
- // 16.12, which had a globalPreload method, but did not have a sendMessage
14
- // port in that environment.
15
- let PORT = null
16
- export const globalPreload = context => {
17
- const loader = fileURLToPath(import.meta.url)
18
- const { port } = context || {}
19
- PORT = port
20
- return `
21
- if (typeof port !== 'undefined') {
22
- const { createRequire } = getBuiltin('module')
23
- const {pid, ppid} = getBuiltin('process')
24
- const require = createRequire(${JSON.stringify(loader)})
25
- const { getProcessInfo } = require('./get-process-info.cjs')
26
- const { getExclude } = require('./get-exclude.cjs')
27
- require('./cjs.cjs')
28
- const processInfo = getProcessInfo()
29
- port.onmessage = (e) => processInfo.files.push(e.data)
30
- port.unref()
31
- }
32
- `
33
- }
34
-
35
- const processInfo = getProcessInfo()
36
- const exclude = getExclude('_TAPJS_PROCESSINFO_EXCLUDE_')
37
-
38
- let others = await Promise.all(
39
- [...new URL(import.meta.url).searchParams.keys()].map(s =>
40
- import(s).catch(() => ({}))
41
- )
42
- )
43
-
44
- let hasLoad = others.filter(loader => typeof loader.load === 'function')
45
- let hasResolve = others.filter(loader => typeof loader.resolve === 'function')
46
-
47
- const myLoad = defaultFn => async (url, context) => {
48
- if (/^file:/.test(url)) {
49
- const filename = fileURLToPath(url)
50
- if (!exclude.test(filename)) {
51
- processInfo.files.push(filename)
52
- if (PORT) {
53
- PORT.postMessage(filename)
54
- }
55
- }
56
- }
57
- return defaultFn(url, context, defaultFn)
58
- }
59
-
60
- export const load = async (url, context, defaultFn) =>
61
- runAll(hasLoad, 'load', url, context, myLoad(defaultFn))
62
-
63
- export const resolve = async (url, context, defaultFn) =>
64
- runAll(hasResolve, 'resolve', url, context, defaultFn)
65
-
66
- const runAll = async (set, method, url, context, defaultFn, i = 0) => {
67
- if (i >= set.length) {
68
- return defaultFn(url, context, defaultFn)
69
- } else {
70
- return set[i][method](url, context, (url, context, _) =>
71
- runAll(set, method, url, context, defaultFn, i + 1)
72
- )
73
- }
74
- }
@@ -1,21 +0,0 @@
1
- const defaultExclude =
2
- /(^|[\\/])(node_modules|\.tap|tap-testdir-.*?|tap-snapshots|tests?|[^\/]+\.test\.[cm]?js|__tests?__)([\\/]|$)/i
3
-
4
- const parseExclude = src => {
5
- const parsed = src.match(/^\/(.*)\/([a-z]*)$/)
6
- if (parsed) {
7
- try {
8
- return new RegExp(parsed[1], parsed[2])
9
- } catch (e) {}
10
- }
11
- }
12
-
13
- const getExclude = k => {
14
- const src = process.env[k]
15
- const exclude = (src && parseExclude(src)) || defaultExclude
16
- process.env[k] = String(exclude)
17
- return exclude
18
- }
19
-
20
- exports.defaultExclude = defaultExclude
21
- exports.getExclude = getExclude
@@ -1,45 +0,0 @@
1
- const { v4: uuid } = require('uuid')
2
-
3
- const envKey = k => `_TAPJS_PROCESSINFO_${k.toUpperCase()}_`
4
- const getEnv = k => process.env[envKey(k)]
5
- const setEnv = (k, v) => (process.env[envKey(k)] = v)
6
- const delEnv = k => delete process.env[envKey(k)]
7
-
8
- let processInfo = null
9
- const getProcessInfo = () => {
10
- if (!processInfo) {
11
- require('./register-env.cjs')
12
- require('./register-coverage.cjs')
13
- require('./register-process-end.cjs')
14
- processInfo = {
15
- hrstart: process.hrtime(),
16
- date: new Date().toISOString(),
17
- argv: process.argv,
18
- execArgv: process.execArgv,
19
- NODE_OPTIONS: process.env.NODE_OPTIONS,
20
- cwd: process.cwd(),
21
- pid: process.pid,
22
- ppid: process.ppid,
23
- parent: getEnv('parent') || null,
24
- uuid: uuid(),
25
- files: [],
26
- }
27
-
28
- if (!processInfo.parent) {
29
- processInfo.root = processInfo.uuid
30
- setEnv('root', processInfo.uuid)
31
- } else {
32
- processInfo.root = getEnv('root')
33
- }
34
- // this is the parent of any further child processes
35
- setEnv('parent', processInfo.uuid)
36
- const externalID = getEnv('external_id')
37
- if (externalID) {
38
- processInfo.externalID = externalID
39
- // externalID only applies to ONE process, not all its children.
40
- delEnv('external_id')
41
- }
42
- }
43
- return processInfo
44
- }
45
- module.exports = { getProcessInfo }
package/lib/index.cjs DELETED
@@ -1,163 +0,0 @@
1
- const {
2
- spawn,
3
- spawnSync,
4
- exec,
5
- execSync,
6
- execFile,
7
- execFileSync,
8
- } = require('./child_process.cjs')
9
-
10
- const { resolve, basename } = require('path')
11
-
12
- const { ProcessInfoNode } = require('./process-info-node.cjs')
13
-
14
- const {
15
- writeFileSync,
16
- readdirSync,
17
- rmSync,
18
- rmdirSync,
19
- mkdirSync,
20
- } = require('fs')
21
- const { writeFile, readdir, rm, rmdir, mkdir } = require('fs/promises')
22
-
23
- const { safeJSONSync, safeJSON } = require('./json-file.cjs')
24
-
25
- class ProcessInfo {
26
- constructor({
27
- dir = resolve(process.cwd(), '.tap/processinfo'),
28
- exclude = /(^|\\|\/)node_modules(\\|\/|$)/,
29
- } = {}) {
30
- this.dir = dir
31
- this.exclude = exclude
32
- this.roots = new Set()
33
- this.files = new Map()
34
- this.uuids = new Map()
35
- this.pendingRoot = new Map()
36
- this.pendingParent = new Map()
37
- this.externalIDs = new Map()
38
- }
39
-
40
- clear() {
41
- this.roots.clear()
42
- this.files.clear()
43
- this.uuids.clear()
44
- this.externalIDs.clear()
45
- }
46
-
47
- async save() {
48
- await mkdir(this.dir, { recursive: true })
49
- const writes = []
50
- for (const [uuid, info] of this.uuids.entries()) {
51
- const f = `${this.dir}/${uuid}.json`
52
- writes.push(writeFile(f, JSON.stringify(info) + '\n', 'utf8'))
53
- }
54
- await Promise.all(writes)
55
- }
56
-
57
- async saveSync() {
58
- mkdirSync(this.dir, { recursive: true })
59
- for (const [uuid, info] of this.uuids.entries()) {
60
- const f = `${this.dir}/${uuid}.json`
61
- writeFileSync(f, JSON.stringify(info) + '\n', 'utf8')
62
- }
63
- }
64
-
65
- async erase() {
66
- this.clear()
67
- /* istanbul ignore next - node version compat */
68
- try {
69
- await rm(this.dir, { recursive: true })
70
- } catch (e) {
71
- await rmdir(this.dir, { recursive: true })
72
- }
73
- }
74
-
75
- eraseSync() {
76
- this.clear()
77
- /* istanbul ignore next - node version compat */
78
- try {
79
- rmSync(this.dir, { recursive: true })
80
- } catch (e) {
81
- rmdirSync(this.dir, { recursive: true })
82
- }
83
- }
84
-
85
- async load() {
86
- const promises = []
87
- for (const entry of await readdir(this.dir).catch(() => [])) {
88
- const uuid = basename(entry, '.json')
89
- if (this.uuids.has(uuid)) {
90
- continue
91
- }
92
- const f = resolve(this.dir, entry)
93
- promises.push(
94
- safeJSON(f).then(data => {
95
- if (!data.uuid || data.uuid !== uuid) {
96
- return
97
- }
98
- new ProcessInfoNode(data).link(this)
99
- })
100
- )
101
- }
102
- await Promise.all(promises)
103
-
104
- return this
105
- }
106
-
107
- loadSync() {
108
- let entries
109
- try {
110
- entries = readdirSync(this.dir)
111
- } catch (_) {
112
- entries = []
113
- }
114
- for (const entry of entries) {
115
- const uuid = basename(entry, '.json')
116
- if (this.uuids.has(uuid)) {
117
- continue
118
- }
119
- const f = resolve(this.dir, entry)
120
- const data = safeJSONSync(f)
121
- if (!data.uuid || data.uuid !== uuid) {
122
- continue
123
- }
124
- new ProcessInfoNode(data).link(this)
125
- }
126
-
127
- return this
128
- }
129
-
130
- static get Node() {
131
- return ProcessInfoNode
132
- }
133
-
134
- static get ProcessInfo() {
135
- return ProcessInfo
136
- }
137
-
138
- static get spawn() {
139
- return spawn
140
- }
141
-
142
- static get spawnSync() {
143
- return spawnSync
144
- }
145
-
146
- static get exec() {
147
- return exec
148
- }
149
-
150
- static get execSync() {
151
- return execSync
152
- }
153
-
154
- static get execFile() {
155
- return execFile
156
- }
157
-
158
- static get execFileSync() {
159
- return execFileSync
160
- }
161
- }
162
-
163
- module.exports = ProcessInfo
package/lib/index.d.cts DELETED
@@ -1,196 +0,0 @@
1
- /// <reference types="node" />
2
- import {
3
- ChildProcess,
4
- ExecException,
5
- ExecFileOptions,
6
- ExecFileSyncOptions,
7
- ExecOptions,
8
- ExecSyncOptions,
9
- SpawnOptions,
10
- SpawnSyncOptions,
11
- SpawnSyncReturns,
12
- } from 'node:child_process'
13
-
14
- declare interface ProcessInfoOptions {
15
- dir?: string
16
- exclude?: RegExp
17
- }
18
-
19
- declare class ProcessInfoNode {
20
- public parent: ProcessInfoNode | null
21
- public children: ProcessInfoNode[] | null
22
- public files: string[] | null
23
- public externalID: string | null
24
- link(db: ProcessInfo): void
25
- }
26
-
27
- declare interface ProcessInfoSpawnOptions extends SpawnOptions {
28
- externalID?: string
29
- }
30
-
31
- declare interface ProcessInfoSpawnSyncOptions extends SpawnSyncOptions {
32
- externalID?: string
33
- }
34
- declare interface ProcessInfoSpawnSyncOptionsWithStringEncoding
35
- extends ProcessInfoSpawnSyncOptions {
36
- encoding: BufferEncoding
37
- }
38
- interface ProcessInfoSpawnSyncOptionsWithBufferEncoding
39
- extends ProcessInfoSpawnSyncOptions {
40
- encoding?: 'buffer' | null | undefined
41
- }
42
-
43
- declare interface ProcessInfoExecSyncOptions extends ExecSyncOptions {
44
- externalID?: string
45
- }
46
- declare interface ProcessInfoExecSyncOptionsWithStringEncoding
47
- extends ProcessInfoExecSyncOptions {
48
- encoding: BufferEncoding
49
- }
50
- declare interface ProcessInfoExecSyncOptionsWithBufferEncoding
51
- extends ProcessInfoExecSyncOptions {
52
- encoding?: 'buffer' | null | undefined
53
- }
54
-
55
- declare interface ProcessInfoExecOptions extends ExecOptions {
56
- externalID?: string
57
- }
58
- declare interface ProcessInfoExecFileSyncOptions extends ExecFileSyncOptions {
59
- externalID?: string
60
- }
61
- declare interface ProcessInfoExecFileSyncOptionsWithStringEncoding
62
- extends ProcessInfoExecFileSyncOptions {
63
- encoding: BufferEncoding
64
- }
65
- declare interface ProcessInfoExecFileSyncOptionsWithBufferEncoding
66
- extends ProcessInfoExecFileSyncOptions {
67
- encoding?: 'buffer' | null | undefined
68
- }
69
- declare interface ProcessInfoExecFileOptions extends ExecFileOptions {
70
- externalID?: string
71
- }
72
-
73
- declare class ProcessInfo {
74
- public dir: string
75
- public exclude: RegExp
76
- public roots: Set<ProcessInfoNode>
77
- public files: Map<string, Set<ProcessInfoNode>>
78
- public uuids: Map<string, ProcessInfoNode>
79
- public externalIDs: Map<string, ProcessInfoNode>
80
-
81
- private pendingRoot: Map<string, ProcessInfoNode>
82
- private pendingParent: Map<string, ProcessInfoNode>
83
-
84
- constructor(options?: ProcessInfoOptions)
85
-
86
- save(): Promise<void>
87
- saveSync(): void
88
- erase(): Promise<void>
89
- eraseSync(): void
90
-
91
- load(): Promise<ProcessInfo>
92
- loadSync(): ProcessInfo
93
-
94
- static get Node(): typeof ProcessInfoNode
95
- static get ProcessInfo(): typeof ProcessInfo
96
-
97
- static spawn(
98
- cmd: string,
99
- args: string[],
100
- options: ProcessInfoSpawnOptions
101
- ): ChildProcess
102
-
103
- static spawnSync(cmd: string): SpawnSyncReturns<Buffer>
104
- static spawnSync(
105
- cmd: string,
106
- options: ProcessInfoSpawnSyncOptionsWithStringEncoding
107
- ): SpawnSyncReturns<string>
108
- static spawnSync(
109
- cmd: string,
110
- options: ProcessInfoSpawnSyncOptionsWithBufferEncoding
111
- ): SpawnSyncReturns<Buffer>
112
- static spawnSync(
113
- cmd: string,
114
- options?: ProcessInfoSpawnSyncOptions
115
- ): SpawnSyncReturns<string | Buffer>
116
- static spawnSync(
117
- cmd: string,
118
- args: readonly string[]
119
- ): SpawnSyncReturns<Buffer>
120
- static spawnSync(
121
- cmd: string,
122
- args: readonly string[],
123
- options: ProcessInfoSpawnSyncOptionsWithStringEncoding
124
- ): SpawnSyncReturns<string>
125
- static spawnSync(
126
- cmd: string,
127
- args: readonly string[],
128
- options: ProcessInfoSpawnSyncOptionsWithBufferEncoding
129
- ): SpawnSyncReturns<Buffer>
130
- static spawnSync(
131
- cmd: string,
132
- args?: readonly string[],
133
- options?: ProcessInfoSpawnSyncOptions
134
- ): SpawnSyncReturns<string | Buffer>
135
-
136
- static exec(
137
- cmd: string,
138
- options: ProcessInfoExecOptions,
139
- callback?: (
140
- error: ExecException | null,
141
- stdout: Buffer,
142
- stderr: Buffer
143
- ) => void
144
- ): ChildProcess
145
-
146
- static execSync(
147
- cmd: string,
148
- options: ProcessInfoExecSyncOptionsWithStringEncoding
149
- ): string
150
- static execSync(
151
- cmd: string,
152
- options: ProcessInfoExecSyncOptionsWithBufferEncoding
153
- ): Buffer
154
- static execSync(
155
- cmd: string,
156
- options?: ProcessInfoExecSyncOptions
157
- ): string | Buffer
158
-
159
- static execFile(
160
- cmd: string,
161
- args: string[],
162
- options: ProcessInfoExecFileOptions
163
- ): ChildProcess
164
-
165
- static execFileSync(file: string): Buffer
166
- static execFileSync(
167
- file: string,
168
- options: ProcessInfoExecFileSyncOptionsWithStringEncoding
169
- ): string
170
- static execFileSync(
171
- file: string,
172
- options: ProcessInfoExecFileSyncOptionsWithBufferEncoding
173
- ): Buffer
174
- static execFileSync(
175
- file: string,
176
- options?: ProcessInfoExecFileSyncOptions
177
- ): string | Buffer
178
- static execFileSync(file: string, args: readonly string[]): Buffer
179
- static execFileSync(
180
- file: string,
181
- args: readonly string[],
182
- options: ProcessInfoExecFileSyncOptionsWithStringEncoding
183
- ): string
184
- static execFileSync(
185
- file: string,
186
- args: readonly string[],
187
- options: ProcessInfoExecFileSyncOptionsWithBufferEncoding
188
- ): Buffer
189
- static execFileSync(
190
- file: string,
191
- args?: readonly string[],
192
- options?: ProcessInfoExecFileSyncOptions
193
- ): string | Buffer
194
- }
195
-
196
- export = ProcessInfo
package/lib/index.d.ts DELETED
@@ -1,196 +0,0 @@
1
- /// <reference types="node" />
2
- import {
3
- ChildProcess,
4
- ExecException,
5
- ExecFileOptions,
6
- ExecFileSyncOptions,
7
- ExecOptions,
8
- ExecSyncOptions,
9
- SpawnOptions,
10
- SpawnSyncOptions,
11
- SpawnSyncReturns,
12
- } from 'node:child_process'
13
-
14
- declare interface ProcessInfoOptions {
15
- dir?: string
16
- exclude?: RegExp
17
- }
18
-
19
- declare class ProcessInfoNode {
20
- public parent: ProcessInfoNode | null
21
- public children: ProcessInfoNode[] | null
22
- public files: string[] | null
23
- public externalID: string | null
24
- link(db: ProcessInfo): void
25
- }
26
-
27
- declare interface ProcessInfoSpawnOptions extends SpawnOptions {
28
- externalID?: string
29
- }
30
-
31
- declare interface ProcessInfoSpawnSyncOptions extends SpawnSyncOptions {
32
- externalID?: string
33
- }
34
- declare interface ProcessInfoSpawnSyncOptionsWithStringEncoding
35
- extends ProcessInfoSpawnSyncOptions {
36
- encoding: BufferEncoding
37
- }
38
- interface ProcessInfoSpawnSyncOptionsWithBufferEncoding
39
- extends ProcessInfoSpawnSyncOptions {
40
- encoding?: 'buffer' | null | undefined
41
- }
42
-
43
- declare interface ProcessInfoExecSyncOptions extends ExecSyncOptions {
44
- externalID?: string
45
- }
46
- declare interface ProcessInfoExecSyncOptionsWithStringEncoding
47
- extends ProcessInfoExecSyncOptions {
48
- encoding: BufferEncoding
49
- }
50
- declare interface ProcessInfoExecSyncOptionsWithBufferEncoding
51
- extends ProcessInfoExecSyncOptions {
52
- encoding?: 'buffer' | null | undefined
53
- }
54
-
55
- declare interface ProcessInfoExecOptions extends ExecOptions {
56
- externalID?: string
57
- }
58
- declare interface ProcessInfoExecFileSyncOptions extends ExecFileSyncOptions {
59
- externalID?: string
60
- }
61
- declare interface ProcessInfoExecFileSyncOptionsWithStringEncoding
62
- extends ProcessInfoExecFileSyncOptions {
63
- encoding: BufferEncoding
64
- }
65
- declare interface ProcessInfoExecFileSyncOptionsWithBufferEncoding
66
- extends ProcessInfoExecFileSyncOptions {
67
- encoding?: 'buffer' | null | undefined
68
- }
69
- declare interface ProcessInfoExecFileOptions extends ExecFileOptions {
70
- externalID?: string
71
- }
72
-
73
- declare class ProcessInfo {
74
- public dir: string
75
- public exclude: RegExp
76
- public roots: Set<ProcessInfoNode>
77
- public files: Map<string, Set<ProcessInfoNode>>
78
- public uuids: Map<string, ProcessInfoNode>
79
- public externalIDs: Map<string, ProcessInfoNode>
80
-
81
- private pendingRoot: Map<string, ProcessInfoNode>
82
- private pendingParent: Map<string, ProcessInfoNode>
83
-
84
- constructor(options?: ProcessInfoOptions)
85
-
86
- save(): Promise<void>
87
- saveSync(): void
88
- erase(): Promise<void>
89
- eraseSync(): void
90
-
91
- load(): Promise<ProcessInfo>
92
- loadSync(): ProcessInfo
93
-
94
- static get Node(): typeof ProcessInfoNode
95
- static get ProcessInfo(): typeof ProcessInfo
96
-
97
- static spawn(
98
- cmd: string,
99
- args: string[],
100
- options: ProcessInfoSpawnOptions
101
- ): ChildProcess
102
-
103
- static spawnSync(cmd: string): SpawnSyncReturns<Buffer>
104
- static spawnSync(
105
- cmd: string,
106
- options: ProcessInfoSpawnSyncOptionsWithStringEncoding
107
- ): SpawnSyncReturns<string>
108
- static spawnSync(
109
- cmd: string,
110
- options: ProcessInfoSpawnSyncOptionsWithBufferEncoding
111
- ): SpawnSyncReturns<Buffer>
112
- static spawnSync(
113
- cmd: string,
114
- options?: ProcessInfoSpawnSyncOptions
115
- ): SpawnSyncReturns<string | Buffer>
116
- static spawnSync(
117
- cmd: string,
118
- args: readonly string[]
119
- ): SpawnSyncReturns<Buffer>
120
- static spawnSync(
121
- cmd: string,
122
- args: readonly string[],
123
- options: ProcessInfoSpawnSyncOptionsWithStringEncoding
124
- ): SpawnSyncReturns<string>
125
- static spawnSync(
126
- cmd: string,
127
- args: readonly string[],
128
- options: ProcessInfoSpawnSyncOptionsWithBufferEncoding
129
- ): SpawnSyncReturns<Buffer>
130
- static spawnSync(
131
- cmd: string,
132
- args?: readonly string[],
133
- options?: ProcessInfoSpawnSyncOptions
134
- ): SpawnSyncReturns<string | Buffer>
135
-
136
- static exec(
137
- cmd: string,
138
- options: ProcessInfoExecOptions,
139
- callback?: (
140
- error: ExecException | null,
141
- stdout: Buffer,
142
- stderr: Buffer
143
- ) => void
144
- ): ChildProcess
145
-
146
- static execSync(
147
- cmd: string,
148
- options: ProcessInfoExecSyncOptionsWithStringEncoding
149
- ): string
150
- static execSync(
151
- cmd: string,
152
- options: ProcessInfoExecSyncOptionsWithBufferEncoding
153
- ): Buffer
154
- static execSync(
155
- cmd: string,
156
- options?: ProcessInfoExecSyncOptions
157
- ): string | Buffer
158
-
159
- static execFile(
160
- cmd: string,
161
- args: string[],
162
- options: ProcessInfoExecFileOptions
163
- ): ChildProcess
164
-
165
- static execFileSync(file: string): Buffer
166
- static execFileSync(
167
- file: string,
168
- options: ProcessInfoExecFileSyncOptionsWithStringEncoding
169
- ): string
170
- static execFileSync(
171
- file: string,
172
- options: ProcessInfoExecFileSyncOptionsWithBufferEncoding
173
- ): Buffer
174
- static execFileSync(
175
- file: string,
176
- options?: ProcessInfoExecFileSyncOptions
177
- ): string | Buffer
178
- static execFileSync(file: string, args: readonly string[]): Buffer
179
- static execFileSync(
180
- file: string,
181
- args: readonly string[],
182
- options: ProcessInfoExecFileSyncOptionsWithStringEncoding
183
- ): string
184
- static execFileSync(
185
- file: string,
186
- args: readonly string[],
187
- options: ProcessInfoExecFileSyncOptionsWithBufferEncoding
188
- ): Buffer
189
- static execFileSync(
190
- file: string,
191
- args?: readonly string[],
192
- options?: ProcessInfoExecFileSyncOptions
193
- ): string | Buffer
194
- }
195
-
196
- export = ProcessInfo
package/lib/json-file.cjs DELETED
@@ -1,19 +0,0 @@
1
- // read the file and json decode it, if anything fails, return {}
2
-
3
- const { readFile } = require('fs/promises')
4
- const { readFileSync } = require('fs')
5
-
6
- const safeJSONSync = f => {
7
- try {
8
- return JSON.parse(readFileSync(f, 'utf8'))
9
- } catch (e) {
10
- return {}
11
- }
12
- }
13
-
14
- const safeJSON = f =>
15
- readFile(f, 'utf8')
16
- .then(d => JSON.parse(d))
17
- .catch(() => ({}))
18
-
19
- module.exports = { safeJSON, safeJSONSync }