Skip to content

Commit 861ae2f

Browse files
authored
Merge pull request #12 from fink-lang/upgrade
Upgrade
2 parents e1cbdf5 + 0b25fb4 commit 861ae2f

File tree

13 files changed

+215
-26
lines changed

13 files changed

+215
-26
lines changed

package-lock.json

Lines changed: 136 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@
2828
"release": "semantic-release"
2929
},
3030
"devDependencies": {
31-
"@fink/cli": "^6.0.0",
32-
"@fink/jest": "^5.0.0",
31+
"@fink/cli": "^6.1.0",
32+
"@fink/jest": "^5.1.0",
3333
"@fink/larix": "^12.0.0",
34-
"@fink/loxia": "^12.0.0",
34+
"@fink/loxia": "^12.0.2",
3535
"commitizen": "^4.0.5",
3636
"cz-conventional-changelog": "^3.1.0",
3737
"jest-cli": "^26.1.0",
@@ -44,6 +44,6 @@
4444
}
4545
},
4646
"dependencies": {
47-
"@fink/js-interop": "^1.0.0"
47+
"@fink/js-interop": "^1.1.0"
4848
}
4949
}

src/iter.fnk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{max_int} = import './num'
22
{new} = import '@fink/js-interop/reflect'
3+
{Symbol, Set} = import '@fink/js-interop/globals'
34

45
# TODO add:
56
# partition

src/json.fnk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
{JSON} = import '@fink/js-interop/globals'
2+
13
json_to_obj = JSON.parse
24

35
obj_to_json = JSON.stringify

src/math.fnk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11

2+
{Math} = import '@fink/js-interop/globals'
23

34

45
Pi = Math.PI

src/math.test.fnk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{describe, it, expect, to_equal} = import '@fink/jest'
2+
{Math} = import '@fink/js-interop/globals'
23

34
{π, clamp} = import './math'
45

src/num.fnk

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
{parseFloat, parseInt, Number, isNaN, isFinite} = import '@fink/js-interop/globals'
2+
{is_instance, get_type} = import '@fink/js-interop/reflect'
3+
4+
15
# TODO: should that live in str?
26
parse_float = fn str: parseFloat str
37

@@ -19,3 +23,10 @@ is_not_a_num = isNaN
1923
is_finite = isFinite
2024

2125
base_n = fn num, radix: num.toString radix
26+
27+
28+
is_num = fn num:
29+
match num:
30+
'number' == get_type ?: true
31+
is_instance ?, Number: true
32+
else: false

src/num.test.fnk

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{describe, it, expect, to_equal} = import '@fink/jest'
2+
{new} = import '@fink/js-interop/reflect'
3+
{Number} = import '@fink/js-interop/globals'
24

3-
{parse_int, parse_float, base_n} = import './num'
5+
{parse_int, parse_float, base_n, is_num} = import './num'
46

57

68
describe 'numbers', fn:
@@ -38,3 +40,20 @@ describe 'numbers', fn:
3840
base_n 1234, 36
3941
to_equal
4042
'ya'
43+
44+
45+
46+
describe 'is_num', fn:
47+
it 'is a number', fn:
48+
expect
49+
is_num 1234
50+
to_equal true
51+
52+
expect
53+
is_num new Number, 1234
54+
to_equal true
55+
56+
it 'is not a number', fn:
57+
expect
58+
is_num '1234'
59+
to_equal false

src/obj.fnk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
{Object} = import '@fink/js-interop/globals'
2+
13

24
obj_keys = Object.keys
35

src/regex.fnk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
{new} = import '@fink/js-interop/reflect'
2+
{RegExp} = import '@fink/js-interop/globals'
3+
24
{raw} = import './str'
35

46

57
regex = fn pattern, flags='':
6-
# TODO: should @fink/js-interop provide the regexp function?
78
new RegExp, pattern, 'u${flags}'
89

910

src/stack-trace.fnk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
{Error} = import '@fink/js-interop/globals'
2+
13

24
stack_trace = fn func=stack_trace:
35
err = {}

src/str.fnk

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
{new} = import '@fink/js-interop/reflect'
2+
{is_instance, get_type} = import '@fink/js-interop/reflect'
3+
{String, TextEncoder, TextDecoder} = import '@fink/js-interop/globals'
24

35

46
from_char_codes = String.fromCharCode
@@ -25,6 +27,7 @@ trim = fn str: str.trim _
2527
trim_start = fn str: str.trimStart _
2628
trim_end = fn str: str.trimEnd _
2729

30+
2831
# TODO should this be handled by '...' * 3 in loxia?
2932
repeat = fn str, num: str.repeat num
3033

@@ -41,4 +44,11 @@ encode = fn text, encoding:
4144

4245
decode = fn bytes, encoding:
4346
encoder = new TextDecoder, encoding
44-
encoder.decode bytes
47+
encoder.decode bytes
48+
49+
50+
is_str = fn str:
51+
match str:
52+
'string' == get_type ?: true
53+
is_instance ?, String: true
54+
else: false

src/str.test.fnk

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
11
{describe, it, expect, to_equal} = import '@fink/jest'
2+
{new} = import '@fink/js-interop/reflect'
3+
{Uint8Array, String} = import '@fink/js-interop/globals'
4+
25

36
{
47
from_char_codes, from_code_points, char_code, code_point
58

69
ends_with, starts_with
710

8-
matches, match_all, find_index, split, replace
9-
1011
slice
1112

1213
pad_start, pad_end, trim, trim_start, trim_end
1314

1415
repeat, lower_case, upper_case
1516

16-
raw, rx
17+
raw
1718

1819
encode, decode
20+
21+
is_str
1922
} = import './str'
2023

2124

@@ -130,3 +133,19 @@ describe 'codecs', fn:
130133
to_equal 'foobar'
131134

132135

136+
137+
describe 'is_str', fn:
138+
it 'is a string', fn:
139+
expect
140+
is_str 'foobar'
141+
to_equal true
142+
143+
expect
144+
is_str new String, 1234
145+
to_equal true
146+
147+
it 'is not a string', fn:
148+
expect
149+
is_str 1234
150+
to_equal false
151+

0 commit comments

Comments
 (0)