Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(package_info_plus)!: two-package federated architecture #1236

Merged
merged 4 commits into from Oct 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -13,16 +13,8 @@ dependencies:
path: ../

dependency_overrides:
package_info_plus_linux:
path: ../../package_info_plus_linux
package_info_plus_macos:
path: ../../package_info_plus_macos
package_info_plus_platform_interface:
path: ../../package_info_plus_platform_interface
package_info_plus_web:
path: ../../package_info_plus_web
package_info_plus_windows:
path: ../../package_info_plus_windows

dev_dependencies:
integration_test:
Expand Down
Expand Up @@ -7,6 +7,10 @@ import 'dart:async';
import 'package:flutter/foundation.dart' show visibleForTesting;
import 'package:package_info_plus_platform_interface/package_info_platform_interface.dart';

export 'src/package_info_plus_linux.dart';
export 'src/package_info_plus_windows.dart'
if (dart.library.html) 'src/package_info_plus_web.dart';

/// Application metadata. Provides application bundle information on iOS and
/// application package information on Android.
class PackageInfo {
Expand Down
Expand Up @@ -6,10 +6,10 @@ import 'package:package_info_plus_platform_interface/package_info_platform_inter
import 'package:path/path.dart' as path;

/// The Linux implementation of [PackageInfoPlatform].
class PackageInfoLinux extends PackageInfoPlatform {
class PackageInfoPlusLinuxPlugin extends PackageInfoPlatform {
/// Register this dart class as the platform implementation for linux
static void registerWith() {
PackageInfoPlatform.instance = PackageInfoLinux();
PackageInfoPlatform.instance = PackageInfoPlusLinuxPlugin();
}

/// Returns a map with the following keys:
Expand Down
Expand Up @@ -9,15 +9,15 @@ import 'package:package_info_plus_platform_interface/package_info_platform_inter
/// The web implementation of [PackageInfoPlatform].
///
/// This class implements the `package:package_info_plus` functionality for the web.
class PackageInfoPlugin extends PackageInfoPlatform {
class PackageInfoPlusWebPlugin extends PackageInfoPlatform {
final Client? _client;

/// Create plugin with http client.
PackageInfoPlugin([this._client]);
PackageInfoPlusWebPlugin([this._client]);

/// Registers this class as the default instance of [PackageInfoPlatform].
static void registerWith(Registrar registrar) {
PackageInfoPlatform.instance = PackageInfoPlugin();
PackageInfoPlatform.instance = PackageInfoPlusWebPlugin();
}

/// Get version.json full url.
Expand Down
@@ -1,8 +1,8 @@
/// The Windows implementation of `package_info_plus`.
library package_info_plus_windows;

import 'dart:io';
import 'dart:ffi';
import 'dart:io';

import 'package:ffi/ffi.dart';
import 'package:package_info_plus_platform_interface/package_info_data.dart';
Expand All @@ -12,10 +12,10 @@ import 'package:win32/win32.dart';
part 'file_version_info.dart';

/// The Windows implementation of [PackageInfoPlatform].
class PackageInfoWindows extends PackageInfoPlatform {
class PackageInfoPlusWindowsPlugin extends PackageInfoPlatform {
/// Register this dart class as the platform implementation for linux
static void registerWith() {
PackageInfoPlatform.instance = PackageInfoWindows();
PackageInfoPlatform.instance = PackageInfoPlusWindowsPlugin();
}

/// Returns a map with the following keys:
Expand Down
Expand Up @@ -3,10 +3,10 @@
#
Pod::Spec.new do |s|
s.name = 'package_info_plus'
s.version = '0.4.5'
s.version = '0.0.1'
s.summary = 'Flutter Package Info'
s.description = <<-DESC
A new flutter plugin project.
A macOS implementation of the package_info_plus plugin.
DESC
s.homepage = 'https://github.com/fluttercommunity/package_info_plus'
s.license = { :file => '../LICENSE' }
Expand Down
25 changes: 16 additions & 9 deletions packages/package_info_plus/package_info_plus/pubspec.yaml
Expand Up @@ -14,27 +14,34 @@ flutter:
ios:
pluginClass: FLTPackageInfoPlusPlugin
linux:
default_package: package_info_plus_linux
dartPluginClass: PackageInfoPlusLinuxPlugin
macos:
default_package: package_info_plus_macos
pluginClass: FLTPackageInfoPlusPlugin
web:
default_package: package_info_plus_web
pluginClass: PackageInfoPlusWebPlugin
fileName: src/package_info_plus_web.dart
windows:
default_package: package_info_plus_windows
dartPluginClass: PackageInfoPlusWindowsPlugin

dependencies:
ffi: ^2.0.1
flutter:
sdk: flutter
flutter_web_plugins:
sdk: flutter
http: ^0.13.0
meta: ^1.3.0
path: ^1.8.0
package_info_plus_platform_interface: ^2.0.0
package_info_plus_linux: ^2.0.0
package_info_plus_macos: ^2.0.0
package_info_plus_windows: ^3.0.0
package_info_plus_web: ^2.0.0
win32: ">=2.7.0 <4.0.0"

dev_dependencies:
build_runner: ^2.0.3
flutter_lints: ^2.0.1
flutter_test:
sdk: flutter
mockito: ^5.0.7
test: ^1.21.1
flutter_lints: ^2.0.1

environment:
sdk: ">=2.12.0 <3.0.0"
Expand Down
@@ -1,10 +1,10 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:package_info_plus_linux/src/package_info.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:package_info_plus_platform_interface/package_info_platform_interface.dart';

void main() {
test('registered instance', () {
PackageInfoLinux.registerWith();
expect(PackageInfoPlatform.instance, isA<PackageInfoLinux>());
PackageInfoPlusLinuxPlugin.registerWith();
expect(PackageInfoPlatform.instance, isA<PackageInfoPlusLinuxPlugin>());
});
}
@@ -1,5 +1,5 @@
// Mocks generated by Mockito 5.0.14 from annotations
// in package_info_plus_web/test/package_info_plus_web_test.dart.
// in package_info_plus_web/test/package_info_plus_web_test_disabled.dart.
// Do not manually edit this file.

// ignore_for_file: camel_case_types, unnecessary_overrides
Expand Down
@@ -1,10 +1,10 @@
import 'dart:convert';

import 'package:flutter_test/flutter_test.dart';
import 'package:http/http.dart' as http;
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';
import 'package:package_info_plus_web/package_info_plus_web.dart';
import 'package:http/http.dart' as http;
import 'package:package_info_plus/src/package_info_plus_web.dart';

import 'package_info_plus_web_test.mocks.dart';

Expand All @@ -20,12 +20,12 @@ void main() {
'build_signature': '',
};

late PackageInfoPlugin plugin;
late PackageInfoPlusWebPlugin plugin;
late MockClient client;

setUp(() {
client = MockClient();
plugin = PackageInfoPlugin(client);
plugin = PackageInfoPlusWebPlugin(client);
});

group(
Expand Down
@@ -1,10 +1,10 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:package_info_plus/src/package_info_plus_windows.dart';
import 'package:package_info_plus_platform_interface/package_info_platform_interface.dart';
import 'package:package_info_plus_windows/src/package_info_plus_windows.dart';

void main() {
test('registered instance', () {
PackageInfoWindows.registerWith();
expect(PackageInfoPlatform.instance, isA<PackageInfoWindows>());
PackageInfoPlusWindowsPlugin.registerWith();
expect(PackageInfoPlatform.instance, isA<PackageInfoPlusWindowsPlugin>());
});
}
7 changes: 0 additions & 7 deletions packages/package_info_plus/package_info_plus_linux/.gitignore

This file was deleted.

10 changes: 0 additions & 10 deletions packages/package_info_plus/package_info_plus_linux/.metadata

This file was deleted.

36 changes: 0 additions & 36 deletions packages/package_info_plus/package_info_plus_linux/CHANGELOG.md

This file was deleted.

27 changes: 0 additions & 27 deletions packages/package_info_plus/package_info_plus_linux/LICENSE

This file was deleted.

12 changes: 0 additions & 12 deletions packages/package_info_plus/package_info_plus_linux/README.md

This file was deleted.

This file was deleted.

28 changes: 0 additions & 28 deletions packages/package_info_plus/package_info_plus_linux/pubspec.yaml

This file was deleted.

39 changes: 0 additions & 39 deletions packages/package_info_plus/package_info_plus_macos/CHANGELOG.md

This file was deleted.