yeet
This commit is contained in:
113
node_modules/expo-updates/ios/EXUpdates/Update/EXUpdatesUpdate.m
generated
vendored
Normal file
113
node_modules/expo-updates/ios/EXUpdates/Update/EXUpdatesUpdate.m
generated
vendored
Normal file
@ -0,0 +1,113 @@
|
||||
// Copyright © 2019 650 Industries. All rights reserved.
|
||||
|
||||
#import <EXUpdates/EXUpdatesBareUpdate.h>
|
||||
#import <EXUpdates/EXUpdatesDatabase.h>
|
||||
#import <EXUpdates/EXUpdatesLegacyUpdate.h>
|
||||
#import <EXUpdates/EXUpdatesNewUpdate.h>
|
||||
#import <EXUpdates/EXUpdatesUpdate+Private.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface EXUpdatesUpdate ()
|
||||
|
||||
@property (nonatomic, strong, readwrite) NSDictionary *rawManifest;
|
||||
|
||||
@end
|
||||
|
||||
@implementation EXUpdatesUpdate
|
||||
|
||||
- (instancetype)initWithRawManifest:(NSDictionary *)manifest
|
||||
config:(EXUpdatesConfig *)config
|
||||
database:(nullable EXUpdatesDatabase *)database
|
||||
{
|
||||
if (self = [super init]) {
|
||||
_rawManifest = manifest;
|
||||
_config = config;
|
||||
_database = database;
|
||||
_scopeKey = config.scopeKey;
|
||||
_isDevelopmentMode = NO;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
+ (instancetype)updateWithId:(NSUUID *)updateId
|
||||
scopeKey:(NSString *)scopeKey
|
||||
commitTime:(NSDate *)commitTime
|
||||
runtimeVersion:(NSString *)runtimeVersion
|
||||
metadata:(nullable NSDictionary *)metadata
|
||||
status:(EXUpdatesUpdateStatus)status
|
||||
keep:(BOOL)keep
|
||||
config:(EXUpdatesConfig *)config
|
||||
database:(EXUpdatesDatabase *)database
|
||||
{
|
||||
// for now, we store the entire managed manifest in the metadata field
|
||||
EXUpdatesUpdate *update = [[self alloc] initWithRawManifest:metadata ?: @{}
|
||||
config:config
|
||||
database:database];
|
||||
update.updateId = updateId;
|
||||
update.scopeKey = scopeKey;
|
||||
update.commitTime = commitTime;
|
||||
update.runtimeVersion = runtimeVersion;
|
||||
update.metadata = metadata;
|
||||
update.status = status;
|
||||
update.keep = keep;
|
||||
return update;
|
||||
}
|
||||
|
||||
+ (instancetype)updateWithManifest:(NSDictionary *)manifest
|
||||
config:(EXUpdatesConfig *)config
|
||||
database:(EXUpdatesDatabase *)database
|
||||
{
|
||||
if (config.usesLegacyManifest) {
|
||||
return [EXUpdatesLegacyUpdate updateWithLegacyManifest:manifest
|
||||
config:config
|
||||
database:database];
|
||||
} else {
|
||||
return [EXUpdatesNewUpdate updateWithNewManifest:manifest
|
||||
config:config
|
||||
database:database];
|
||||
}
|
||||
}
|
||||
|
||||
+ (instancetype)updateWithEmbeddedManifest:(NSDictionary *)manifest
|
||||
config:(EXUpdatesConfig *)config
|
||||
database:(nullable EXUpdatesDatabase *)database
|
||||
{
|
||||
if (config.usesLegacyManifest) {
|
||||
if (manifest[@"releaseId"]) {
|
||||
return [EXUpdatesLegacyUpdate updateWithLegacyManifest:manifest
|
||||
config:config
|
||||
database:database];
|
||||
} else {
|
||||
return [EXUpdatesBareUpdate updateWithBareManifest:manifest
|
||||
config:config
|
||||
database:database];
|
||||
}
|
||||
} else {
|
||||
if (manifest[@"runtimeVersion"]) {
|
||||
return [EXUpdatesNewUpdate updateWithNewManifest:manifest
|
||||
config:config
|
||||
database:database];
|
||||
} else {
|
||||
return [EXUpdatesBareUpdate updateWithBareManifest:manifest
|
||||
config:config
|
||||
database:database];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (NSArray<EXUpdatesAsset *> *)assets
|
||||
{
|
||||
if (!_assets && _database) {
|
||||
dispatch_sync(_database.databaseQueue, ^{
|
||||
NSError *error;
|
||||
self->_assets = [self->_database assetsWithUpdateId:self->_updateId error:&error];
|
||||
NSAssert(self->_assets, @"Assets should be nonnull when selected from DB: %@", error.localizedDescription);
|
||||
});
|
||||
}
|
||||
return _assets;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
Reference in New Issue
Block a user