1.18.4 • Published 2 years ago

@planjs/utils v1.18.4

Weekly downloads
119
License
ISC
Repository
github
Last release
2 years ago

utils

npm npm action NPM

🔧 contactInfoDefault doc

Installation

npm i @planjs/utils

Usage

import {
  delay,
  retry,
  pTry,
  sequenceChain,
  nextTick,
  range,
  REG_TEL_PHONE,
  eventCenter,
  TimeoutMap,
} from '@planjs/utils';

// promise utils
async function main() {
  await delay(100);
  function fetchData() {
    return Promise.reject(new Error('testing'));
  }
  await retry(fetchData, { maxAttempts: 3, delayMs: 500 })();
}

const pool = asyncPool({ maxConcurrency: 10 });

const randArr = range(1, 10);

nextTick(async () => {
  const [err, res] = await pTry(main());
  if (!err) {
    console.log(res);
  }
  let start = Date.now();
  await Promise.all(randArr.map((v) => pool.executor(delay(v))));
  // The timer has an accuracy problem
  if (Date.now() - start + 1 >= Math.max(...randArr)) {
    console.log('concurrency');
  }
  const count = (a = 0) => ++a;
  const val = await sequenceChain([...range(0, 10).map((v) => [count])])();
  console.log(val); // 11
});

// commonly used regex
REG_TEL_PHONE.test('132xxxxxxx'); // false

// event center
eventCenter.on('log', console.log);
eventCenter.trigger('log', 'planjs');

// ext obj
const timeoutMap = new TimeoutMap({
  timeout: 200,
  passiveDeletion: true,
  onTimeout(k, v) {
    console.log(`expired key [${k}], val [${v}]`);
  },
});
timeoutMap.set('name', 'fupengl');
delay(201).then(() => timeoutMap.get('name')); // null
1.18.4

2 years ago

1.18.3

2 years ago

1.18.2

2 years ago

1.18.1

2 years ago

1.18.0

3 years ago

1.17.1

3 years ago

1.16.0

3 years ago

1.17.0

3 years ago

1.15.8

3 years ago

1.15.7

3 years ago

1.15.9

3 years ago

1.15.10

3 years ago

1.15.11

3 years ago

1.15.12

3 years ago

1.15.13

3 years ago

1.15.14

3 years ago

1.15.15

3 years ago

1.15.6

3 years ago

1.15.5

3 years ago

1.15.4

3 years ago

1.15.3

3 years ago

1.15.2

3 years ago

1.15.1

3 years ago

1.14.0

3 years ago

1.15.0

3 years ago

1.13.2

3 years ago

1.13.1

3 years ago

1.13.0

4 years ago

1.12.0

4 years ago

1.11.7

4 years ago

1.11.6

4 years ago

1.11.5

4 years ago

1.11.4

4 years ago

1.11.3

4 years ago

1.11.2

4 years ago

1.11.0

4 years ago

1.11.1

4 years ago

1.10.0

4 years ago

1.9.3

4 years ago

1.9.2

4 years ago

1.9.1

4 years ago

1.9.0

4 years ago

1.8.4

4 years ago

1.8.2

4 years ago

1.8.1

4 years ago

1.8.3

4 years ago

1.8.0

4 years ago

1.7.3

4 years ago

1.7.2

4 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.4.0

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.3.5

4 years ago

1.2.0

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.40

4 years ago

1.0.39

4 years ago

1.0.38

4 years ago

1.0.37

4 years ago

1.0.36

4 years ago

1.0.35

4 years ago

1.0.34

4 years ago

1.0.33

4 years ago

1.0.32

4 years ago

1.0.31

4 years ago

1.0.30

4 years ago

1.0.29

4 years ago

1.0.28

4 years ago

1.0.27

4 years ago

1.0.26

4 years ago

1.0.25

4 years ago

1.0.24

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.21

4 years ago

1.0.20

5 years ago

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.9

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.1

5 years ago

1.0.3

5 years ago

1.0.0

5 years ago