|
@@ -74,49 +74,58 @@ export default class ExpandedEnvGroup extends Component<PropsType, StateType> {
|
|
|
let apiEnvVariables: Record<string, string> = {};
|
|
let apiEnvVariables: Record<string, string> = {};
|
|
|
let secretEnvVariables: Record<string, string> = {};
|
|
let secretEnvVariables: Record<string, string> = {};
|
|
|
|
|
|
|
|
- let envVariables = this.state.envVariables
|
|
|
|
|
-
|
|
|
|
|
- envVariables.filter((envVar: KeyValueType, index : number, self : KeyValueType[]) => {
|
|
|
|
|
- // remove any collisions that are marked as deleted and are duplicates, unless they are
|
|
|
|
|
- // all delete collisions
|
|
|
|
|
- let numDeleteCollisions = self.reduce((n, _envVar : KeyValueType) => {
|
|
|
|
|
- return n + (_envVar.key === envVar.key && envVar.deleted ? 1 : 0);
|
|
|
|
|
- }, 0)
|
|
|
|
|
-
|
|
|
|
|
- let numCollisions = self.reduce((n, _envVar : KeyValueType) => {
|
|
|
|
|
- return n + (_envVar.key === envVar.key ? 1 : 0);
|
|
|
|
|
- }, 0)
|
|
|
|
|
-
|
|
|
|
|
- if (numCollisions == numDeleteCollisions) {
|
|
|
|
|
- // if all collisions are delete collisions, just remove duplicates
|
|
|
|
|
- return index === self.findIndex((_envVar : KeyValueType) => (
|
|
|
|
|
- _envVar.key === envVar.key
|
|
|
|
|
- ))
|
|
|
|
|
- } else if (numCollisions == 1) {
|
|
|
|
|
- // if there's just one collision (self), keep the object
|
|
|
|
|
- return true
|
|
|
|
|
- } else {
|
|
|
|
|
- // if there are more collisions than delete collisions, remove all duplicates that
|
|
|
|
|
- // are deletions
|
|
|
|
|
- return index === self.findIndex((_envVar : KeyValueType) => (
|
|
|
|
|
- _envVar.key === envVar.key && !_envVar.deleted
|
|
|
|
|
- ))
|
|
|
|
|
- }
|
|
|
|
|
- }).forEach((envVar: KeyValueType) => {
|
|
|
|
|
- if (envVar.hidden) {
|
|
|
|
|
- if (envVar.deleted) {
|
|
|
|
|
- secretEnvVariables[envVar.key] = null
|
|
|
|
|
- } else if (!envVar.value.includes("PORTERSECRET")) {
|
|
|
|
|
- secretEnvVariables[envVar.key] = envVar.value
|
|
|
|
|
|
|
+ let envVariables = this.state.envVariables;
|
|
|
|
|
+
|
|
|
|
|
+ envVariables
|
|
|
|
|
+ .filter((envVar: KeyValueType, index: number, self: KeyValueType[]) => {
|
|
|
|
|
+ // remove any collisions that are marked as deleted and are duplicates, unless they are
|
|
|
|
|
+ // all delete collisions
|
|
|
|
|
+ let numDeleteCollisions = self.reduce((n, _envVar: KeyValueType) => {
|
|
|
|
|
+ return n + (_envVar.key === envVar.key && envVar.deleted ? 1 : 0);
|
|
|
|
|
+ }, 0);
|
|
|
|
|
+
|
|
|
|
|
+ let numCollisions = self.reduce((n, _envVar: KeyValueType) => {
|
|
|
|
|
+ return n + (_envVar.key === envVar.key ? 1 : 0);
|
|
|
|
|
+ }, 0);
|
|
|
|
|
+
|
|
|
|
|
+ if (numCollisions == numDeleteCollisions) {
|
|
|
|
|
+ // if all collisions are delete collisions, just remove duplicates
|
|
|
|
|
+ return (
|
|
|
|
|
+ index ===
|
|
|
|
|
+ self.findIndex(
|
|
|
|
|
+ (_envVar: KeyValueType) => _envVar.key === envVar.key
|
|
|
|
|
+ )
|
|
|
|
|
+ );
|
|
|
|
|
+ } else if (numCollisions == 1) {
|
|
|
|
|
+ // if there's just one collision (self), keep the object
|
|
|
|
|
+ return true;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // if there are more collisions than delete collisions, remove all duplicates that
|
|
|
|
|
+ // are deletions
|
|
|
|
|
+ return (
|
|
|
|
|
+ index ===
|
|
|
|
|
+ self.findIndex(
|
|
|
|
|
+ (_envVar: KeyValueType) =>
|
|
|
|
|
+ _envVar.key === envVar.key && !_envVar.deleted
|
|
|
|
|
+ )
|
|
|
|
|
+ );
|
|
|
}
|
|
}
|
|
|
- } else {
|
|
|
|
|
- if (envVar.deleted) {
|
|
|
|
|
- apiEnvVariables[envVar.key] = null;
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+ .forEach((envVar: KeyValueType) => {
|
|
|
|
|
+ if (envVar.hidden) {
|
|
|
|
|
+ if (envVar.deleted) {
|
|
|
|
|
+ secretEnvVariables[envVar.key] = null;
|
|
|
|
|
+ } else if (!envVar.value.includes("PORTERSECRET")) {
|
|
|
|
|
+ secretEnvVariables[envVar.key] = envVar.value;
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
- apiEnvVariables[envVar.key] = envVar.value;
|
|
|
|
|
|
|
+ if (envVar.deleted) {
|
|
|
|
|
+ apiEnvVariables[envVar.key] = null;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ apiEnvVariables[envVar.key] = envVar.value;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
this.setState({ saveValuesStatus: "loading" });
|
|
this.setState({ saveValuesStatus: "loading" });
|
|
|
api
|
|
api
|