6.12.127 • Published 1 year ago

@diotoborg/repellat-blanditiis-quis v6.12.127

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Async Await Mutex Lock

Tests

Mutex locks for async functions with functionality to use keys for separate locks

NPM

Usage Instructions

Without Key

import { Lock } from "@diotoborg/repellat-blanditiis-quis";

let lock = new Lock();

async function serialTask() {
  await lock.acquire();

  try {
    // Don't return a promise here as Promise may resolve after finally
    // has executed
  } finally {
    lock.release();
  }
}

With Key

All the keys will have their own separate locks and separate waiting lists. A key can have any type (eg. string, number, etc. or a custom type allowed by typescript as a Map key)

import { Lock } from "@diotoborg/repellat-blanditiis-quis";

let lock = new Lock<string>();

async function serialTask() {
  await lock.acquire("myKey");

  try {
    // Don't return a promise here as Promise may resolve after finally
    // has executed
  }
  finally {
    lock.release("myKey");
  }
}

async function serialTaskTwo() {
  await lock.acquire("myKeyTwo");

  try {
    // Don't return a promise here as Promise may resolve after finally
    // has executed
  }
  finally {
    lock.release("myKeyTwo");
  }
}

Checking if a lock is acquired or not

import { Lock } from "@diotoborg/repellat-blanditiis-quis";

let lock = new Lock();

async function serialTask() {
  await lock.acquire();

  console.log(lock.isAcquired()); // prints true
}

isAcquired() with key checks for the given key separately.

import { Lock } from "@diotoborg/repellat-blanditiis-quis";

let lock = new Lock<string>();

async function serialTask() {
  await lock.acquire("myKey");

  console.log(lock.isAcquired("myKey")) // prints true
}

Issues or Bugs

In case of any issues or bugs, please open a pull request here

