diff options
author | 2021-11-09 13:04:35 -0800 | |
---|---|---|
committer | 2021-12-16 19:18:51 -0800 | |
commit | 6da14ae310d41110a00e1de9acefc94aea4fc26f (patch) | |
tree | f171608aa9a5df749a9839e9b417fa5e27fea5f8 /src | |
parent | 442f85e89e413ed5c697bbf36181577ef38fd0f1 (diff) | |
download | bun-6da14ae310d41110a00e1de9acefc94aea4fc26f.tar.gz bun-6da14ae310d41110a00e1de9acefc94aea4fc26f.tar.zst bun-6da14ae310d41110a00e1de9acefc94aea4fc26f.zip |
wip
Diffstat (limited to 'src')
-rw-r--r-- | src/cli/install_command.zig | 2 | ||||
-rw-r--r-- | src/install/install.zig | 62 | ||||
-rw-r--r-- | src/resolver/package_json.zig | 1 |
3 files changed, 64 insertions, 1 deletions
diff --git a/src/cli/install_command.zig b/src/cli/install_command.zig index d4af860b8..cd2271f16 100644 --- a/src/cli/install_command.zig +++ b/src/cli/install_command.zig @@ -37,6 +37,6 @@ const ShellCompletions = @import("./shell_completions.zig"); pub const InstallCommand = struct { pub fn exec(ctx: Command.Context) !void { - + } }; 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, +}; diff --git a/src/resolver/package_json.zig b/src/resolver/package_json.zig index 825254fa1..ad7f5490b 100644 --- a/src/resolver/package_json.zig +++ b/src/resolver/package_json.zig @@ -445,6 +445,7 @@ pub const PackageJSON = struct { dirname_fd: StoredFileDescriptorType, comptime generate_hash: bool, comptime include_scripts: bool, + ) ?PackageJSON { // TODO: remove this extra copy |