0.24.0-alpha.0 • Published 13 days ago

@toa.io/generic v0.24.0-alpha.0

Weekly downloads
-
License
MIT
Repository
github
Last release
13 days ago

Toa Generic Tools

Library is for internal use only. Barely documented. If you really need to understand something, see tests.

Range

range(input: string): number[]

Transforms:

  • 1-3 into [1, 2, 3]
  • 1..3 into [1, 2, 3]
  • 1-3, 5, 10..12 into [1, 2, 3, 5, 10, 11, 12]

See tests.

Shards

shards(input: string): string[]

Transforms amqp://shard{0-2}.domain.com into:

[
  'amqp://shard0.domain.com',
  'amqp://shard1.domain.com',
  'amqp://shard2.domain.com'
]

Uses range.

See tests.

Entries

entries(object: object): [key, value][]

Object.entries including Symbols.

Generate

generate(generate: function): object

generate function's signature is (segments: string[], value?: any): any | void

segments are nested property names, used to access the generated object and optional value is passed if property was assigned with a value.

Example

const generator = (segments, [key, value]) => {} // any property is an object
const object = generate(generator)

const _0 = object.a // will call callback with (['a'])
const _1 = object.a.b // (['a', 'b'])

object.a.b.c = 1 // (['a', 'b', 'c'], 1)

Echo

echo(input: string, variables?: Record<string, string>): string

Returns the input string. Substitutes variables to a placeholders following ${NAME} syntax. If no variables are passed, then environment variables are used.

Example

Environment variables

process.env['FOO'] = 'bar'

const output = echo('foo: ${FOO}')

console.log(output) // foo: bar

Custom variables

const variables = { foo: 'world' }
const output = echo('hello ${foo}', variables)

console.log(output) // hello world

Index substitutions

echo(input: string, values: string[]): string

When the second argument is an Array, its values are substituted to a placeholders following {N} syntax.

echo('make {0} not {1}', ['love', 'war'])

Arguments substitution

When the second argument is a string, it and next arguments are substituted as an array.

echo('make {0} not {1}', 'love', 'war')

Map

map(object: object, transformation: Function): object

Traverse through a given plain object replacing its values (or key-value pairs) with a given transformation function. If the transformation function returns undefined then the current key-value pair will remain unchanged.

Transformation function signature is:

(value: any) => any | void

or

(key: string, value: any) => [string, any] | void

Plain

plain(candidate: any): boolean

Returns true if an argument is a POJO, false otherwise.

Filter

async filter(array: any[], test): any[]

test function signature is async (any) => boolean

Async array filter.

Pick

pick(source: object, properties: string[]): object

Constructs an object by picking the set of properties from source object.

1.0.0-alpha.34

13 days ago

1.0.0-alpha.33

13 days ago

1.0.0-alpha.36

13 days ago

1.0.0-alpha.35

13 days ago

1.0.0-alpha.32

15 days ago

1.0.0-alpha.30

18 days ago

1.0.0-alpha.31

17 days ago

1.0.0-alpha.29

18 days ago

1.0.0-alpha.27

23 days ago

1.0.0-alpha.28

23 days ago

1.0.0-alpha.26

1 month ago

1.0.0-alpha.25

1 month ago

1.0.0-alpha.24

2 months ago

1.0.0-alpha.23

2 months ago

1.0.0-alpha.22

2 months ago

1.0.0-alpha.21

2 months ago

1.0.0-alpha.20

2 months ago

1.0.0-alpha.19

2 months ago

1.0.0-alpha.18

2 months ago

1.0.0-alpha.17

2 months ago

1.0.0-alpha.16

2 months ago

1.0.0-alpha.15

2 months ago

1.0.0-alpha.14

2 months ago

1.0.0-alpha.13

2 months ago

1.0.0-alpha.12

3 months ago

1.0.0-alpha.10

3 months ago

1.0.0-alpha.11

3 months ago

1.0.0-alpha.9

3 months ago

1.0.0-alpha.8

3 months ago

1.0.0-alpha.7

3 months ago

1.0.0-alpha.6

3 months ago

1.0.0-alpha.5

3 months ago

1.0.0-alpha.4

3 months ago

1.0.0-alpha.3

3 months ago

1.0.0-alpha.2

3 months ago

0.24.0-alpha.23

3 months ago

0.24.0-alpha.22

3 months ago

0.24.0-alpha.21

3 months ago

0.24.0-alpha.20

3 months ago

0.24.0-alpha.19

3 months ago

0.24.0-alpha.16

6 months ago

0.24.0-alpha.17

5 months ago

0.24.0-alpha.18

5 months ago

0.24.0-alpha.15

