@dxos/lock-file 0.8.4-main.84f28bd → 0.8.4-main.c1de068

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/lock-file",
3
- "version": "0.8.4-main.84f28bd",
3
+ "version": "0.8.4-main.c1de068",
4
4
  "description": "Lock file .",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -24,8 +24,8 @@
24
24
  ],
25
25
  "dependencies": {
26
26
  "fs-ext": "^2.0.0",
27
- "@dxos/async": "0.8.4-main.84f28bd",
28
- "@dxos/node-std": "0.8.4-main.84f28bd"
27
+ "@dxos/async": "0.8.4-main.c1de068",
28
+ "@dxos/node-std": "0.8.4-main.c1de068"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/fs-ext": "^2.0.0"
@@ -29,7 +29,7 @@ describe('LockFile', () => {
29
29
  await LockFile.release(handle2);
30
30
  });
31
31
 
32
- test('released when process exits', async () => {
32
+ test('released when process exits', { timeout: 10_000 }, async () => {
33
33
  const filename = join(TEST_DIR, `lock-${Math.random()}.lock`);
34
34
  onTestFinished(() => {
35
35
  if (existsSync(filename)) {
@@ -51,7 +51,7 @@ describe('LockFile', () => {
51
51
  });
52
52
  }
53
53
 
54
- await trigger.wait({ timeout: 1_000 });
54
+ await trigger.wait({ timeout: 5_000 });
55
55
 
56
56
  await expect(LockFile.acquire(filename)).rejects.toBeInstanceOf(Error);
57
57
 
@@ -84,11 +84,11 @@ describe('LockFile', () => {
84
84
 
85
85
  // NOTE: Self-contained so when function.toString is called the code runs.
86
86
  const lockInProcess = (filename: string) => {
87
- // eslint-disable-next-line @typescript-eslint/no-var-requires
87
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
88
88
  const { open } = require('node:fs/promises');
89
- // eslint-disable-next-line @typescript-eslint/no-var-requires
89
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
90
90
  const { constants } = require('node:fs');
91
- // eslint-disable-next-line @typescript-eslint/no-var-requires
91
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
92
92
  const { flock } = require('fs-ext');
93
93
 
94
94
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -1,50 +0,0 @@
1
- import "@dxos/node-std/globals";
2
-
3
- // src/lock-file.ts
4
- import { flock } from "fs-ext";
5
- import { existsSync } from "@dxos/node-std/fs";
6
- import { open, constants } from "@dxos/node-std/fs/promises";
7
- var LockFile = class _LockFile {
8
- static async acquire(filename) {
9
- const handle = await open(filename, constants.O_CREAT);
10
- await new Promise((resolve, reject) => {
11
- flock(handle.fd, "exnb", async (err) => {
12
- if (err) {
13
- reject(err);
14
- await handle.close();
15
- return;
16
- }
17
- resolve();
18
- });
19
- });
20
- return handle;
21
- }
22
- static async release(handle) {
23
- await new Promise((resolve, reject) => {
24
- flock(handle.fd, "un", (err) => {
25
- if (err) {
26
- reject(err);
27
- return;
28
- }
29
- resolve();
30
- });
31
- });
32
- await handle.close();
33
- }
34
- static async isLocked(filename) {
35
- if (!existsSync(filename)) {
36
- return false;
37
- }
38
- try {
39
- const handle = await _LockFile.acquire(filename);
40
- await _LockFile.release(handle);
41
- return false;
42
- } catch (e) {
43
- return true;
44
- }
45
- }
46
- };
47
- export {
48
- LockFile
49
- };
50
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/lock-file.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { flock } from 'fs-ext';\nimport { existsSync } from 'node:fs';\nimport { open, type FileHandle, constants } from 'node:fs/promises';\n\nexport class LockFile {\n static async acquire(filename: string): Promise<FileHandle> {\n const handle = await open(filename, constants.O_CREAT);\n await new Promise<void>((resolve, reject) => {\n flock(handle.fd, 'exnb', async (err) => {\n if (err) {\n reject(err);\n await handle.close();\n return;\n }\n resolve();\n });\n });\n return handle;\n }\n\n static async release(handle: FileHandle): Promise<void> {\n await new Promise<void>((resolve, reject) => {\n flock(handle.fd, 'un', (err) => {\n if (err) {\n reject(err);\n return;\n }\n resolve();\n });\n });\n await handle.close();\n }\n\n static async isLocked(filename: string): Promise<boolean> {\n if (!existsSync(filename)) {\n return false;\n }\n try {\n const handle = await LockFile.acquire(filename);\n await LockFile.release(handle);\n\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n"],
5
- "mappings": ";;;AAIA,SAASA,aAAa;AACtB,SAASC,kBAAkB;AAC3B,SAASC,MAAuBC,iBAAiB;AAE1C,IAAMC,WAAN,MAAMA,UAAAA;EACX,aAAaC,QAAQC,UAAuC;AAC1D,UAAMC,SAAS,MAAMC,KAAKF,UAAUG,UAAUC,OAAO;AACrD,UAAM,IAAIC,QAAc,CAACC,SAASC,WAAAA;AAChCC,YAAMP,OAAOQ,IAAI,QAAQ,OAAOC,QAAAA;AAC9B,YAAIA,KAAK;AACPH,iBAAOG,GAAAA;AACP,gBAAMT,OAAOU,MAAK;AAClB;QACF;AACAL,gBAAAA;MACF,CAAA;IACF,CAAA;AACA,WAAOL;EACT;EAEA,aAAaW,QAAQX,QAAmC;AACtD,UAAM,IAAII,QAAc,CAACC,SAASC,WAAAA;AAChCC,YAAMP,OAAOQ,IAAI,MAAM,CAACC,QAAAA;AACtB,YAAIA,KAAK;AACPH,iBAAOG,GAAAA;AACP;QACF;AACAJ,gBAAAA;MACF,CAAA;IACF,CAAA;AACA,UAAML,OAAOU,MAAK;EACpB;EAEA,aAAaE,SAASb,UAAoC;AACxD,QAAI,CAACc,WAAWd,QAAAA,GAAW;AACzB,aAAO;IACT;AACA,QAAI;AACF,YAAMC,SAAS,MAAMH,UAASC,QAAQC,QAAAA;AACtC,YAAMF,UAASc,QAAQX,MAAAA;AAEvB,aAAO;IACT,SAASc,GAAG;AACV,aAAO;IACT;EACF;AACF;",
6
- "names": ["flock", "existsSync", "open", "constants", "LockFile", "acquire", "filename", "handle", "open", "constants", "O_CREAT", "Promise", "resolve", "reject", "flock", "fd", "err", "close", "release", "isLocked", "existsSync", "e"]
7
- }
@@ -1 +0,0 @@
1
- {"inputs":{"src/lock-file.ts":{"bytes":4402,"imports":[{"path":"fs-ext","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":457,"imports":[{"path":"src/lock-file.ts","kind":"import-statement","original":"./lock-file"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2342},"dist/lib/browser/index.mjs":{"imports":[{"path":"fs-ext","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true}],"exports":["LockFile"],"entryPoint":"src/index.ts","inputs":{"src/lock-file.ts":{"bytesInOutput":1050},"src/index.ts":{"bytesInOutput":0}},"bytes":1162}}}