Skip to content

Commit

Permalink
Split out JSExportCanonicalizeContext
Browse files Browse the repository at this point in the history
  • Loading branch information
ntkme committed Apr 13, 2024
1 parent 36943ad commit 7c6263a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 15 deletions.
21 changes: 21 additions & 0 deletions lib/src/js/importer/canonicalize_context.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Copyright 2014 Google Inc. Use of this source code is governed by an
// MIT-style license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT.

import 'package:js/js.dart';

import '../../importer/canonicalize_context.dart';
import '../url.dart';
import '../../util/nullable.dart';
import '../utils.dart';

@JSExport()
class JSExportCanonicalizeContext {
final CanonicalizeContext _canonicalizeContext;

bool get fromImport => _canonicalizeContext.fromImport;
JSUrl? get containingUrl =>
_canonicalizeContext.containingUrl.andThen(dartToJSUrl);

JSExportCanonicalizeContext(this._canonicalizeContext);
}
17 changes: 2 additions & 15 deletions lib/src/js/utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ import 'package:js/js_util.dart';

import '../importer/canonicalize_context.dart';
import '../syntax.dart';
import '../util/nullable.dart';
import '../utils.dart';
import '../value.dart';
import 'array.dart';
import 'function.dart';
import 'importer.dart';
import 'importer/canonicalize_context.dart';
import 'module.dart';
import 'reflection.dart';
import 'url.dart';
Expand Down Expand Up @@ -200,22 +200,9 @@ Uri jsToDartUrl(JSUrl url) => Uri.parse(url.toString());
/// Converts a Dart [Uri] object to a standard JS `URL` object.
JSUrl dartToJSUrl(Uri url) => JSUrl(url.toString());

/// The use of `@JSExport()` together with `createDartExport` allow us
/// to create a JSObject that lazily access containingUrl
@JSExport()
class _JSExportCanonicalizeContext {
final CanonicalizeContext _canonicalizeContext;

bool get fromImport => _canonicalizeContext.fromImport;
JSUrl? get containingUrl =>
_canonicalizeContext.containingUrl.andThen(dartToJSUrl);

_JSExportCanonicalizeContext(this._canonicalizeContext);
}

JSCanonicalizeContext dartToJSCanonicalizeContext(
CanonicalizeContext canonicalizeContext) {
return createDartExport(_JSExportCanonicalizeContext(canonicalizeContext))
return createDartExport(JSExportCanonicalizeContext(canonicalizeContext))
as JSCanonicalizeContext;
}

Expand Down

0 comments on commit 7c6263a

Please sign in to comment.