aboutsummaryrefslogtreecommitdiff
path: root/src/install
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-11-09 13:04:35 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-12-16 19:18:51 -0800
commit6da14ae310d41110a00e1de9acefc94aea4fc26f (patch)
treef171608aa9a5df749a9839e9b417fa5e27fea5f8 /src/install
parent442f85e89e413ed5c697bbf36181577ef38fd0f1 (diff)
downloadbun-6da14ae310d41110a00e1de9acefc94aea4fc26f.tar.gz
bun-6da14ae310d41110a00e1de9acefc94aea4fc26f.tar.zst
bun-6da14ae310d41110a00e1de9acefc94aea4fc26f.zip
wip
Diffstat (limited to 'src/install')
-rw-r--r--src/install/install.zig62
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,
+};