Merge pull request #29 from dukefirehawk/feature/update-jael
Enabled Jael cache
This commit is contained in:
commit
4bacd4d77e
21 changed files with 131 additions and 116 deletions
|
@ -1,5 +1,9 @@
|
||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
|
## 4.2.2
|
||||||
|
|
||||||
|
* Set default `cacheViews` to true
|
||||||
|
|
||||||
## 4.2.1
|
## 4.2.1
|
||||||
|
|
||||||
* Added `minified` parameter for generating minified HTML output
|
* Added `minified` parameter for generating minified HTML output
|
||||||
|
|
|
@ -14,19 +14,19 @@ import 'package:belatuk_symbol_table/belatuk_symbol_table.dart';
|
||||||
///
|
///
|
||||||
/// To apply additional transforms to parsed documents, provide a set of [patch] functions.
|
/// To apply additional transforms to parsed documents, provide a set of [patch] functions.
|
||||||
AngelConfigurer jael(Directory viewsDirectory,
|
AngelConfigurer jael(Directory viewsDirectory,
|
||||||
{String? fileExtension,
|
{String fileExtension = '.jael',
|
||||||
bool strictResolution = false,
|
bool strictResolution = false,
|
||||||
bool cacheViews = false,
|
bool cacheViews = true,
|
||||||
Iterable<Patcher> patch = const [],
|
Iterable<Patcher> patch = const [],
|
||||||
bool asDSX = false,
|
bool asDSX = false,
|
||||||
bool minified = false,
|
bool minified = false,
|
||||||
CodeBuffer Function()? createBuffer}) {
|
CodeBuffer Function()? createBuffer}) {
|
||||||
var cache = <String, Document?>{};
|
var cache = <String, Document>{};
|
||||||
fileExtension ??= '.jael';
|
|
||||||
if (createBuffer == null && minified) {
|
var bufferFunc = createBuffer ?? () => CodeBuffer();
|
||||||
createBuffer = () => CodeBuffer(space: '', newline: '');
|
|
||||||
} else {
|
if (minified) {
|
||||||
createBuffer ??= () => CodeBuffer();
|
bufferFunc = () => CodeBuffer(space: '', newline: '');
|
||||||
}
|
}
|
||||||
|
|
||||||
return (Angel app) async {
|
return (Angel app) async {
|
||||||
|
@ -34,28 +34,33 @@ AngelConfigurer jael(Directory viewsDirectory,
|
||||||
var errors = <JaelError>[];
|
var errors = <JaelError>[];
|
||||||
Document? processed;
|
Document? processed;
|
||||||
|
|
||||||
if (cacheViews == true && cache.containsKey(name)) {
|
if (cacheViews && cache.containsKey(name)) {
|
||||||
processed = cache[name];
|
processed = cache[name];
|
||||||
} else {
|
} else {
|
||||||
var file = viewsDirectory.childFile(name + fileExtension!);
|
var file = viewsDirectory.childFile(name + fileExtension);
|
||||||
var contents = await file.readAsString();
|
var contents = await file.readAsString();
|
||||||
var doc = parseDocument(contents,
|
var doc = parseDocument(contents,
|
||||||
sourceUrl: file.uri, asDSX: asDSX, onError: errors.add)!;
|
sourceUrl: file.uri, asDSX: asDSX, onError: errors.add);
|
||||||
processed = doc;
|
if (doc == null) {
|
||||||
|
throw ArgumentError(name + fileExtension + " does not exists");
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
processed = await (resolve(doc, viewsDirectory,
|
processed = await (resolve(doc, viewsDirectory,
|
||||||
patch: patch, onError: errors.add));
|
patch: patch, onError: errors.add));
|
||||||
} catch (_) {
|
} catch (e) {
|
||||||
// Ignore these errors, so that we can show syntax errors.
|
// Ignore these errors, so that we can show syntax errors.
|
||||||
}
|
}
|
||||||
|
if (processed == null) {
|
||||||
|
throw ArgumentError(name + fileExtension + " does not exists");
|
||||||
|
}
|
||||||
|
|
||||||
if (cacheViews == true) {
|
if (cacheViews) {
|
||||||
cache[name] = processed;
|
cache[name] = processed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var buf = createBuffer!();
|
var buf = bufferFunc();
|
||||||
var scope = SymbolTable(
|
var scope = SymbolTable(
|
||||||
values: locals?.keys.fold<Map<String, dynamic>>(<String, dynamic>{},
|
values: locals?.keys.fold<Map<String, dynamic>>(<String, dynamic>{},
|
||||||
(out, k) => out..[k.toString()] = locals[k]) ??
|
(out, k) => out..[k.toString()] = locals[k]) ??
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name: angel3_jael
|
name: angel3_jael
|
||||||
version: 4.2.1
|
version: 4.2.2
|
||||||
description: Angel support for the Jael templating engine, similar to Blade or Liquid.
|
description: Angel support for the Jael templating engine, similar to Blade or Liquid.
|
||||||
homepage: https://angel3-framework.web.app/
|
homepage: https://angel3-framework.web.app/
|
||||||
repository: https://github.com/dukefirehawk/angel/tree/master/packages/jael/angel_jael
|
repository: https://github.com/dukefirehawk/angel/tree/master/packages/jael/angel_jael
|
||||||
|
@ -17,9 +17,4 @@ dev_dependencies:
|
||||||
angel3_test: ^4.0.0
|
angel3_test: ^4.0.0
|
||||||
html: ^0.15.0
|
html: ^0.15.0
|
||||||
test: ^1.17.3
|
test: ^1.17.3
|
||||||
lints: ^1.0.0
|
lints: ^1.0.0
|
||||||
#dependency_overrides:
|
|
||||||
# jael3:
|
|
||||||
# path: ../jael
|
|
||||||
# jael3_preprocessor:
|
|
||||||
# path: ../jael_preprocessor
|
|
|
@ -72,4 +72,21 @@ void main() {
|
||||||
.trim())
|
.trim())
|
||||||
.outerHtml);
|
.outerHtml);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('can render multiples', () async {
|
||||||
|
var response = await client.get(Uri.parse('/github/thosakwe'));
|
||||||
|
response = await client.get(Uri.parse('/github/thosakwe'));
|
||||||
|
response = await client.get(Uri.parse('/github/thosakwe'));
|
||||||
|
response = await client.get(Uri.parse('/github/thosakwe'));
|
||||||
|
response = await client.get(Uri.parse('/github/thosakwe'));
|
||||||
|
|
||||||
|
print('Body:\n${response.body}');
|
||||||
|
expect(
|
||||||
|
html.parse(response.body).outerHtml,
|
||||||
|
html
|
||||||
|
.parse(
|
||||||
|
'''<html><head><title>Hello</title></head><body>thosakwe</body></html>'''
|
||||||
|
.trim())
|
||||||
|
.outerHtml);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,29 @@
|
||||||
MIT License (MIT)
|
BSD 3-Clause License
|
||||||
|
|
||||||
Copyright (c) 2021 dukefirehawk.com
|
Copyright (c) 2021, dukefirehawk.com
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Redistribution and use in source and binary forms, with or without
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
modification, are permitted provided that the following conditions are met:
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
1. Redistributions of source code must retain the above copyright notice, this
|
||||||
copies or substantial portions of the Software.
|
list of conditions and the following disclaimer.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
this list of conditions and the following disclaimer in the documentation
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
and/or other materials provided with the distribution.
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
3. Neither the name of the copyright holder nor the names of its
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
contributors may be used to endorse or promote products derived from
|
||||||
SOFTWARE.
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
|
@ -1,4 +1 @@
|
||||||
include: package:pedantic/analysis_options.yaml
|
include: package:lints/recommended.yaml
|
||||||
analyzer:
|
|
||||||
strong-mode:
|
|
||||||
implicit-casts: false
|
|
|
@ -4,8 +4,8 @@ import 'package:args/args.dart';
|
||||||
import 'package:io/ansi.dart';
|
import 'package:io/ansi.dart';
|
||||||
import 'package:io/io.dart';
|
import 'package:io/io.dart';
|
||||||
//import 'package:dart_language_server/dart_language_server.dart';
|
//import 'package:dart_language_server/dart_language_server.dart';
|
||||||
import 'package:jael_language_server/jael_language_server.dart';
|
import 'package:jael3_language_server/jael3_language_server.dart';
|
||||||
import 'package:jael_language_server/src/protocol/language_server/server.dart';
|
import 'package:jael3_language_server/src/protocol/language_server/server.dart';
|
||||||
|
|
||||||
void main(List<String> args) async {
|
void main(List<String> args) async {
|
||||||
var argParser = ArgParser()
|
var argParser = ArgParser()
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:jael/jael.dart';
|
import 'package:jael3/jael3.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:symbol_table/symbol_table.dart';
|
import 'package:belatuk_symbol_table/belatuk_symbol_table.dart';
|
||||||
import 'object.dart';
|
import 'object.dart';
|
||||||
|
|
||||||
class Analyzer extends Parser {
|
class Analyzer extends Parser {
|
||||||
|
|
|
@ -4,13 +4,13 @@ import 'dart:async';
|
||||||
import 'package:file/file.dart';
|
import 'package:file/file.dart';
|
||||||
import 'package:file/local.dart';
|
import 'package:file/local.dart';
|
||||||
import 'package:file/memory.dart';
|
import 'package:file/memory.dart';
|
||||||
import 'package:jael/jael.dart';
|
import 'package:jael3/jael3.dart';
|
||||||
import 'package:json_rpc_2/json_rpc_2.dart' as json_rpc_2;
|
import 'package:json_rpc_2/json_rpc_2.dart' as json_rpc_2;
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:path/path.dart' as p;
|
import 'package:path/path.dart' as p;
|
||||||
import 'package:source_span/source_span.dart';
|
import 'package:source_span/source_span.dart';
|
||||||
import 'package:string_scanner/string_scanner.dart';
|
import 'package:string_scanner/string_scanner.dart';
|
||||||
import 'package:symbol_table/symbol_table.dart';
|
import 'package:belatuk_symbol_table/belatuk_symbol_table.dart';
|
||||||
import 'analyzer.dart';
|
import 'analyzer.dart';
|
||||||
import 'object.dart';
|
import 'object.dart';
|
||||||
import 'protocol/language_server/interface.dart';
|
import 'protocol/language_server/interface.dart';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name: jael_language_server
|
name: jael3_language_server
|
||||||
version: 0.0.0
|
version: 1.0.0
|
||||||
description: Language Server Protocol implementation for the Jael templating engine.
|
description: Language Server Protocol implementation for the Jael templating engine.
|
||||||
homepage: https://github.com/angel-dart/vscode
|
homepage: https://github.com/angel-dart/vscode
|
||||||
publish_to: none
|
publish_to: none
|
||||||
|
@ -10,27 +10,15 @@ dependencies:
|
||||||
# dart_language_server: ^0.1.16
|
# dart_language_server: ^0.1.16
|
||||||
file: ^6.1.2
|
file: ^6.1.2
|
||||||
io: ^1.0.0
|
io: ^1.0.0
|
||||||
jael:
|
jael3: ^4.2.0
|
||||||
git:
|
jael3_preprocessor: ^4.2.0
|
||||||
url: https://github.com/dukefirehawk/angel.git
|
|
||||||
ref: sdk-2.12.x_nnbd
|
|
||||||
path: packages/jael/jael
|
|
||||||
jael_preprocessor:
|
|
||||||
git:
|
|
||||||
url: https://github.com/dukefirehawk/angel.git
|
|
||||||
ref: sdk-2.12.x_nnbd
|
|
||||||
path: packages/jael/jael_preprocessor
|
|
||||||
json_rpc_2: ^3.0.1
|
json_rpc_2: ^3.0.1
|
||||||
logging: ^1.0.1
|
logging: ^1.0.1
|
||||||
path: ^1.8.0
|
path: ^1.8.0
|
||||||
source_span: ^1.8.1
|
source_span: ^1.8.1
|
||||||
string_scanner: ^1.1.0
|
string_scanner: ^1.1.0
|
||||||
symbol_table:
|
belatuk_symbol_table: ^3.0.0
|
||||||
git:
|
lints: ^1.0.0
|
||||||
url: https://github.com/dukefirehawk/angel.git
|
|
||||||
ref: sdk-2.12.x_nnbd
|
|
||||||
path: packages/symbol_table
|
|
||||||
pedantic: ^1.11.0
|
|
||||||
executables:
|
executables:
|
||||||
jael_language_server: jael_language_server
|
jael3_language_server: jael3_language_server
|
||||||
|
|
|
@ -1,21 +1,29 @@
|
||||||
MIT License
|
BSD 3-Clause License
|
||||||
|
|
||||||
Copyright (c) 2017 The Angel Framework
|
Copyright (c) 2021, dukefirehawk.com
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Redistribution and use in source and binary forms, with or without
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
modification, are permitted provided that the following conditions are met:
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
1. Redistributions of source code must retain the above copyright notice, this
|
||||||
copies or substantial portions of the Software.
|
list of conditions and the following disclaimer.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
this list of conditions and the following disclaimer in the documentation
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
and/or other materials provided with the distribution.
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
3. Neither the name of the copyright holder nor the names of its
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
contributors may be used to endorse or promote products derived from
|
||||||
SOFTWARE.
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# jael_web
|
# JAEL3 Web
|
||||||
|
|
||||||
[![Pub](https://img.shields.io/pub/v/jael_web.svg)](https://pub.dartlang.org/packages/jael_web)
|
[![Pub](https://img.shields.io/pub/v/jael_web.svg)](https://pub.dartlang.org/packages/jael_web)
|
||||||
[![build status](https://travis-ci.org/angel-dart/jael_web.svg)](https://travis-ci.org/angel-dart/jael)
|
[![build status](https://travis-ci.org/angel-dart/jael_web.svg)](https://travis-ci.org/angel-dart/jael)
|
||||||
|
|
||||||
Experimental virtual DOM/SPA engine built on Jael. Supports SSR.
|
Experimental virtual DOM/SPA engine built on Jael. Supports SSR.
|
||||||
**Not ready for production use.**
|
**Not ready for production use.**
|
||||||
|
|
|
@ -1,3 +1 @@
|
||||||
analyzer:
|
include: package:lints/recommended.yaml
|
||||||
strong-mode:
|
|
||||||
implicit-casts: false
|
|
|
@ -1,10 +1,10 @@
|
||||||
builders:
|
builders:
|
||||||
jael_web:
|
jael_web:
|
||||||
import: "package:jael_web/builder.dart"
|
import: "package:jael3_web/builder.dart"
|
||||||
builder_factories:
|
builder_factories:
|
||||||
- jaelComponentBuilder
|
- jaelComponentBuilder
|
||||||
build_extensions:
|
build_extensions:
|
||||||
.dart:
|
.dart:
|
||||||
- .jael_web_cmp.g.part
|
- .jael3_web_cmp.g.part
|
||||||
auto_apply: root_package
|
auto_apply: root_package
|
||||||
applies_builders: ["source_gen|combining_builder", "source_gen|part_cleanup"]
|
applies_builders: ["source_gen|combining_builder", "source_gen|part_cleanup"]
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:jael_web/jael_web.dart';
|
import 'package:jael3_web/jael3_web.dart';
|
||||||
import 'package:jael_web/elements.dart';
|
import 'package:jael3_web/elements.dart';
|
||||||
part 'main.g.dart';
|
part 'main.g.dart';
|
||||||
|
|
||||||
@Jael(template: '''
|
@Jael(template: '''
|
||||||
|
@ -9,6 +9,7 @@ part 'main.g.dart';
|
||||||
</div>
|
</div>
|
||||||
''')
|
''')
|
||||||
class Hello extends Component with _HelloJaelTemplate {
|
class Hello extends Component with _HelloJaelTemplate {
|
||||||
|
@override
|
||||||
DateTime get now => DateTime.now();
|
DateTime get now => DateTime.now();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'package:jael_web/jael_web.dart';
|
import 'package:jael3_web/jael3_web.dart';
|
||||||
part 'stateful.g.dart';
|
part 'stateful.g.dart';
|
||||||
|
|
||||||
void main() {}
|
void main() {}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import 'package:jael_web/jael_web.dart';
|
import 'package:jael3_web/jael3_web.dart';
|
||||||
part 'using_components.g.dart';
|
part 'using_components.g.dart';
|
||||||
|
|
||||||
@Jael(template: '''
|
@Jael(template: '''
|
||||||
|
@ -19,6 +19,7 @@ class MyApp extends Component with _MyAppJaelTemplate {}
|
||||||
</div>
|
</div>
|
||||||
''')
|
''')
|
||||||
class LabeledInput extends Component with _LabeledInputJaelTemplate {
|
class LabeledInput extends Component with _LabeledInputJaelTemplate {
|
||||||
|
@override
|
||||||
final String? name;
|
final String? name;
|
||||||
|
|
||||||
LabeledInput({this.name});
|
LabeledInput({this.name});
|
||||||
|
|
|
@ -2,9 +2,9 @@ import 'dart:async';
|
||||||
import 'package:analyzer/dart/element/element.dart';
|
import 'package:analyzer/dart/element/element.dart';
|
||||||
import 'package:build/build.dart';
|
import 'package:build/build.dart';
|
||||||
import 'package:code_builder/code_builder.dart';
|
import 'package:code_builder/code_builder.dart';
|
||||||
import 'package:jael/jael.dart' as jael;
|
import 'package:jael3/jael3.dart' as jael;
|
||||||
import 'package:jael_preprocessor/jael_preprocessor.dart' as jael;
|
import 'package:jael3_preprocessor/jael3_preprocessor.dart' as jael;
|
||||||
import 'package:jael_web/jael_web.dart';
|
import 'package:jael3_web/jael3_web.dart';
|
||||||
import 'package:path/path.dart' as p;
|
import 'package:path/path.dart' as p;
|
||||||
import 'package:source_gen/source_gen.dart';
|
import 'package:source_gen/source_gen.dart';
|
||||||
import 'util.dart';
|
import 'util.dart';
|
||||||
|
@ -12,7 +12,7 @@ import 'util.dart';
|
||||||
var _upper = RegExp(r'^[A-Z]');
|
var _upper = RegExp(r'^[A-Z]');
|
||||||
|
|
||||||
Builder jaelComponentBuilder(_) {
|
Builder jaelComponentBuilder(_) {
|
||||||
return SharedPartBuilder([JaelComponentGenerator()], 'jael_web_cmp');
|
return SharedPartBuilder([JaelComponentGenerator()], 'jael3_web_cmp');
|
||||||
}
|
}
|
||||||
|
|
||||||
class JaelComponentGenerator extends GeneratorForAnnotation<Jael> {
|
class JaelComponentGenerator extends GeneratorForAnnotation<Jael> {
|
||||||
|
@ -33,9 +33,9 @@ class JaelComponentGenerator extends GeneratorForAnnotation<Jael> {
|
||||||
throw 'Both `template` and `templateUrl` cannot be null.';
|
throw 'Both `template` and `templateUrl` cannot be null.';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ann.template != null)
|
if (ann.template != null) {
|
||||||
templateString = ann.template;
|
templateString = ann.template;
|
||||||
else {
|
} else {
|
||||||
var dir = p.dirname(inputId.path);
|
var dir = p.dirname(inputId.path);
|
||||||
var assetId = AssetId(inputId.package, p.join(dir, ann.templateUrl));
|
var assetId = AssetId(inputId.package, p.join(dir, ann.templateUrl));
|
||||||
if (!await buildStep.canRead(assetId)) {
|
if (!await buildStep.canRead(assetId)) {
|
||||||
|
@ -47,7 +47,7 @@ class JaelComponentGenerator extends GeneratorForAnnotation<Jael> {
|
||||||
|
|
||||||
var fs = BuildFileSystem(buildStep, inputId.package);
|
var fs = BuildFileSystem(buildStep, inputId.package);
|
||||||
var errors = <jael.JaelError>[];
|
var errors = <jael.JaelError>[];
|
||||||
var doc = await jael.parseDocument(templateString!,
|
var doc = jael.parseDocument(templateString!,
|
||||||
sourceUrl: inputId.uri, asDSX: ann.asDsx!, onError: errors.add);
|
sourceUrl: inputId.uri, asDSX: ann.asDsx!, onError: errors.add);
|
||||||
if (errors.isEmpty) {
|
if (errors.isEmpty) {
|
||||||
doc = await jael.resolve(doc!, fs.file(inputId.uri).parent,
|
doc = await jael.resolve(doc!, fs.file(inputId.uri).parent,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name: jael_web
|
name: jael3_web
|
||||||
version: 0.0.0
|
version: 1.0.0
|
||||||
description: Experimental virtual DOM/SPA engine built on Jael. Supports SSR.
|
description: Experimental virtual DOM/SPA engine built on Jael. Supports SSR.
|
||||||
publish_to: none
|
publish_to: none
|
||||||
environment:
|
environment:
|
||||||
|
@ -8,18 +8,10 @@ dependencies:
|
||||||
build: ^2.0.2
|
build: ^2.0.2
|
||||||
build_config: ^1.0.0
|
build_config: ^1.0.0
|
||||||
code_builder: ^4.0.0
|
code_builder: ^4.0.0
|
||||||
jael:
|
jael3: ^4.2.0
|
||||||
git:
|
jael3_preprocessor: ^4.2.0
|
||||||
url: https://github.com/dukefirehawk/angel.git
|
|
||||||
ref: sdk-2.12.x_nnbd
|
|
||||||
path: packages/jael/jael
|
|
||||||
jael_preprocessor:
|
|
||||||
git:
|
|
||||||
url: https://github.com/dukefirehawk/angel.git
|
|
||||||
ref: sdk-2.12.x_nnbd
|
|
||||||
path: packages/jael/jael_preprocessor
|
|
||||||
source_gen: ^1.0.2
|
source_gen: ^1.0.2
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
build_runner: ^2.0.4
|
build_runner: ^2.0.4
|
||||||
build_web_compilers: ^3.0.0
|
build_web_compilers: ^3.0.0
|
||||||
pedantic: ^1.11.1
|
lints: ^1.0.0
|
Loading…
Reference in a new issue