stringifyidlefunctionsgetintrinsicECMAScript 2018takeprivatemetadataa11yquerykeytouchcommandless cssbatchamazonkinesisvalidatedescriptorsratelimitfile systemagentes-abstractiterateestreereact-testing-libraryeslinttrimLeftes5apipolyfillJSON-SchemaauthenticationstableES2022someboundastebsformomitsyntaxbufferspinnersfpsmakeeventEmitterresolves3package.jsoncodestypeoftypesstreams2schemeAsyncIteratorstdlibhttpsECMAScript 5widthlisteners0setterparentrangeerrorfigleteventsECMAScript 2016csscomputed-typescloudwatchconcatmkdirexecUint16Arraybcryptpostcss-pluginprogresssettingsRxJSbyteOffsetcorebootstrap csswgetasyncwatchECMAScript 3assertpromisegenericsfunctionaldeepwordwrapvaluekoreanflatgetPrototypeOfECMAScript 2023Array.prototype.containsproxydeterministicObject.keysdom-testing-librarymime-dbdatastructuretaskwriteexpressregular expressionxtermcore-jsdayjsconcurrencyisConcatSpreadablesafeCSSStyleDeclarationreact-hook-formfolderfindvestconsumecallbindes-shimsinputwordbreakpretty$.extendES6real-timeStreamlibphonenumberstreamclientcolorworkflowlookautoscalingsetImmediatequeueruntimevisualmixinschromiumargsjoiawaitspeedendpointeast-asian-widthnegativees7getoptchinesewaitextrabindfluxconsoleregexreactjsxURLSearchParamsES2018Symbol.toStringTagnameses8dotenvdeepcloneredux-toolkitpredictableeventDispatcherES2023protobufrandomvalidationES2021typedarray__proto__duplexArray.prototype.findLastcolorsmkdirpbytestyleguidebrowserlistsameValueZerocreateequalstructuredClonenodewhatwgiterationurlslicegradients cssidESnextdependency managerpnpm9Uint32ArrayjsflagUint8ArraysearchinternalsetPrototypeOfoptimistrgbReactiveXperformantemitfullxhrtypedtelephonermmatchesHyBiutil.inspectECMAScript 2015styledeep-copyroute53configReflect.getPrototypeOfelbkeysgetESserializefastifyfssuperagentObject.valueswrapcommand-linestringparentsimportexportwarningbannerFloat64ArraytoolsnopemimejsondefinePropertysideelectronshamfixed-widthsyntaxerrorbundlingespreepropertiescheckcryptorateInt32ArrayconcatMaplrues2018linewrapcontainsStreamsprivate dataUnderscorehotUint8ClampedArraywatchercircularfast-copyinstallermiddlewarees6patharraybufferfindLastIndexlivecallArray.prototype.includesunicodetoStringTagformattingArraymatchAllECMAScript 6apolloio-ts256sharedtc39outputES2015timecss nestingObject.assigntypedarraysrequireredactloadbalancingsuperstructstylesvpcsnsconnectes-shim APIarraycolumnsES7toSortedminimalflattensimpledbWeakSetES2020.envfullwidthqsperformanceURLcomparechaifindLastArray.prototype.findLastIndexInt16ArraystringifierworkertoolkitawesomesaucewalkingarktypearthasOwnPropertyObject.isdataviewobjectfseventscompile lesstermcharacterfind-upawspropmapreducejsdiffinvariantes2017reusegraphqltapcloudformationstylesheetutilitiesinstallmatchargumentexpressionbyteLengthmobilewatchingES8npmtyped arrayreduxBigInt64Arrayclass-validatorutilmimetypesdirreadableObservableObject.definePropertyreducelintpackage managerenderinternal slotrapidECMAScript 2020jestown
@diotoborg/harum-neque@diotoborg/sapiente-nihil-sunt@diotoborg/sed-tempora-natus@diotoborg/suscipit-officia@diotoborg/temporibus-fugiat@diotoborg/veritatis-sapiente@diotoborg/tenetur-hic@diotoborg/ullam-neque-voluptates@diotoborg/similique-fugit@diotoborg/sunt-necessitatibus@diotoborg/sunt-iure@diotoborg/tempore-beatae-debitis@diotoborg/tempore-ad-veritatis@diotoborg/sequi-perspiciatis@diotoborg/soluta-amet-enim@diotoborg/suscipit-amet@diotoborg/tenetur-nobis-maiores@diotoborg/vero-ab@diotoborg/voluptas-nulla@diotoborg/sit-voluptas@diotoborg/velit-labore@diotoborg/veniam-blanditiis-sit@diotoborg/veritatis-nihil-vero@diotoborg/veritatis-nobis@diotoborg/voluptatum-quae@diotoborg/voluptatibus-impedit@diotoborg/voluptatibus-officiis@diotoborg/voluptatem-quod-magnam@diotoborg/voluptatibus-earum@diotoborg/sit-illo@diotoborg/sunt-totam@diotoborg/ab-harum@diotoborg/accusantium-reprehenderit-commodi@diotoborg/aliquid-fugit@diotoborg/adipisci-dolorum@diotoborg/amet-cum-culpa@diotoborg/ad-rerum@diotoborg/amet-architecto-est@diotoborg/aliquid-non@diotoborg/adipisci-soluta@diotoborg/alias-amet@diotoborg/aliquam-quod-at@diotoborg/adipisci-placeat-iure@diotoborg/aliquam-ut@diotoborg/aperiam-amet-natus@diotoborg/aperiam-iste@diotoborg/aspernatur-in@diotoborg/aspernatur-nihil@diotoborg/asperiores-maiores-velit@diotoborg/at-totam-perspiciatis@diotoborg/at-exercitationem-esse@diotoborg/asperiores-similique-quasi@diotoborg/consectetur-tempora-quia@diotoborg/atque-mollitia-consequuntur@diotoborg/atque-voluptatum-maxime@diotoborg/consequatur-facilis-qui@diotoborg/asperiores-hic@diotoborg/aspernatur-eaque@diotoborg/assumenda-praesentium@diotoborg/aut-officiis@diotoborg/autem-vero@diotoborg/aperiam-cum@diotoborg/beatae-culpa@diotoborg/autem-dolor@diotoborg/beatae-possimus@diotoborg/aspernatur-id@diotoborg/at-vitae@diotoborg/aut-provident-cumque@diotoborg/consequuntur-rem@diotoborg/cumque-sequi@diotoborg/delectus-recusandae-aut@diotoborg/deserunt-cupiditate@diotoborg/dolore-sint-deserunt@diotoborg/culpa-reiciendis@diotoborg/cum-ab@diotoborg/distinctio-vel@diotoborg/distinctio-voluptates-deleniti@diotoborg/dolores-esse-incidunt@diotoborg/deleniti-cum@diotoborg/dolor-tempora-fuga@diotoborg/corporis-similique-commodi@diotoborg/cum-illum-cum@diotoborg/dolore-magnam-ipsam@diotoborg/corrupti-quos-quo@diotoborg/doloremque-asperiores@diotoborg/dolores-iusto@diotoborg/doloremque-tempore-harum@diotoborg/doloribus-provident@diotoborg/dolores-voluptates@diotoborg/doloribus-sapiente-voluptatum@diotoborg/enim-molestias@diotoborg/dolorum-ipsam@diotoborg/ea-sint@diotoborg/ea-praesentium@diotoborg/dolorum-iste-excepturi@diotoborg/ducimus-ducimus-sed@diotoborg/est-ad@diotoborg/eaque-iste@diotoborg/esse-rerum@diotoborg/dolorum-autem
6.12.126

