Skip to content

Commit d4f9f67

Browse files
authored
remove the dep on package:uuid (#2415)
1 parent 78555cd commit d4f9f67

File tree

3 files changed

+36
-5
lines changed

3 files changed

+36
-5
lines changed

frontend_server_common/lib/src/frontend_server_client.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ import 'package:dwds/expression_compiler.dart';
1212
import 'package:logging/logging.dart';
1313
import 'package:package_config/package_config.dart';
1414
import 'package:test_common/test_sdk_layout.dart';
15-
import 'package:uuid/uuid.dart';
1615

1716
import 'utilities.dart';
17+
import 'uuid.dart';
1818

1919
Logger _logger = Logger('FrontendServerClient');
2020
Logger _serverLogger = Logger('FrontendServer');
@@ -320,7 +320,7 @@ class ResidentCompiler {
320320
}
321321
var server = _server!;
322322

323-
var inputKey = const Uuid().v4();
323+
var inputKey = generateV4UUID();
324324
server.stdin.writeln('recompile $mainUri$inputKey');
325325
_logger.info('<- recompile $mainUri$inputKey');
326326
for (var fileUri in request.invalidatedFiles) {
@@ -463,7 +463,7 @@ class ResidentCompiler {
463463
}
464464
var server = _server!;
465465

466-
var inputKey = const Uuid().v4();
466+
var inputKey = generateV4UUID();
467467
server.stdin.writeln('compile-expression $inputKey');
468468
server.stdin.writeln(request.expression);
469469
request.definitions.forEach(server.stdin.writeln);
@@ -508,7 +508,7 @@ class ResidentCompiler {
508508
}
509509
var server = _server!;
510510

511-
var inputKey = const Uuid().v4();
511+
var inputKey = generateV4UUID();
512512
server.stdin.writeln('compile-expression-to-js $inputKey');
513513
server.stdin.writeln(request.libraryUri);
514514
server.stdin.writeln(request.line);
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'dart:math' show Random;
6+
7+
/// A UUID generator.
8+
///
9+
/// The generated values are 128 bit numbers encoded in a specific string
10+
/// format.
11+
///
12+
/// Generate a version 4 (random) uuid. This is a uuid scheme that only uses
13+
/// random numbers as the source of the generated uuid.
14+
String generateV4UUID() {
15+
final special = 8 + _random.nextInt(4);
16+
17+
return '${_bitsDigits(16, 4)}${_bitsDigits(16, 4)}-'
18+
'${_bitsDigits(16, 4)}-'
19+
'4${_bitsDigits(12, 3)}-'
20+
'${_printDigits(special, 1)}${_bitsDigits(12, 3)}-'
21+
'${_bitsDigits(16, 4)}${_bitsDigits(16, 4)}${_bitsDigits(16, 4)}';
22+
}
23+
24+
final Random _random = Random();
25+
26+
String _bitsDigits(int bitCount, int digitCount) =>
27+
_printDigits(_generateBits(bitCount), digitCount);
28+
29+
int _generateBits(int bitCount) => _random.nextInt(1 << bitCount);
30+
31+
String _printDigits(int value, int count) =>
32+
value.toRadixString(16).padLeft(count, '0');

frontend_server_common/pubspec.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,3 @@ dependencies:
1717
pub_semver: ^2.1.1
1818
test_common:
1919
path: ../test_common
20-
uuid: ^3.0.7

0 commit comments

Comments
 (0)