Merge branch 'release/3.1.4'

This commit is contained in:
Max 2025-12-12 10:44:19 +08:00
commit 2ce35a396e
3 changed files with 23 additions and 12 deletions

View File

@ -94,25 +94,35 @@ class TemplateLoader {
}
final configContent = packageConfigFile.readAsStringSync();
final config = jsonDecode(configContent) as Map<String, dynamic>;
final packages = config['packages'] as List<dynamic>;
// swagger_generator_flutter rootUri
// : "name": "swagger_generator_flutter", ... "rootUri": "file:///path/to/package"
final pattern = RegExp(
r'"name"\s*:\s*"swagger_generator_flutter"[^}]*"rootUri"\s*:\s*"([^"]+)"',
multiLine: true,
final package = packages.firstWhere(
(p) => p['name'] == 'swagger_generator_flutter',
orElse: () => null,
);
final match = pattern.firstMatch(configContent);
if (match != null) {
var rootUri = match.group(1)!;
if (package != null) {
final rootUri = package['rootUri'] as String;
String packagePath;
// file://
// file://
if (rootUri.startsWith('file://')) {
rootUri = rootUri.substring(7);
packagePath = Uri.parse(rootUri).toFilePath();
} else {
// ( .dart_tool/)
// package_config.json ../
packagePath = rootUri;
}
// .dart_tool/package_config.json
if (!p.isAbsolute(packagePath)) {
// package_config.json .dart_tool
packagePath = p.normalize(p.join('.dart_tool', packagePath));
}
//
final templateDir = p.join(rootUri, 'lib', 'templates');
final templateDir = p.join(packagePath, 'lib', 'templates');
if (Directory(templateDir).existsSync()) {
dirs.add(templateDir);
}

View File

@ -1,3 +1,4 @@
import 'dart:convert';
import 'dart:io';
import 'package:mustache_template/mustache_template.dart';

View File

@ -1,7 +1,7 @@
name: swagger_generator_flutter
description: A powerful Swagger/OpenAPI code generator for Flutter projects with Dio + Retrofit support
version: 3.1.0
version: 3.1.4
environment:
sdk: '>=3.0.0 <4.0.0'