1 year ago

6.12.127

1 year ago

5.10.117

1 year ago

5.10.116

1 year ago

4.9.113

1 year ago

4.9.110

1 year ago

4.9.111

1 year ago

4.9.112

1 year ago

5.12.124

1 year ago

5.12.123

1 year ago

5.12.122

1 year ago

4.10.113

1 year ago

5.12.121

1 year ago

5.10.115

1 year ago

5.10.114

1 year ago

5.10.113

1 year ago

1.2.16

2 years ago

1.2.17

2 years ago

1.2.14

2 years ago

4.7.110

1 year ago

1.2.15

2 years ago

5.12.126

1 year ago

5.12.125

1 year ago

4.6.100

1 year ago

2.3.49

2 years ago

2.3.48

2 years ago

4.5.83

1 year ago

4.5.84

1 year ago

4.5.81

1 year ago

4.5.82

1 year ago

4.5.85

1 year ago

4.5.86

1 year ago

2.3.57

2 years ago

2.3.56

2 years ago

2.3.53

2 years ago

2.3.52

2 years ago

2.3.55

2 years ago

2.3.54

2 years ago

2.3.51

2 years ago

2.3.50

2 years ago

4.6.88

1 year ago

4.6.89

1 year ago

4.6.86

1 year ago

4.6.87

1 year ago

4.4.69

1 year ago

4.4.68

1 year ago

4.4.67

1 year ago

4.4.66

2 years ago

5.11.121

1 year ago

4.6.109

1 year ago

5.11.120

1 year ago

4.6.107

1 year ago

4.6.108

1 year ago

4.6.105

1 year ago

4.6.106

1 year ago

4.6.103

1 year ago

4.6.104

1 year ago

4.6.101

1 year ago

4.6.102

1 year ago

4.6.110

1 year ago

4.8.110

1 year ago

5.11.119

1 year ago

5.11.118

1 year ago

5.11.117

1 year ago

1.2.18

2 years ago

1.2.19

2 years ago

3.4.61

2 years ago

3.4.62

2 years ago

3.4.63

2 years ago

3.4.64

2 years ago

3.4.65

2 years ago

3.4.66

2 years ago

4.4.81

1 year ago

4.4.80

1 year ago

2.2.39

2 years ago

2.2.37

2 years ago

2.2.38

2 years ago

2.4.58

2 years ago

2.2.35

2 years ago

2.4.57

2 years ago

2.2.36

2 years ago

1.2.20

2 years ago

2.2.33

2 years ago

2.4.59

2 years ago

2.2.34

2 years ago

1.2.23

2 years ago

1.2.24

2 years ago

1.2.21

2 years ago

1.2.22

2 years ago

1.2.27

2 years ago

1.2.28

2 years ago

1.2.25

2 years ago

1.2.26

2 years ago

1.2.29

2 years ago

4.6.91

1 year ago

4.6.92

1 year ago

4.6.90

1 year ago

4.6.95

1 year ago

4.4.72

1 year ago

4.6.96

1 year ago

4.4.71

1 year ago

4.6.93

1 year ago

4.4.70

1 year ago

4.6.94

1 year ago

4.6.99

1 year ago

4.4.76

1 year ago

4.4.75

1 year ago

4.6.97

1 year ago

4.4.74

1 year ago

2.2.48

2 years ago

4.6.98

1 year ago

4.4.73

1 year ago

2.2.46

2 years ago

1.2.30

2 years ago

4.4.79

1 year ago

2.2.47

2 years ago

1.2.31

2 years ago

4.4.78

1 year ago

2.2.44

2 years ago

4.4.77

1 year ago

2.2.45

2 years ago

2.2.42

2 years ago

2.2.43

2 years ago

2.2.40

2 years ago

1.2.32

2 years ago

2.2.41

2 years ago

1.2.33

2 years ago

2.4.61

2 years ago

2.4.60

2 years ago

1.2.13

2 years ago

1.2.12

2 years ago

1.1.12

2 years ago

1.1.11

2 years ago

1.1.10

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago