Skip to content

Commit

Permalink
chore: forward-port to updated superstruct dependency
Browse files Browse the repository at this point in the history
ratcheted versions forward one by one following forward-port guidance
from the changelog:

https://github.com/ianstormtaylor/superstruct/blob/main/Changelog.md
  • Loading branch information
mikehardy committed Dec 24, 2020
1 parent 13b56df commit c040ff8
Show file tree
Hide file tree
Showing 4 changed files with 164 additions and 165 deletions.
316 changes: 160 additions & 156 deletions packages/analytics/lib/structs.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,225 +13,229 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import struct from '@react-native-firebase/app/lib/common/struct';
import { define, string, optional, number } from 'superstruct';

const Item = struct({
item_brand: 'string?',
item_id: 'string?',
item_name: 'string?',
item_category: 'string?',
item_category2: 'string?',
item_category3: 'string?',
item_category4: 'string?',
item_category5: 'string?',
item_list_id: 'string?',
item_list_name: 'string?',
item_location_id: 'string?',
item_variant: 'string?',
quantity: 'number?',
const isShortDate = function (value) {
return typeof value === 'string' && !!value.match(/^\d{4}-\d{2}-\d{2}$/);
};

const Item = define({
item_brand: optional(string()),
item_id: optional(string()),
item_name: optional(string()),
item_category: optional(string()),
item_category2: optional(string()),
item_category3: optional(string()),
item_category4: optional(string()),
item_category5: optional(string()),
item_list_id: optional(string()),
item_list_name: optional(string()),
item_location_id: optional(string()),
item_variant: optional(string()),
quantity: number(),
});

export const ScreenView = struct({
screen_class: 'string?',
screen_name: 'string?',
export const ScreenView = define({
screen_class: optional(string()),
screen_name: optional(string()),
});

export const AddPaymentInfo = struct({
items: struct.optional([Item]),
value: 'number?',
currency: 'string?',
coupon: 'string?',
payment_type: 'string?',
export const AddPaymentInfo = define({
items: optional([Item]),
value: number(),
currency: optional(string()),
coupon: optional(string()),
payment_type: optional(string()),
});

export const AddShippingInfo = struct({
items: struct.optional([Item]),
value: 'number?',
currency: 'string?',
coupon: 'string?',
shipping_tier: 'string?',
export const AddShippingInfo = define({
items: optional([Item]),
value: number(),
currency: optional(string()),
coupon: optional(string()),
shipping_tier: optional(string()),
});

export const AddToCart = struct({
items: struct.optional([Item]),
value: 'number?',
currency: 'string?',
export const AddToCart = define({
items: optional([Item]),
value: number(),
currency: optional(string()),
});

export const AddToWishlist = struct({
items: struct.optional([Item]),
value: 'number?',
currency: 'string?',
export const AddToWishlist = define({
items: optional([Item]),
value: number(),
currency: optional(string()),
});

export const BeginCheckout = struct({
items: struct.optional([Item]),
value: 'number?',
currency: 'string?',
coupon: 'string?',
export const BeginCheckout = define({
items: optional([Item]),
value: number(),
currency: optional(string()),
coupon: optional(string()),
});

export const CampaignDetails = struct({
source: 'string',
medium: 'string',
campaign: 'string',
term: 'string?',
content: 'string?',
aclid: 'string?',
cp1: 'string?',
export const CampaignDetails = define({
source: string(),
medium: string(),
campaign: string(),
term: optional(string()),
content: optional(string()),
aclid: optional(string()),
cp1: optional(string()),
});

export const EarnVirtualCurrency = struct({
virtual_currency_name: 'string',
value: 'number',
export const EarnVirtualCurrency = define({
virtual_currency_name: string(),
value: number(),
});

export const GenerateLead = struct({
currency: 'string?',
value: 'number?',
export const GenerateLead = define({
currency: optional(string()),
value: number(),
});

export const JoinGroup = struct({
group_id: 'string',
export const JoinGroup = define({
group_id: string(),
});

export const LevelEnd = struct({
level: 'number',
success: 'string?',
export const LevelEnd = define({
level: number(),
success: optional(string()),
});

export const LevelStart = struct({
level: 'number',
export const LevelStart = define({
level: number(),
});

export const LevelUp = struct({
level: 'number',
character: 'string?',
export const LevelUp = define({
level: number(),
character: optional(string()),
});

export const Login = struct({
method: 'string',
export const Login = define({
method: string(),
});

export const PostScore = struct({
score: 'number',
level: 'number?',
character: 'string?',
export const PostScore = define({
score: number(),
level: number(),
character: optional(string()),
});

export const Refund = struct({
affiliation: 'string?',
coupon: 'string?',
currency: 'string?',
items: struct.optional([Item]),
shipping: 'number?',
tax: 'number?',
value: 'number?',
transaction_id: 'string?',
export const Refund = define({
affiliation: optional(string()),
coupon: optional(string()),
currency: optional(string()),
items: optional([Item]),
shipping: number(),
tax: number(),
value: number(),
transaction_id: optional(string()),
});

export const Purchase = struct({
affiliation: 'string?',
coupon: 'string?',
currency: 'string?',
items: struct.optional([Item]),
shipping: 'number?',
tax: 'number?',
value: 'number?',
transaction_id: 'string?',
export const Purchase = define({
affiliation: optional(string()),
coupon: optional(string()),
currency: optional(string()),
items: optional([Item]),
shipping: number(),
tax: number(),
value: number(),
transaction_id: optional(string()),
});

export const RemoveFromCart = struct({
currency: 'string?',
items: struct.optional([Item]),
value: 'number?',
export const RemoveFromCart = define({
currency: optional(string()),
items: optional([Item]),
value: number(),
});

export const Search = struct({
search_term: 'string',
number_of_nights: 'number?',
number_of_rooms: 'number?',
number_of_passengers: 'number?',
origin: 'string?',
destination: 'string?',
start_date: 'shortDate?',
end_date: 'shortDate?',
travel_class: 'string?',
export const Search = define({
search_term: string(),
number_of_nights: number(),
number_of_rooms: number(),
number_of_passengers: number(),
origin: optional(string()),
destination: optional(string()),
start_date: optional(isShortDate),
end_date: optional(isShortDate),
travel_class: optional(string()),
});

export const SelectContent = struct({
content_type: 'string',
item_id: 'string',
export const SelectContent = define({
content_type: string(),
item_id: string(),
});

export const SelectItem = struct({
items: struct.optional([Item]),
item_list_id: 'string?',
item_list_name: 'string?',
content_type: 'string?',
export const SelectItem = define({
items: optional([Item]),
item_list_id: optional(string()),
item_list_name: optional(string()),
content_type: optional(string()),
});

export const SelectPromotion = struct({
creative_name: 'string',
creative_slot: 'string',
items: struct.optional([Item]),
location_id: 'string',
promotion_id: 'string',
promotion_name: 'string',
export const SelectPromotion = define({
creative_name: string(),
creative_slot: string(),
items: optional([Item]),
location_id: string(),
promotion_id: string(),
promotion_name: string(),
});

export const SetCheckoutOption = struct({
checkout_step: 'number',
checkout_option: 'string',
export const SetCheckoutOption = define({
checkout_step: number(),
checkout_option: string(),
});

export const Share = struct({
content_type: 'string',
item_id: 'string',
method: 'string',
export const Share = define({
content_type: string(),
item_id: string(),
method: string(),
});

export const SignUp = struct({
method: 'string',
export const SignUp = define({
method: string(),
});

export const SpendVirtualCurrency = struct({
item_name: 'string',
virtual_currency_name: 'string',
value: 'number',
export const SpendVirtualCurrency = define({
item_name: string(),
virtual_currency_name: string(),
value: number(),
});

export const UnlockAchievement = struct({
achievement_id: 'string',
export const UnlockAchievement = define({
achievement_id: string(),
});

export const ViewCart = struct({
currency: 'string?',
items: struct.optional([Item]),
value: 'number?',
export const ViewCart = define({
currency: optional(string()),
items: optional([Item]),
value: number(),
});

export const ViewItem = struct({
currency: 'string?',
items: struct.optional([Item]),
value: 'number?',
export const ViewItem = define({
currency: optional(string()),
items: optional([Item]),
value: number(),
});

export const ViewItemList = struct({
items: struct.optional([Item]),
item_list_id: 'string?',
item_list_name: 'string?',
export const ViewItemList = define({
items: optional([Item]),
item_list_id: optional(string()),
item_list_name: optional(string()),
});

export const ViewPromotion = struct({
items: struct.optional([Item]),
location_id: 'string?',
creative_name: 'string?',
creative_slot: 'string?',
promotion_id: 'string?',
promotion_name: 'string?',
export const ViewPromotion = define({
items: optional([Item]),
location_id: optional(string()),
creative_name: optional(string()),
creative_slot: optional(string()),
promotion_id: optional(string()),
promotion_name: optional(string()),
});

export const ViewSearchResults = struct({
search_term: 'string',
export const ViewSearchResults = define({
search_term: string(),
});
3 changes: 3 additions & 0 deletions packages/analytics/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
"firebase",
"analytics"
],
"dependencies": {
"superstruct": "^0.13.0"
},
"peerDependencies": {
"@react-native-firebase/app": "10.3.0"
},
Expand Down
Loading

0 comments on commit c040ff8

Please sign in to comment.