diff options
author | 2021-11-09 13:04:35 -0800 | |
---|---|---|
committer | 2021-12-16 19:18:51 -0800 | |
commit | 6da14ae310d41110a00e1de9acefc94aea4fc26f (patch) | |
tree | f171608aa9a5df749a9839e9b417fa5e27fea5f8 /src/install | |
parent | 442f85e89e413ed5c697bbf36181577ef38fd0f1 (diff) | |
download | bun-6da14ae310d41110a00e1de9acefc94aea4fc26f.tar.gz bun-6da14ae310d41110a00e1de9acefc94aea4fc26f.tar.zst bun-6da14ae310d41110a00e1de9acefc94aea4fc26f.zip |
wip
Diffstat (limited to 'src/install')
-rw-r--r-- | src/install/install.zig | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/install/install.zig b/src/install/install.zig index 7c4324807..1e575015b 100644 --- a/src/install/install.zig +++ b/src/install/install.zig @@ -26,4 +26,66 @@ const Run = @import("../bun_js.zig").Run; var path_buf: [std.fs.MAX_PATH_BYTES]u8 = undefined; var path_buf2: [std.fs.MAX_PATH_BYTES]u8 = undefined; +const URL = @import("../query_string_map.zig").URL; +const URI = union(Tag) { + local: string, + remote: URL, + + pub const Tag = enum { + local, + remote, + }; +}; + +const Semver = @import("./semver.zig"); + +const Dependency = struct { + name: string, + name_hash: u32, + version: Version, + + pub const Version = union(Tag) { + pub const Tag = enum { + npm, + tarball, + folder, + + /// TODO: + symlink, + /// TODO: + workspace, + /// TODO: + git, + /// TODO: + github, + }; + + version: Semver.Query.Group, + tarball: URI, + folder: string, + + symlink: void, + workspace: void, + git: void, + github: void, + }; + + pub const List = std.MultiArrayList(Dependency); +}; + +const Package = struct { + name: string, + version: string, + dependencies: Dependency.List, + dev_dependencies: Dependency.List, + peer_dependencies: Dependency.List, + optional_dependencies: Dependency.List, + + +}; + +/// [Abbreviated NPM Package Version](https://github.com/npm/registry/blob/master/docs/responses/package-metadata.md#abbreviated-version-object) +const Registry = struct { + url: URL, +}; |