Skip to content

Commit cf487ab

Browse files
committed
feat: Update to Gleam 1.9 and fix deprecation warnings
1 parent ac213fa commit cf487ab

File tree

6 files changed

+26
-14
lines changed

6 files changed

+26
-14
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
uses: erlef/setup-beam@v1
2323
with:
2424
otp-version: 27.2
25-
gleam-version: 1.8.0
25+
gleam-version: 1.9.1
2626

2727
- name: Wait for tests to complete
2828
uses: lewagon/[email protected]

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
uses: erlef/setup-beam@v1
1919
with:
2020
otp-version: 27.2
21-
gleam-version: 1.8.0
21+
gleam-version: 1.9.1
2222

2323
- name: Setup Node.js
2424
uses: actions/setup-node@v4

gleam.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
name = "file_streams"
22
description = "Gleam library for working with file streams."
3+
gleam = ">= 1.9.0"
34
licences = ["MIT"]
45
repository = { type = "github", user = "richard-viney", repo = "file_streams" }
56
links = [
67
{ title = "Website", href = "https://github.com/richard-viney/file_streams" },
78
]
89

910
[dependencies]
10-
gleam_stdlib = ">= 0.42.0 and < 2.0.0"
11+
gleam_stdlib = ">= 0.57.0 and < 2.0.0"
1112

1213
[dev-dependencies]
13-
gleeunit = ">= 1.2.0 and < 2.0.0"
14-
simplifile = ">= 2.0.1 and < 3.0.0"
14+
gleeunit = ">= 1.3.0 and < 2.0.0"
15+
simplifile = ">= 2.2.0 and < 3.0.0"
1516

1617
[javascript]
1718
deno = { allow_read = true, allow_write = true }

manifest.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
packages = [
55
{ name = "filepath", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "67A6D15FB39EEB69DD31F8C145BB5A421790581BD6AA14B33D64D5A55DBD6587" },
6-
{ name = "gleam_stdlib", version = "0.47.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "3B22D46743C46498C8355365243327AC731ECD3959216344FA9CF9AD348620AC" },
7-
{ name = "gleeunit", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "F7A7228925D3EE7D0813C922E062BFD6D7E9310F0BEE585D3A42F3307E3CFD13" },
6+
{ name = "gleam_stdlib", version = "0.57.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "86EFACDF6460B8681E82752C5490F9630EC0F138F88A037DDCB241799AA8811F" },
7+
{ name = "gleeunit", version = "1.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "0E6C83834BA65EDCAAF4FE4FB94AC697D9262D83E6F58A750D63C9F6C8A9D9FF" },
88
{ name = "simplifile", version = "2.2.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "0DFABEF7DC7A9E2FF4BB27B108034E60C81BEBFCB7AB816B9E7E18ED4503ACD8" },
99
]
1010

1111
[requirements]
12-
gleam_stdlib = { version = ">= 0.42.0 and < 2.0.0" }
13-
gleeunit = { version = ">= 1.2.0 and < 2.0.0" }
14-
simplifile = { version = ">= 2.0.1 and < 3.0.0" }
12+
gleam_stdlib = { version = ">= 0.57.0 and < 2.0.0" }
13+
gleeunit = { version = ">= 1.3.0 and < 2.0.0" }
14+
simplifile = { version = ">= 2.2.0 and < 3.0.0" }

src/file_streams_ffi.mjs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,17 +123,29 @@ export function file_read(io_device, byte_count) {
123123
}
124124

125125
export function file_write(io_device, data) {
126+
if (data.bitSize % 8 !== 0) {
127+
return new raw_result.Error(file_stream_error.Einval());
128+
}
129+
126130
try {
127131
const position = io_device.mode_append
128132
? io_device.size
129133
: io_device.position;
130134

135+
let buffer = data.rawBuffer;
136+
if (data.bitOffset !== 0) {
137+
buffer = new Uint8Array(data.byteSize);
138+
for (let i = 0; i < data.byteSize; i++) {
139+
buffer[i] = data.byteAt(i);
140+
}
141+
}
142+
131143
// Write data to the file
132144
const bytes_written = writeSync(
133145
io_device.fd,
134-
data.buffer,
146+
buffer,
135147
0,
136-
data.length,
148+
buffer.length,
137149
position
138150
);
139151

@@ -148,7 +160,7 @@ export function file_write(io_device, data) {
148160
}
149161

150162
// Check for an incomplete write
151-
if (bytes_written !== data.length) {
163+
if (bytes_written !== data.byteSize) {
152164
return new raw_result.Error(new file_stream_error.Enospc());
153165
}
154166

test/file_streams_test.gleam

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,6 @@ pub fn set_encoding_test() {
548548
|> should.equal(Ok(Nil))
549549
}
550550

551-
@target(erlang)
552551
pub fn write_partial_bytes_test() {
553552
let assert Ok(stream) = file_stream.open_write(tmp_file_name)
554553

0 commit comments

Comments
 (0)