aboutsummaryrefslogtreecommitdiff
path: root/src/install
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/install/install.zig27
-rw-r--r--src/install/npm.zig34
2 files changed, 30 insertions, 31 deletions
diff --git a/src/install/install.zig b/src/install/install.zig
index 7620356b6..3065a6f72 100644
--- a/src/install/install.zig
+++ b/src/install/install.zig
@@ -2332,7 +2332,7 @@ pub const Lockfile = struct {
inline for (dependency_groups) |group| {
if (json.asProperty(group.prop)) |dependencies_q| {
if (dependencies_q.expr.data == .e_object) {
- for (dependencies_q.expr.data.e_object.properties) |item| {
+ for (dependencies_q.expr.data.e_object.properties.slice()) |item| {
string_builder.count(item.key.?.asString(allocator) orelse "");
string_builder.count(item.value.?.asString(allocator) orelse "");
}
@@ -2381,7 +2381,7 @@ pub const Lockfile = struct {
inline for (dependency_groups) |group| {
if (json.asProperty(group.prop)) |dependencies_q| {
if (dependencies_q.expr.data == .e_object) {
- const dependency_props: []const JSAst.G.Property = dependencies_q.expr.data.e_object.properties;
+ const dependency_props: []const JSAst.G.Property = dependencies_q.expr.data.e_object.properties.slice();
var i: usize = 0;
outer: while (i < dependency_props.len) {
const item = dependency_props[i];
@@ -5170,7 +5170,7 @@ pub const PackageManager = struct {
var dependencies: []G.Property = &[_]G.Property{};
if (current_package_json.asProperty(dependency_list)) |query| {
if (query.expr.data == .e_object) {
- dependencies = query.expr.data.e_object.properties;
+ dependencies = query.expr.data.e_object.properties.slice();
}
}
@@ -5233,7 +5233,7 @@ pub const PackageManager = struct {
dependencies_object = JSAst.Expr.init(
JSAst.E.Object,
JSAst.E.Object{
- .properties = new_dependencies,
+ .properties = JSAst.G.Property.List.init(new_dependencies),
},
logger.Loc.Empty,
);
@@ -5251,10 +5251,10 @@ pub const PackageManager = struct {
),
.value = dependencies_object,
};
- current_package_json.* = JSAst.Expr.init(JSAst.E.Object, JSAst.E.Object{ .properties = root_properties }, logger.Loc.Empty);
+ current_package_json.* = JSAst.Expr.init(JSAst.E.Object, JSAst.E.Object{ .properties = JSAst.G.Property.List.init(root_properties) }, logger.Loc.Empty);
} else if (needs_new_dependency_list) {
var root_properties = try allocator.alloc(JSAst.G.Property, current_package_json.data.e_object.properties.len + 1);
- std.mem.copy(JSAst.G.Property, root_properties, current_package_json.data.e_object.properties);
+ std.mem.copy(JSAst.G.Property, root_properties, current_package_json.data.e_object.properties.slice());
root_properties[root_properties.len - 1].key = JSAst.Expr.init(
JSAst.E.String,
JSAst.E.String{
@@ -5263,10 +5263,10 @@ pub const PackageManager = struct {
logger.Loc.Empty,
);
root_properties[root_properties.len - 1].value = dependencies_object;
- current_package_json.* = JSAst.Expr.init(JSAst.E.Object, JSAst.E.Object{ .properties = root_properties }, logger.Loc.Empty);
+ current_package_json.* = JSAst.Expr.init(JSAst.E.Object, JSAst.E.Object{ .properties = JSAst.G.Property.List.init(root_properties) }, logger.Loc.Empty);
}
- dependencies_object.data.e_object.properties = new_dependencies;
+ dependencies_object.data.e_object.properties = JSAst.G.Property.List.init(new_dependencies);
dependencies_object.data.e_object.packageJSONSort();
}
@@ -5935,7 +5935,7 @@ pub const PackageManager = struct {
inline for (dependency_lists_to_check) |list| {
if (current_package_json.asProperty(list)) |query| {
if (query.expr.data == .e_object) {
- var dependencies = query.expr.data.e_object.properties;
+ var dependencies = query.expr.data.e_object.properties.slice();
var i: usize = 0;
var new_len = dependencies.len;
while (i < dependencies.len) : (i += 1) {
@@ -5955,17 +5955,14 @@ pub const PackageManager = struct {
const changed = new_len != dependencies.len;
if (changed) {
- query.expr.data.e_object.properties = query.expr.data.e_object.properties[0..new_len];
+ query.expr.data.e_object.properties.len = @truncate(u32, new_len);
// If the dependencies list is now empty, remove it from the package.json
// since we're swapRemove, we have to re-sort it
if (query.expr.data.e_object.properties.len == 0) {
- var arraylist = std.ArrayListUnmanaged(JSAst.G.Property){
- .items = current_package_json.data.e_object.properties,
- .capacity = current_package_json.data.e_object.properties.len,
- };
+ var arraylist = current_package_json.data.e_object.properties.list();
_ = arraylist.swapRemove(query.i);
- current_package_json.data.e_object.properties = arraylist.items;
+ current_package_json.data.e_object.properties.update(arraylist);
current_package_json.data.e_object.packageJSONSort();
} else {
var obj = query.expr.data.e_object;
diff --git a/src/install/npm.zig b/src/install/npm.zig
index 8ca08fc4b..3f3f8596a 100644
--- a/src/install/npm.zig
+++ b/src/install/npm.zig
@@ -745,7 +745,7 @@ pub const PackageManifest = struct {
if (json.asProperty("versions")) |versions_q| {
if (versions_q.expr.data != .e_object) break :get_versions;
- const versions = versions_q.expr.data.e_object.properties;
+ const versions = versions_q.expr.data.e_object.properties.slice();
for (versions) |prop| {
const version_name = prop.key.?.asString(allocator) orelse continue;
@@ -764,8 +764,8 @@ pub const PackageManifest = struct {
switch (bin.expr.data) {
.e_object => |obj| {
if (obj.properties.len > 0) {
- string_builder.count(obj.properties[0].key.?.asString(allocator) orelse break :bin);
- string_builder.count(obj.properties[0].value.?.asString(allocator) orelse break :bin);
+ string_builder.count(obj.properties.ptr[0].key.?.asString(allocator) orelse break :bin);
+ string_builder.count(obj.properties.ptr[0].value.?.asString(allocator) orelse break :bin);
}
},
.e_string => {
@@ -792,7 +792,7 @@ pub const PackageManifest = struct {
if (prop.value.?.asProperty(pair.prop)) |versioned_deps| {
if (versioned_deps.expr.data == .e_object) {
dependency_sum += versioned_deps.expr.data.e_object.properties.len;
- const properties = versioned_deps.expr.data.e_object.properties;
+ const properties = versioned_deps.expr.data.e_object.properties.slice();
for (properties) |property| {
if (property.key.?.asString(allocator)) |key| {
string_builder.count(key);
@@ -811,7 +811,7 @@ pub const PackageManifest = struct {
var dist_tags_count: usize = 0;
if (json.asProperty("dist-tags")) |dist| {
if (dist.expr.data == .e_object) {
- const tags = dist.expr.data.e_object.properties;
+ const tags = dist.expr.data.e_object.properties.slice();
for (tags) |tag| {
if (tag.key.?.asString(allocator)) |key| {
string_builder.count(key);
@@ -890,7 +890,7 @@ pub const PackageManifest = struct {
if (json.asProperty("versions")) |versions_q| {
if (versions_q.expr.data != .e_object) break :get_versions;
- const versions = versions_q.expr.data.e_object.properties;
+ const versions = versions_q.expr.data.e_object.properties.slice();
var all_dependency_names_and_values = all_extern_strings[0..dependency_sum];
@@ -926,9 +926,10 @@ pub const PackageManifest = struct {
switch (cpu.expr.data) {
.e_array => |arr| {
- if (arr.items.len > 0) {
+ const items = arr.slice();
+ if (items.len > 0) {
package_version.cpu = Architecture.none;
- for (arr.items) |item| {
+ for (items) |item| {
if (item.asString(allocator)) |cpu_str_| {
package_version.cpu = package_version.cpu.apply(cpu_str_);
}
@@ -947,9 +948,10 @@ pub const PackageManifest = struct {
switch (os.expr.data) {
.e_array => |arr| {
- if (arr.items.len > 0) {
+ const items = arr.slice();
+ if (items.len > 0) {
package_version.os = OperatingSystem.none;
- for (arr.items) |item| {
+ for (items) |item| {
if (item.asString(allocator)) |cpu_str_| {
package_version.os = package_version.os.apply(cpu_str_);
}
@@ -967,9 +969,9 @@ pub const PackageManifest = struct {
if (prop.value.?.asProperty("bin")) |bin| {
switch (bin.expr.data) {
.e_object => |obj| {
- if (obj.properties.len > 0) {
- const bin_name = obj.properties[0].key.?.asString(allocator) orelse break :bin;
- const value = obj.properties[0].value.?.asString(allocator) orelse break :bin;
+ if (obj.properties.slice().len > 0) {
+ const bin_name = obj.properties.ptr[0].key.?.asString(allocator) orelse break :bin;
+ const value = obj.properties.ptr[0].value.?.asString(allocator) orelse break :bin;
// For now, we're only supporting the first bin
// We'll fix that later
package_version.bin = Bin{
@@ -1057,7 +1059,7 @@ pub const PackageManifest = struct {
inline for (dependency_groups) |pair| {
if (prop.value.?.asProperty(comptime pair.prop)) |versioned_deps| {
- const items = versioned_deps.expr.data.e_object.properties;
+ const items = versioned_deps.expr.data.e_object.properties.slice();
var count = items.len;
var this_names = dependency_names[0..count];
@@ -1073,7 +1075,7 @@ pub const PackageManifest = struct {
if (prop.value.?.asProperty("peerDependenciesMeta")) |meta| {
if (meta.expr.data == .e_object) {
- const meta_props = meta.expr.data.e_object.properties;
+ const meta_props = meta.expr.data.e_object.properties.slice();
try optional_peer_dep_names.ensureUnusedCapacity(meta_props.len);
for (meta_props) |meta_prop| {
if (meta_prop.value.?.asProperty("optional")) |optional| {
@@ -1246,7 +1248,7 @@ pub const PackageManifest = struct {
if (json.asProperty("dist-tags")) |dist| {
if (dist.expr.data == .e_object) {
- const tags = dist.expr.data.e_object.properties;
+ const tags = dist.expr.data.e_object.properties.slice();
var extern_strings_slice = extern_strings[0..dist_tags_count];
var dist_tag_i: usize = 0;