"use strict";
|
Object.defineProperty(exports, "__esModule", { value: true });
|
var tslib_1 = require("tslib");
|
var types_1 = tslib_1.__importDefault(require("../types"));
|
var shared_1 = tslib_1.__importStar(require("../shared"));
|
var es2022_1 = tslib_1.__importDefault(require("./es2022"));
|
function default_1(fork) {
|
fork.use(es2022_1.default);
|
var types = fork.use(types_1.default);
|
var Type = types.Type;
|
var def = types.Type.def;
|
var or = Type.or;
|
var shared = fork.use(shared_1.default);
|
var defaults = shared.defaults;
|
def("AwaitExpression")
|
.build("argument", "all")
|
.field("argument", or(def("Expression"), null))
|
.field("all", Boolean, defaults["false"]);
|
// Decorators
|
def("Decorator")
|
.bases("Node")
|
.build("expression")
|
.field("expression", def("Expression"));
|
def("Property")
|
.field("decorators", or([def("Decorator")], null), defaults["null"]);
|
def("MethodDefinition")
|
.field("decorators", or([def("Decorator")], null), defaults["null"]);
|
// Private names
|
def("PrivateName")
|
.bases("Expression", "Pattern")
|
.build("id")
|
.field("id", def("Identifier"));
|
def("ClassPrivateProperty")
|
.bases("ClassProperty")
|
.build("key", "value")
|
.field("key", def("PrivateName"))
|
.field("value", or(def("Expression"), null), defaults["null"]);
|
// https://github.com/tc39/proposal-import-assertions
|
def("ImportAttribute")
|
.bases("Node")
|
.build("key", "value")
|
.field("key", or(def("Identifier"), def("Literal")))
|
.field("value", def("Expression"));
|
["ImportDeclaration",
|
"ExportAllDeclaration",
|
"ExportNamedDeclaration",
|
].forEach(function (decl) {
|
def(decl).field("assertions", [def("ImportAttribute")], defaults.emptyArray);
|
});
|
// https://github.com/tc39/proposal-record-tuple
|
// https://github.com/babel/babel/pull/10865
|
def("RecordExpression")
|
.bases("Expression")
|
.build("properties")
|
.field("properties", [or(def("ObjectProperty"), def("ObjectMethod"), def("SpreadElement"))]);
|
def("TupleExpression")
|
.bases("Expression")
|
.build("elements")
|
.field("elements", [or(def("Expression"), def("SpreadElement"), null)]);
|
// https://github.com/tc39/proposal-js-module-blocks
|
// https://github.com/babel/babel/pull/12469
|
def("ModuleExpression")
|
.bases("Node")
|
.build("body")
|
.field("body", def("Program"));
|
}
|
exports.default = default_1;
|
;
|
(0, shared_1.maybeSetModuleExports)(function () { return module; });
|
//# sourceMappingURL=es-proposals.js.map
|