6 months ago

0.24.0-alpha.13

6 months ago

0.24.0-alpha.14

6 months ago

0.23.0-dev.0

7 months ago

0.20.0

7 months ago

1.0.0-alpha.0

6 months ago

0.20.0-dev.29

11 months ago

0.24.0-alpha.4

6 months ago

0.24.0-alpha.3

6 months ago

0.24.0-alpha.10

6 months ago

0.24.0-alpha.6

6 months ago

0.24.0-alpha.11

6 months ago

0.24.0-alpha.5

6 months ago

0.24.0-alpha.12

6 months ago

0.24.0-alpha.8

6 months ago

0.24.0-alpha.7

6 months ago

0.24.0-alpha.9

6 months ago

0.24.0-alpha.0

6 months ago

0.24.0-alpha.2

6 months ago

0.22.0

7 months ago

0.20.0-dev.40

9 months ago

0.20.0-alpha.0

8 months ago

0.20.0-alpha.1

8 months ago

0.20.0-alpha.2

7 months ago

0.20.0-dev.36

9 months ago

0.20.0-dev.35

9 months ago

0.20.0-dev.34

9 months ago

0.20.0-dev.39

9 months ago

0.20.0-dev.38

9 months ago

0.20.0-dev.37

9 months ago

0.20.0-dev.31

11 months ago

0.20.0-dev.30

11 months ago

0.20.1-alpha.0

7 months ago

0.20.0-dev.28

11 months ago

0.20.0-dev.24

11 months ago

0.20.0-dev.23

11 months ago

0.20.0-dev.22

11 months ago

0.20.0-dev.21

11 months ago

0.20.0-dev.20

11 months ago

0.20.0-dev.19

11 months ago

0.20.0-dev.14

12 months ago

0.20.0-dev.18

11 months ago

0.20.0-dev.17

11 months ago

0.20.0-dev.16

11 months ago

0.20.0-dev.15

12 months ago

0.11.0-dev.6

1 year ago

0.11.0-dev.7

1 year ago

0.9.1-dev.0

1 year ago

0.11.0-dev.8

1 year ago

0.11.0-dev.9

1 year ago

0.11.0-dev.2

1 year ago

0.11.0-dev.3

1 year ago

0.11.0-dev.4

1 year ago

0.11.0-dev.5

1 year ago

0.9.1

1 year ago

0.11.0-dev.0

1 year ago

0.11.0-dev.1

1 year ago

0.20.0-dev.7

12 months ago

0.20.0-dev.6

12 months ago

0.20.0-dev.5

12 months ago

0.20.0-dev.4

12 months ago

0.20.0-dev.3

12 months ago

0.20.0-dev.2

12 months ago

0.20.0-dev.1

12 months ago

0.10.1-alpha.56

12 months ago

0.11.0-canary.0

12 months ago

0.11.0-canary.2

12 months ago

0.11.0-canary.1

12 months ago

0.20.0-dev.9

12 months ago

0.20.0-dev.8

12 months ago

0.11.0-dev.12

12 months ago

0.20.0-dev.13

12 months ago

0.11.0-dev.11

12 months ago

0.20.0-dev.12

12 months ago

0.11.0-dev.10

12 months ago

0.20.0-dev.11

12 months ago

0.10.0

1 year ago

0.20.0-dev.10

12 months ago

0.11.0-dev.16

12 months ago

0.11.0-dev.15

12 months ago

0.11.0-dev.13

12 months ago

0.10.0-dev.0

1 year ago

0.12.0-dev.4

12 months ago

0.8.0-dev.1

1 year ago

0.8.0-dev.0

1 year ago

0.9.0-dev.0

1 year ago

0.7.0-dev.0

1 year ago

0.7.0-dev.1

1 year ago

0.9.0-dev.1

1 year ago

0.7.0-dev.2

1 year ago

0.8.0-dev.5

1 year ago

0.8.0-dev.4

1 year ago

0.8.0-dev.3

1 year ago

0.8.0-dev.2

1 year ago

0.9.0

1 year ago

0.8.0

1 year ago

0.7.0

1 year ago

0.6.0

1 year ago

0.6.0-dev.1

1 year ago

0.4.0

1 year ago

0.4.0-dev.9

1 year ago

0.4.0-dev.8

1 year ago

0.4.0-dev.6

1 year ago

0.4.0-dev.5

1 year ago

0.4.0-dev.4

1 year ago

0.4.0-dev.3

1 year ago

0.4.0-dev.2

1 year ago

0.4.0-dev.0

1 year ago

0.3.0

1 year ago

0.2.1-dev.4

1 year ago

0.2.1-dev.3

1 year ago