1
0
Fork 0
mirror of https://github.com/zigzap/zap.git synced 2025-10-20 15:14:08 +00:00

Compare commits

...

3 commits

Author SHA1 Message Date
GitHub Action
a385bea1ed Update README 2025-07-25 00:00:57 +00:00
renerocksai
e1c973d5e2
bumped zon version 2025-07-25 01:59:02 +02:00
renerocksai
d9739599ec
added fio-typecheck of mimetype field when parsing binfiles 2025-07-25 01:59:02 +02:00
4 changed files with 28 additions and 4 deletions

View file

@ -298,7 +298,7 @@ In your zig project folder (where `build.zig` is located), run:
<!-- INSERT_DEP_BEGIN -->
```
zig fetch --save "git+https://github.com/zigzap/zap#v0.10.5"
zig fetch --save "git+https://github.com/zigzap/zap#v0.10.6"
```
<!-- INSERT_DEP_END -->
@ -413,3 +413,4 @@ pub fn main() !void {

View file

@ -1,6 +1,6 @@
.{
.name = .zap,
.version = "0.10.5",
.version = "0.10.6",
.paths = .{
"build.zig",
"build.zig.zon",

View file

@ -132,8 +132,14 @@ fn parseBinfilesFrom(a: Allocator, o: fio.FIOBJ) !HttpParam {
var mimetype: []const u8 = undefined;
if (fio.fiobj_hash_haskey(o, key_type) == 1) {
const mt = fio.fiobj_obj2cstr(fio.fiobj_hash_get(o, key_type));
mimetype = mt.data[0..mt.len];
const mt_fiobj = fio.fiobj_hash_get(o, key_type);
// for some reason, mimetype can be an array
if (fio.fiobj_type_is(mt_fiobj, fio.FIOBJ_T_STRING) == 1) {
const mt = fio.fiobj_obj2cstr(mt_fiobj);
mimetype = mt.data[0..mt.len];
} else {
mimetype = &"application/octet-stream".*;
}
} else {
mimetype = &"application/octet-stream".*;
}

View file

@ -17,6 +17,23 @@ pub fn fio2str(o: fio.FIOBJ) ?[]const u8 {
return x.data[0..x.len];
}
pub fn fiobj_type_as_string(o: zap.fio.FIOBJ) []const u8 {
const value_type = switch (zap.fio.fiobj_type(o)) {
zap.fio.FIOBJ_T_NULL => "null",
zap.fio.FIOBJ_T_TRUE => "true",
zap.fio.FIOBJ_T_FALSE => "false",
zap.fio.FIOBJ_T_NUMBER => "number",
zap.fio.FIOBJ_T_FLOAT => "float",
zap.fio.FIOBJ_T_STRING => "string",
zap.fio.FIOBJ_T_ARRAY => "array",
zap.fio.FIOBJ_T_HASH => "hash",
zap.fio.FIOBJ_T_DATA => "data",
zap.fio.FIOBJ_T_UNKNOWN => "unknown",
else => "unreachable",
};
return value_type;
}
/// Used internally: convert a FIO object into its string representation.
/// This always allocates, so choose your allocator wisely.
/// Let's never use that