0.24.0-alpha.0 • Published 1 year ago

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

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year 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.52

1 year ago

1.0.0-alpha.51

1 year ago

1.0.0-alpha.54

1 year ago

1.0.0-alpha.53

1 year ago

1.0.0-alpha.50

1 year ago

1.0.0-alpha.59

1 year ago

1.0.0-alpha.56

1 year ago

1.0.0-alpha.55

1 year ago

1.0.0-alpha.63

1 year ago

1.0.0-alpha.38

1 year ago

1.0.0-alpha.37

1 year ago

1.0.0-alpha.39

1 year ago

1.0.0-alpha.41

1 year ago

1.0.0-alpha.40

1 year ago

1.0.0-alpha.43

1 year ago

1.0.0-alpha.42

1 year ago

1.0.0-alpha.49

1 year ago

1.0.0-alpha.48

1 year ago

1.0.0-alpha.45

1 year ago

1.0.0-alpha.44

1 year ago

1.0.0-alpha.47

1 year ago

1.0.0-alpha.46

1 year ago

1.0.0-alpha.93

1 year ago

1.0.0-alpha.34

1 year ago

1.0.0-alpha.33

1 year ago

1.0.0-alpha.36

1 year ago

1.0.0-alpha.35

1 year ago

1.0.0-alpha.32

1 year ago

1.0.0-alpha.30

1 year ago

1.0.0-alpha.31

1 year ago

1.0.0-alpha.29

1 year ago

1.0.0-alpha.27

1 year ago

1.0.0-alpha.28

1 year ago

1.0.0-alpha.26

1 year ago

1.0.0-alpha.25

1 year ago

1.0.0-alpha.24

1 year ago

1.0.0-alpha.23

1 year ago

1.0.0-alpha.22

1 year ago

1.0.0-alpha.21

1 year ago

1.0.0-alpha.20

1 year ago

1.0.0-alpha.19

1 year ago

1.0.0-alpha.18

1 year ago

1.0.0-alpha.17

1 year ago

1.0.0-alpha.16

2 years ago

1.0.0-alpha.15

2 years ago

1.0.0-alpha.14

2 years ago

1.0.0-alpha.13

2 years ago

1.0.0-alpha.12

2 years ago

1.0.0-alpha.10

2 years ago

1.0.0-alpha.11

2 years ago

1.0.0-alpha.9

2 years ago

1.0.0-alpha.8

2 years ago

1.0.0-alpha.7

2 years ago

1.0.0-alpha.6

2 years ago

1.0.0-alpha.5

2 years ago

1.0.0-alpha.4

2 years ago

1.0.0-alpha.3

2 years ago

1.0.0-alpha.2

2 years ago

0.24.0-alpha.23

2 years ago

0.24.0-alpha.22

2 years ago

0.24.0-alpha.21

2 years ago

0.24.0-alpha.20

2 years ago

0.24.0-alpha.19

2 years ago

0.24.0-alpha.16

2 years ago

0.24.0-alpha.17

2 years ago

0.24.0-alpha.18

2 years ago

0.24.0-alpha.15

2 years ago

0.24.0-alpha.13

2 years ago

0.24.0-alpha.14

2 years ago

0.23.0-dev.0

2 years ago

0.20.0

2 years ago

1.0.0-alpha.0

2 years ago

0.20.0-dev.29

2 years ago

0.24.0-alpha.4

2 years ago

0.24.0-alpha.3

2 years ago

0.24.0-alpha.10

2 years ago

0.24.0-alpha.6

2 years ago

0.24.0-alpha.11

2 years ago

0.24.0-alpha.5

2 years ago

0.24.0-alpha.12

2 years ago

0.24.0-alpha.8

2 years ago

0.24.0-alpha.7

2 years ago

0.24.0-alpha.9

2 years ago

0.24.0-alpha.0

2 years ago

0.24.0-alpha.2

2 years ago

0.22.0

2 years ago

0.20.0-dev.40

2 years ago

0.20.0-alpha.0

2 years ago

0.20.0-alpha.1

2 years ago

0.20.0-alpha.2

2 years ago

0.20.0-dev.36

2 years ago

0.20.0-dev.35

2 years ago

0.20.0-dev.34

2 years ago

0.20.0-dev.39

2 years ago

0.20.0-dev.38

2 years ago

0.20.0-dev.37

2 years ago

0.20.0-dev.31

2 years ago

0.20.0-dev.30

2 years ago

0.20.1-alpha.0

2 years ago

0.20.0-dev.28

2 years ago

0.20.0-dev.24

2 years ago

0.20.0-dev.23

2 years ago

0.20.0-dev.22

2 years ago

0.20.0-dev.21

2 years ago

0.20.0-dev.20

2 years ago

0.20.0-dev.19

2 years ago

0.20.0-dev.14

2 years ago

0.20.0-dev.18

2 years ago

0.20.0-dev.17

2 years ago

0.20.0-dev.16

2 years ago

0.20.0-dev.15

2 years ago

0.11.0-dev.6

2 years ago

0.11.0-dev.7

2 years ago

0.9.1-dev.0

2 years ago

0.11.0-dev.8

2 years ago

0.11.0-dev.9

2 years ago

0.11.0-dev.2

2 years ago

0.11.0-dev.3

2 years ago

0.11.0-dev.4

2 years ago

0.11.0-dev.5

2 years ago

0.9.1

2 years ago

0.11.0-dev.0

2 years ago

0.11.0-dev.1

2 years ago

0.20.0-dev.7

2 years ago

0.20.0-dev.6

2 years ago

0.20.0-dev.5

2 years ago

0.20.0-dev.4

2 years ago

0.20.0-dev.3

2 years ago

0.20.0-dev.2

2 years ago

0.20.0-dev.1

2 years ago

0.10.1-alpha.56

2 years ago

0.11.0-canary.0

2 years ago

0.11.0-canary.2

2 years ago

0.11.0-canary.1

2 years ago

0.20.0-dev.9

2 years ago

0.20.0-dev.8

2 years ago

0.11.0-dev.12

2 years ago

0.20.0-dev.13

2 years ago

0.11.0-dev.11

2 years ago

0.20.0-dev.12

2 years ago

0.11.0-dev.10

2 years ago

0.20.0-dev.11

2 years ago

0.10.0

2 years ago

0.20.0-dev.10

2 years ago

0.11.0-dev.16

2 years ago

0.11.0-dev.15

2 years ago

0.11.0-dev.13

2 years ago

0.10.0-dev.0

2 years ago

0.12.0-dev.4

2 years ago

0.8.0-dev.1

2 years ago

0.8.0-dev.0

2 years ago

0.9.0-dev.0

2 years ago

0.7.0-dev.0

2 years ago

0.7.0-dev.1

2 years ago

0.9.0-dev.1

2 years ago

0.7.0-dev.2

2 years ago

0.8.0-dev.5

2 years ago

0.8.0-dev.4

2 years ago

0.8.0-dev.3

2 years ago

0.8.0-dev.2

2 years ago

0.9.0

2 years ago

0.8.0

2 years ago

0.7.0

2 years ago

0.6.0

2 years ago

0.6.0-dev.1

2 years ago

0.4.0

2 years ago

0.4.0-dev.9

2 years ago

0.4.0-dev.8

2 years ago

0.4.0-dev.6

2 years ago

0.4.0-dev.5

2 years ago

0.4.0-dev.4

2 years ago

0.4.0-dev.3

2 years ago

0.4.0-dev.2

2 years ago

0.4.0-dev.0

2 years ago

0.3.0

2 years ago

0.2.1-dev.4

2 years ago

0.2.1-dev.3

3 years ago