@jsenv/core 27.0.0-alpha.3 → 27.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/build/build.js +47 -16
- package/src/build/build_urls_generator.js +16 -7
- package/src/omega/core_plugins/babel/{babel_helper → helpers}/babel_plugin_babel_helpers_as_jsenv_imports.js +1 -2
- package/src/omega/core_plugins/babel/helpers/babel_plugin_structure.js +68 -76
- package/src/omega/core_plugins/babel/jsenv_plugin_babel.js +1 -1
- package/src/omega/url_graph/url_graph_load.js +1 -0
- package/src/omega/core_plugins/babel/babel_helper/babel_helper_directory.js +0 -29
- package/src/omega/core_plugins/babel/babel_helper/client/.eslintrc.cjs +0 -24
- package/src/omega/core_plugins/babel/babel_helper/client/AsyncGenerator/AsyncGenerator.js +0 -81
- package/src/omega/core_plugins/babel/babel_helper/client/AwaitValue/AwaitValue.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/applyDecoratorDescriptor/applyDecoratorDescriptor.js +0 -33
- package/src/omega/core_plugins/babel/babel_helper/client/arrayLikeToArray/arrayLikeToArray.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/arrayWithHoles/arrayWithHoles.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/arrayWithoutHoles/arrayWithoutHoles.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/assertThisInitialized/assertThisInitialized.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/asyncGeneratorDelegate/asyncGeneratorDelegate.js +0 -40
- package/src/omega/core_plugins/babel/babel_helper/client/asyncIterator/asyncIterator.js +0 -65
- package/src/omega/core_plugins/babel/babel_helper/client/asyncToGenerator/asyncToGenerator.js +0 -34
- package/src/omega/core_plugins/babel/babel_helper/client/awaitAsyncGenerator/awaitAsyncGenerator.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +0 -20
- package/src/omega/core_plugins/babel/babel_helper/client/classApplyDescriptorGet/classApplyDescriptorGet.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/classApplyDescriptorSet/classApplyDescriptorSet.js +0 -13
- package/src/omega/core_plugins/babel/babel_helper/client/classCallCheck/classCallCheck.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/classExtractFieldDescriptor/classExtractFieldDescriptor.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/classNameTDZError/classNameTDZError.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldGet/classPrivateFieldGet.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateFieldSet/classPrivateFieldSet.js +0 -8
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateMethodGet/classPrivateMethodGet.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/classPrivateMethodSet/classPrivateMethodSet.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +0 -9
- package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +0 -15
- package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/construct/construct.js +0 -16
- package/src/omega/core_plugins/babel/babel_helper/client/createClass/createClass.js +0 -15
- package/src/omega/core_plugins/babel/babel_helper/client/createForOfIteratorHelper/createForOfIteratorHelper.js +0 -60
- package/src/omega/core_plugins/babel/babel_helper/client/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +0 -23
- package/src/omega/core_plugins/babel/babel_helper/client/createRawReactElement/createRawReactElement.js +0 -50
- package/src/omega/core_plugins/babel/babel_helper/client/createSuper/createSuper.js +0 -22
- package/src/omega/core_plugins/babel/babel_helper/client/decorate/decorate.js +0 -403
- package/src/omega/core_plugins/babel/babel_helper/client/defaults/defaults.js +0 -11
- package/src/omega/core_plugins/babel/babel_helper/client/defineEnumerableProperties/defineEnumerableProperties.js +0 -23
- package/src/omega/core_plugins/babel/babel_helper/client/defineProperty/defineProperty.js +0 -18
- package/src/omega/core_plugins/babel/babel_helper/client/extends/extends.js +0 -14
- package/src/omega/core_plugins/babel/babel_helper/client/get/get.js +0 -19
- package/src/omega/core_plugins/babel/babel_helper/client/getPrototypeOf/getPrototypeOf.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/inherits/inherits.js +0 -19
- package/src/omega/core_plugins/babel/babel_helper/client/inheritsLoose/inheritsLoose.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/initializerDefineProperty/initializerDefineProperty.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/initializerWarningHelper/initializerWarningHelper.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/instanceof/instanceof.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/interopRequireDefault/interopRequireDefault.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/interopRequireWildcard/interopRequireWildcard.js +0 -37
- package/src/omega/core_plugins/babel/babel_helper/client/isNativeFunction/isNativeFunction.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/isNativeReflectConstruct/isNativeReflectConstruct.js +0 -21
- package/src/omega/core_plugins/babel/babel_helper/client/iterableToArray/iterableToArray.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/iterableToArrayLimit/iterableToArrayLimit.js +0 -36
- package/src/omega/core_plugins/babel/babel_helper/client/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/jsx/jsx.js +0 -50
- package/src/omega/core_plugins/babel/babel_helper/client/maybeArrayLike/maybeArrayLike.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/newArrowCheck/newArrowCheck.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/nonIterableRest/nonIterableRest.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/nonIterableSpread/nonIterableSpread.js +0 -5
- package/src/omega/core_plugins/babel/babel_helper/client/objectDestructuringEmpty/objectDestructuringEmpty.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/objectSpread/objectSpread.js +0 -23
- package/src/omega/core_plugins/babel/babel_helper/client/objectSpread2/objectSpread2.js +0 -41
- package/src/omega/core_plugins/babel/babel_helper/client/objectWithoutProperties/objectWithoutProperties.js +0 -19
- package/src/omega/core_plugins/babel/babel_helper/client/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +0 -13
- package/src/omega/core_plugins/babel/babel_helper/client/possibleConstructorReturn/possibleConstructorReturn.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/readOnlyError/readOnlyError.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/readme.md +0 -8
- package/src/omega/core_plugins/babel/babel_helper/client/set/set.js +0 -44
- package/src/omega/core_plugins/babel/babel_helper/client/setPrototypeOf/setPrototypeOf.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/skipFirstGeneratorNext/skipFirstGeneratorNext.js +0 -8
- package/src/omega/core_plugins/babel/babel_helper/client/slicedToArray/slicedToArray.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/slicedToArrayLoose/slicedToArrayLoose.js +0 -13
- package/src/omega/core_plugins/babel/babel_helper/client/superPropBase/superPropBase.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/taggedTemplateLiteral/taggedTemplateLiteral.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +0 -7
- package/src/omega/core_plugins/babel/babel_helper/client/tdz/tdz.js +0 -4
- package/src/omega/core_plugins/babel/babel_helper/client/temporalRef/temporalRef.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/temporalUndefined/temporalUndefined.js +0 -3
- package/src/omega/core_plugins/babel/babel_helper/client/toArray/toArray.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/toConsumableArray/toConsumableArray.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/toPrimitive/toPrimitive.js +0 -10
- package/src/omega/core_plugins/babel/babel_helper/client/toPropertyKey/toPropertyKey.js +0 -6
- package/src/omega/core_plugins/babel/babel_helper/client/typeof/typeof.js +0 -14
- package/src/omega/core_plugins/babel/babel_helper/client/unsupportedIterableToArray/unsupportedIterableToArray.js +0 -12
- package/src/omega/core_plugins/babel/babel_helper/client/wrapAsyncGenerator/wrapAsyncGenerator.js +0 -8
- package/src/omega/core_plugins/babel/babel_helper/client/wrapNativeSuper/wrapNativeSuper.js +0 -30
- package/src/omega/core_plugins/babel/babel_helper/client/wrapRegExp/wrapRegExp.js +0 -63
- package/src/omega/core_plugins/babel/babel_helper/client/writeOnlyError/writeOnlyError.js +0 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsenv/core",
|
|
3
|
-
"version": "27.0.0-alpha.
|
|
3
|
+
"version": "27.0.0-alpha.6",
|
|
4
4
|
"description": "Tool to develop, test and build js projects",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@c88/v8-coverage": "0.1.1",
|
|
54
54
|
"@financial-times/polyfill-useragent-normaliser": "2.0.1",
|
|
55
55
|
"@jsenv/abort": "4.1.2",
|
|
56
|
-
"@jsenv/babel-plugins": "1.0.
|
|
56
|
+
"@jsenv/babel-plugins": "1.0.2",
|
|
57
57
|
"@jsenv/filesystem": "3.1.0",
|
|
58
58
|
"@jsenv/importmap": "1.2.0",
|
|
59
59
|
"@jsenv/integrity": "0.0.1",
|
package/src/build/build.js
CHANGED
|
@@ -70,6 +70,8 @@ export const build = async ({
|
|
|
70
70
|
writeOnFileSystem = true,
|
|
71
71
|
buildDirectoryClean = true,
|
|
72
72
|
baseUrl = "/",
|
|
73
|
+
assetManifest = true,
|
|
74
|
+
assetManifestFileRelativeUrl = "asset-manifest.json",
|
|
73
75
|
}) => {
|
|
74
76
|
const logger = createLogger({ logLevel })
|
|
75
77
|
rootDirectoryUrl = assertAndNormalizeDirectoryUrl(rootDirectoryUrl)
|
|
@@ -84,7 +86,7 @@ export const build = async ({
|
|
|
84
86
|
const entryPointKeys = Object.keys(entryPoints)
|
|
85
87
|
if (entryPointKeys.length === 1) {
|
|
86
88
|
logger.info(`
|
|
87
|
-
build ${entryPointKeys[0]}`)
|
|
89
|
+
build "${entryPointKeys[0]}"`)
|
|
88
90
|
} else {
|
|
89
91
|
logger.info(`
|
|
90
92
|
build ${entryPointKeys.length} entry points`)
|
|
@@ -119,22 +121,23 @@ build ${entryPointKeys.length} entry points`)
|
|
|
119
121
|
scenario: "build",
|
|
120
122
|
sourcemaps,
|
|
121
123
|
})
|
|
122
|
-
const
|
|
123
|
-
Object.keys(entryPoints).forEach((key) => {
|
|
124
|
-
cookEntryFile({
|
|
125
|
-
trace: `"${key}" in entryPoints parameter`,
|
|
126
|
-
type: "entry_point",
|
|
127
|
-
specifier: key,
|
|
128
|
-
})
|
|
129
|
-
})
|
|
130
|
-
}
|
|
124
|
+
const entryUrls = []
|
|
131
125
|
try {
|
|
132
126
|
await loadUrlGraph({
|
|
133
127
|
urlGraph: rawGraph,
|
|
134
128
|
kitchen: rawGraphKitchen,
|
|
135
129
|
outDirectoryUrl: new URL(`.jsenv/build/`, rootDirectoryUrl),
|
|
136
130
|
runtimeSupport,
|
|
137
|
-
startLoading:
|
|
131
|
+
startLoading: (cookEntryFile) => {
|
|
132
|
+
Object.keys(entryPoints).forEach((key) => {
|
|
133
|
+
const [, entryUrlInfo] = cookEntryFile({
|
|
134
|
+
trace: `"${key}" in entryPoints parameter`,
|
|
135
|
+
type: "entry_point",
|
|
136
|
+
specifier: key,
|
|
137
|
+
})
|
|
138
|
+
entryUrls.push(entryUrlInfo.url)
|
|
139
|
+
})
|
|
140
|
+
},
|
|
138
141
|
})
|
|
139
142
|
} catch (e) {
|
|
140
143
|
prebuildTask.fail()
|
|
@@ -447,13 +450,23 @@ ${Object.keys(rawGraph.urlInfos).join("\n")}`,
|
|
|
447
450
|
sourcemaps,
|
|
448
451
|
})
|
|
449
452
|
const buildTask = createTaskLog(logger, "build")
|
|
453
|
+
const postBuildEntryUrls = []
|
|
450
454
|
try {
|
|
451
455
|
await loadUrlGraph({
|
|
452
456
|
urlGraph: finalGraph,
|
|
453
457
|
kitchen: finalGraphKitchen,
|
|
454
458
|
outDirectoryUrl: new URL(".jsenv/postbuild/", rootDirectoryUrl),
|
|
455
459
|
runtimeSupport,
|
|
456
|
-
startLoading:
|
|
460
|
+
startLoading: (cookEntryFile) => {
|
|
461
|
+
entryUrls.forEach((entryUrl) => {
|
|
462
|
+
const [, postBuildEntryUrlInfo] = cookEntryFile({
|
|
463
|
+
trace: `entryPoint`,
|
|
464
|
+
type: "entry_point",
|
|
465
|
+
specifier: entryUrl,
|
|
466
|
+
})
|
|
467
|
+
postBuildEntryUrls.push(postBuildEntryUrlInfo.url)
|
|
468
|
+
})
|
|
469
|
+
},
|
|
457
470
|
})
|
|
458
471
|
} catch (e) {
|
|
459
472
|
buildTask.fail()
|
|
@@ -540,12 +553,12 @@ ${Object.keys(finalGraph.urlInfos).join("\n")}`,
|
|
|
540
553
|
{
|
|
541
554
|
name: "jsenv:versioning",
|
|
542
555
|
appliesDuring: { build: true },
|
|
543
|
-
resolve: (
|
|
544
|
-
const buildUrl = buildUrls[specifier]
|
|
556
|
+
resolve: (reference) => {
|
|
557
|
+
const buildUrl = buildUrls[reference.specifier]
|
|
545
558
|
if (buildUrl) {
|
|
546
559
|
return buildUrl
|
|
547
560
|
}
|
|
548
|
-
const url = new URL(specifier, parentUrl).href
|
|
561
|
+
const url = new URL(reference.specifier, reference.parentUrl).href
|
|
549
562
|
return url
|
|
550
563
|
},
|
|
551
564
|
formatReferencedUrl: (reference) => {
|
|
@@ -616,7 +629,15 @@ ${Object.keys(finalGraph.urlInfos).join("\n")}`,
|
|
|
616
629
|
urlGraph: finalGraph,
|
|
617
630
|
kitchen: versioningKitchen,
|
|
618
631
|
runtimeSupport,
|
|
619
|
-
startLoading:
|
|
632
|
+
startLoading: (cookEntryFile) => {
|
|
633
|
+
postBuildEntryUrls.forEach((postBuildEntryUrl) => {
|
|
634
|
+
cookEntryFile({
|
|
635
|
+
trace: `entryPoint`,
|
|
636
|
+
type: "entry_point",
|
|
637
|
+
specifier: postBuildEntryUrl,
|
|
638
|
+
})
|
|
639
|
+
})
|
|
640
|
+
},
|
|
620
641
|
})
|
|
621
642
|
if (usedVersionMappings.length) {
|
|
622
643
|
const versionMappingsNeeded = {}
|
|
@@ -689,6 +710,16 @@ ${Object.keys(finalGraph.urlInfos).join("\n")}`,
|
|
|
689
710
|
)
|
|
690
711
|
}),
|
|
691
712
|
)
|
|
713
|
+
if (
|
|
714
|
+
versioning !== "none" &&
|
|
715
|
+
assetManifest &&
|
|
716
|
+
Object.keys(buildManifest).length
|
|
717
|
+
) {
|
|
718
|
+
await writeFile(
|
|
719
|
+
new URL(assetManifestFileRelativeUrl, buildDirectoryUrl),
|
|
720
|
+
JSON.stringify(buildManifest, null, " "),
|
|
721
|
+
)
|
|
722
|
+
}
|
|
692
723
|
}
|
|
693
724
|
logger.info(createUrlGraphSummary(finalGraph, { title: "build files" }))
|
|
694
725
|
return {
|
|
@@ -6,6 +6,12 @@ export const createBuilUrlsGenerator = ({ buildDirectoryUrl }) => {
|
|
|
6
6
|
const cache = {}
|
|
7
7
|
const generate = memoizeByUrl((url, urlInfo, parentUrlInfo) => {
|
|
8
8
|
const directoryPath = determineDirectoryPath(urlInfo, parentUrlInfo)
|
|
9
|
+
let names = cache[directoryPath]
|
|
10
|
+
if (!names) {
|
|
11
|
+
names = []
|
|
12
|
+
cache[directoryPath] = names
|
|
13
|
+
}
|
|
14
|
+
|
|
9
15
|
let name = urlToFilename(url)
|
|
10
16
|
const { searchParams } = new URL(url)
|
|
11
17
|
if (
|
|
@@ -15,12 +21,7 @@ export const createBuilUrlsGenerator = ({ buildDirectoryUrl }) => {
|
|
|
15
21
|
) {
|
|
16
22
|
name = `${name}.js`
|
|
17
23
|
}
|
|
18
|
-
|
|
19
|
-
if (!names) {
|
|
20
|
-
names = []
|
|
21
|
-
cache[directoryPath] = names
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
+
const [basename, extension] = splitFileExtension(name)
|
|
24
25
|
let nameCandidate = name
|
|
25
26
|
let integer = 1
|
|
26
27
|
// eslint-disable-next-line no-constant-condition
|
|
@@ -30,7 +31,7 @@ export const createBuilUrlsGenerator = ({ buildDirectoryUrl }) => {
|
|
|
30
31
|
break
|
|
31
32
|
}
|
|
32
33
|
integer++
|
|
33
|
-
nameCandidate = `${
|
|
34
|
+
nameCandidate = `${basename}${integer}${extension}`
|
|
34
35
|
}
|
|
35
36
|
return `${buildDirectoryUrl}${directoryPath}${nameCandidate}`
|
|
36
37
|
})
|
|
@@ -40,6 +41,14 @@ export const createBuilUrlsGenerator = ({ buildDirectoryUrl }) => {
|
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
|
|
44
|
+
const splitFileExtension = (filename) => {
|
|
45
|
+
const dotLastIndex = filename.lastIndexOf(".")
|
|
46
|
+
if (dotLastIndex === -1) {
|
|
47
|
+
return [filename, ""]
|
|
48
|
+
}
|
|
49
|
+
return [filename.slice(0, dotLastIndex), filename.slice(dotLastIndex)]
|
|
50
|
+
}
|
|
51
|
+
|
|
43
52
|
const determineDirectoryPath = (urlInfo, parentUrlInfo) => {
|
|
44
53
|
if (urlInfo.isInline) {
|
|
45
54
|
const parentDirectoryPath = determineDirectoryPath(parentUrlInfo)
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { pathToFileURL } from "node:url"
|
|
2
2
|
|
|
3
3
|
import { injectImport } from "@jsenv/utils/js_ast/babel_utils.js"
|
|
4
|
-
|
|
5
4
|
import {
|
|
6
5
|
getBabelHelperFileUrl,
|
|
7
6
|
babelHelperNameFromUrl,
|
|
8
|
-
} from "
|
|
7
|
+
} from "@jsenv/babel-plugins/main.js"
|
|
9
8
|
|
|
10
9
|
// named import approach found here:
|
|
11
10
|
// https://github.com/rollup/rollup-plugin-babel/blob/18e4232a450f320f44c651aa8c495f21c74d59ac/src/helperPlugin.js#L1
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { getBabelHelperFileUrl } from "../babel_helper/babel_helper_directory.js"
|
|
1
|
+
import { getBabelHelperFileUrl, requireBabelPlugin } from "@jsenv/babel-plugins"
|
|
4
2
|
import { babelPluginCompatMap } from "./babel_plugins_compatibility.js"
|
|
5
3
|
|
|
6
|
-
const require = createRequire(import.meta.url)
|
|
7
|
-
|
|
8
4
|
export const getBaseBabelPluginStructure = ({
|
|
9
5
|
url,
|
|
10
6
|
isSupportedOnRuntime,
|
|
@@ -22,29 +18,27 @@ export const getBaseBabelPluginStructure = ({
|
|
|
22
18
|
|
|
23
19
|
const babelPluginStructure = {}
|
|
24
20
|
if (isBabelPluginNeeded("proposal-numeric-separator")) {
|
|
25
|
-
babelPluginStructure[
|
|
26
|
-
"proposal-numeric-separator"
|
|
27
|
-
|
|
21
|
+
babelPluginStructure["proposal-numeric-separator"] = requireBabelPlugin(
|
|
22
|
+
"@babel/plugin-proposal-numeric-separator",
|
|
23
|
+
)
|
|
28
24
|
}
|
|
29
25
|
if (isBabelPluginNeeded("proposal-json-strings")) {
|
|
30
|
-
babelPluginStructure[
|
|
31
|
-
"proposal-json-strings"
|
|
32
|
-
|
|
26
|
+
babelPluginStructure["proposal-json-strings"] = requireBabelPlugin(
|
|
27
|
+
"@babel/plugin-proposal-json-strings",
|
|
28
|
+
)
|
|
33
29
|
}
|
|
34
30
|
if (isBabelPluginNeeded("proposal-object-rest-spread")) {
|
|
35
|
-
babelPluginStructure[
|
|
36
|
-
"proposal-object-rest-spread"
|
|
37
|
-
|
|
31
|
+
babelPluginStructure["proposal-object-rest-spread"] = requireBabelPlugin(
|
|
32
|
+
"@babel/plugin-proposal-object-rest-spread",
|
|
33
|
+
)
|
|
38
34
|
}
|
|
39
35
|
if (isBabelPluginNeeded("proposal-optional-catch-binding")) {
|
|
40
|
-
babelPluginStructure[
|
|
41
|
-
"proposal-optional-catch-binding"
|
|
42
|
-
] = require("@babel/plugin-proposal-optional-catch-binding")
|
|
36
|
+
babelPluginStructure["proposal-optional-catch-binding"] =
|
|
37
|
+
requireBabelPlugin("@babel/plugin-proposal-optional-catch-binding")
|
|
43
38
|
}
|
|
44
39
|
if (isBabelPluginNeeded("proposal-unicode-property-regex")) {
|
|
45
|
-
babelPluginStructure[
|
|
46
|
-
"proposal-unicode-property-regex"
|
|
47
|
-
] = require("@babel/plugin-proposal-unicode-property-regex")
|
|
40
|
+
babelPluginStructure["proposal-unicode-property-regex"] =
|
|
41
|
+
requireBabelPlugin("@babel/plugin-proposal-unicode-property-regex")
|
|
48
42
|
}
|
|
49
43
|
if (
|
|
50
44
|
isJsModule &&
|
|
@@ -52,94 +46,92 @@ export const getBaseBabelPluginStructure = ({
|
|
|
52
46
|
!isSupportedOnRuntime("top_level_await")
|
|
53
47
|
) {
|
|
54
48
|
babelPluginStructure["transform-async-to-promises"] = [
|
|
55
|
-
|
|
49
|
+
requireBabelPlugin("babel-plugin-transform-async-to-promises"),
|
|
56
50
|
{
|
|
57
51
|
topLevelAwait,
|
|
58
52
|
},
|
|
59
53
|
]
|
|
60
54
|
} else if (isBabelPluginNeeded("transform-async-to-promises")) {
|
|
61
|
-
babelPluginStructure[
|
|
62
|
-
"transform-async-to-promises"
|
|
63
|
-
|
|
55
|
+
babelPluginStructure["transform-async-to-promises"] = requireBabelPlugin(
|
|
56
|
+
"babel-plugin-transform-async-to-promises",
|
|
57
|
+
)
|
|
64
58
|
}
|
|
65
59
|
if (isBabelPluginNeeded("transform-arrow-functions")) {
|
|
66
|
-
babelPluginStructure[
|
|
67
|
-
"transform-arrow-functions"
|
|
68
|
-
|
|
60
|
+
babelPluginStructure["transform-arrow-functions"] = requireBabelPlugin(
|
|
61
|
+
"@babel/plugin-transform-arrow-functions",
|
|
62
|
+
)
|
|
69
63
|
}
|
|
70
64
|
if (isBabelPluginNeeded("transform-block-scoped-functions")) {
|
|
71
|
-
babelPluginStructure[
|
|
72
|
-
"transform-block-scoped-functions"
|
|
73
|
-
] = require("@babel/plugin-transform-block-scoped-functions")
|
|
65
|
+
babelPluginStructure["transform-block-scoped-functions"] =
|
|
66
|
+
requireBabelPlugin("@babel/plugin-transform-block-scoped-functions")
|
|
74
67
|
}
|
|
75
68
|
if (isBabelPluginNeeded("transform-block-scoping")) {
|
|
76
|
-
babelPluginStructure[
|
|
77
|
-
"transform-block-scoping"
|
|
78
|
-
|
|
69
|
+
babelPluginStructure["transform-block-scoping"] = requireBabelPlugin(
|
|
70
|
+
"@babel/plugin-transform-block-scoping",
|
|
71
|
+
)
|
|
79
72
|
}
|
|
80
73
|
if (isBabelPluginNeeded("transform-classes")) {
|
|
81
|
-
babelPluginStructure[
|
|
82
|
-
"transform-classes"
|
|
83
|
-
|
|
74
|
+
babelPluginStructure["transform-classes"] = requireBabelPlugin(
|
|
75
|
+
"@babel/plugin-transform-classes",
|
|
76
|
+
)
|
|
84
77
|
}
|
|
85
78
|
if (isBabelPluginNeeded("transform-computed-properties")) {
|
|
86
|
-
babelPluginStructure[
|
|
87
|
-
"transform-computed-properties"
|
|
88
|
-
|
|
79
|
+
babelPluginStructure["transform-computed-properties"] = requireBabelPlugin(
|
|
80
|
+
"@babel/plugin-transform-computed-properties",
|
|
81
|
+
)
|
|
89
82
|
}
|
|
90
83
|
if (isBabelPluginNeeded("transform-destructuring")) {
|
|
91
|
-
babelPluginStructure[
|
|
92
|
-
"transform-destructuring"
|
|
93
|
-
|
|
84
|
+
babelPluginStructure["transform-destructuring"] = requireBabelPlugin(
|
|
85
|
+
"@babel/plugin-transform-destructuring",
|
|
86
|
+
)
|
|
94
87
|
}
|
|
95
88
|
if (isBabelPluginNeeded("transform-dotall-regex")) {
|
|
96
|
-
babelPluginStructure[
|
|
97
|
-
"transform-dotall-regex"
|
|
98
|
-
|
|
89
|
+
babelPluginStructure["transform-dotall-regex"] = requireBabelPlugin(
|
|
90
|
+
"@babel/plugin-transform-dotall-regex",
|
|
91
|
+
)
|
|
99
92
|
}
|
|
100
93
|
if (isBabelPluginNeeded("transform-duplicate-keys")) {
|
|
101
|
-
babelPluginStructure[
|
|
102
|
-
"transform-duplicate-keys"
|
|
103
|
-
|
|
94
|
+
babelPluginStructure["transform-duplicate-keys"] = requireBabelPlugin(
|
|
95
|
+
"@babel/plugin-transform-duplicate-keys",
|
|
96
|
+
)
|
|
104
97
|
}
|
|
105
98
|
if (isBabelPluginNeeded("transform-exponentiation-operator")) {
|
|
106
|
-
babelPluginStructure[
|
|
107
|
-
"transform-exponentiation-operator"
|
|
108
|
-
] = require("@babel/plugin-transform-exponentiation-operator")
|
|
99
|
+
babelPluginStructure["transform-exponentiation-operator"] =
|
|
100
|
+
requireBabelPlugin("@babel/plugin-transform-exponentiation-operator")
|
|
109
101
|
}
|
|
110
102
|
if (isBabelPluginNeeded("transform-for-of")) {
|
|
111
|
-
babelPluginStructure[
|
|
112
|
-
"transform-for-of"
|
|
113
|
-
|
|
103
|
+
babelPluginStructure["transform-for-of"] = requireBabelPlugin(
|
|
104
|
+
"@babel/plugin-transform-for-of",
|
|
105
|
+
)
|
|
114
106
|
}
|
|
115
107
|
if (isBabelPluginNeeded("transform-function-name")) {
|
|
116
|
-
babelPluginStructure[
|
|
117
|
-
"transform-function-name"
|
|
118
|
-
|
|
108
|
+
babelPluginStructure["transform-function-name"] = requireBabelPlugin(
|
|
109
|
+
"@babel/plugin-transform-function-name",
|
|
110
|
+
)
|
|
119
111
|
}
|
|
120
112
|
if (isBabelPluginNeeded("transform-literals")) {
|
|
121
|
-
babelPluginStructure[
|
|
122
|
-
"transform-literals"
|
|
123
|
-
|
|
113
|
+
babelPluginStructure["transform-literals"] = requireBabelPlugin(
|
|
114
|
+
"@babel/plugin-transform-literals",
|
|
115
|
+
)
|
|
124
116
|
}
|
|
125
117
|
if (isBabelPluginNeeded("transform-new-target")) {
|
|
126
|
-
babelPluginStructure[
|
|
127
|
-
"transform-new-target"
|
|
128
|
-
|
|
118
|
+
babelPluginStructure["transform-new-target"] = requireBabelPlugin(
|
|
119
|
+
"@babel/plugin-transform-new-target",
|
|
120
|
+
)
|
|
129
121
|
}
|
|
130
122
|
if (isBabelPluginNeeded("transform-object-super")) {
|
|
131
|
-
babelPluginStructure[
|
|
132
|
-
"transform-object-super"
|
|
133
|
-
|
|
123
|
+
babelPluginStructure["transform-object-super"] = requireBabelPlugin(
|
|
124
|
+
"@babel/plugin-transform-object-super",
|
|
125
|
+
)
|
|
134
126
|
}
|
|
135
127
|
if (isBabelPluginNeeded("transform-parameters")) {
|
|
136
|
-
babelPluginStructure[
|
|
137
|
-
"transform-parameters"
|
|
138
|
-
|
|
128
|
+
babelPluginStructure["transform-parameters"] = requireBabelPlugin(
|
|
129
|
+
"@babel/plugin-transform-parameters",
|
|
130
|
+
)
|
|
139
131
|
}
|
|
140
132
|
if (isBabelPluginNeeded("transform-regenerator")) {
|
|
141
133
|
babelPluginStructure["transform-regenerator"] = [
|
|
142
|
-
|
|
134
|
+
requireBabelPlugin("@babel/plugin-transform-regenerator"),
|
|
143
135
|
{
|
|
144
136
|
asyncGenerators: true,
|
|
145
137
|
generators: true,
|
|
@@ -149,22 +141,22 @@ export const getBaseBabelPluginStructure = ({
|
|
|
149
141
|
}
|
|
150
142
|
if (isBabelPluginNeeded("transform-shorthand-properties")) {
|
|
151
143
|
babelPluginStructure["transform-shorthand-properties"] = [
|
|
152
|
-
|
|
144
|
+
requireBabelPlugin("@babel/plugin-transform-shorthand-properties"),
|
|
153
145
|
]
|
|
154
146
|
}
|
|
155
147
|
if (isBabelPluginNeeded("transform-spread")) {
|
|
156
148
|
babelPluginStructure["transform-spread"] = [
|
|
157
|
-
|
|
149
|
+
requireBabelPlugin("@babel/plugin-transform-spread"),
|
|
158
150
|
]
|
|
159
151
|
}
|
|
160
152
|
if (isBabelPluginNeeded("transform-sticky-regex")) {
|
|
161
153
|
babelPluginStructure["transform-sticky-regex"] = [
|
|
162
|
-
|
|
154
|
+
requireBabelPlugin("@babel/plugin-transform-sticky-regex"),
|
|
163
155
|
]
|
|
164
156
|
}
|
|
165
157
|
if (isBabelPluginNeeded("transform-template-literals")) {
|
|
166
158
|
babelPluginStructure["transform-template-literals"] = [
|
|
167
|
-
|
|
159
|
+
requireBabelPlugin("@babel/plugin-transform-template-literals"),
|
|
168
160
|
]
|
|
169
161
|
}
|
|
170
162
|
if (
|
|
@@ -175,12 +167,12 @@ export const getBaseBabelPluginStructure = ({
|
|
|
175
167
|
url !== getBabelHelperFileUrl("typeof")
|
|
176
168
|
) {
|
|
177
169
|
babelPluginStructure["transform-typeof-symbol"] = [
|
|
178
|
-
|
|
170
|
+
requireBabelPlugin("@babel/plugin-transform-typeof-symbol"),
|
|
179
171
|
]
|
|
180
172
|
}
|
|
181
173
|
if (isBabelPluginNeeded("transform-unicode-regex")) {
|
|
182
174
|
babelPluginStructure["transform-unicode-regex"] = [
|
|
183
|
-
|
|
175
|
+
requireBabelPlugin("@babel/plugin-transform-unicode-regex"),
|
|
184
176
|
]
|
|
185
177
|
}
|
|
186
178
|
return babelPluginStructure
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { applyBabelPlugins } from "@jsenv/utils/js_ast/apply_babel_plugins.js"
|
|
2
2
|
|
|
3
3
|
import { getBaseBabelPluginStructure } from "./helpers/babel_plugin_structure.js"
|
|
4
|
+
import { babelPluginBabelHelpersAsJsenvImports } from "./helpers/babel_plugin_babel_helpers_as_jsenv_imports.js"
|
|
4
5
|
import { babelPluginNewStylesheetAsJsenvImport } from "./new_stylesheet/babel_plugin_new_stylesheet_as_jsenv_import.js"
|
|
5
6
|
import { babelPluginGlobalThisAsJsenvImport } from "./global_this/babel_plugin_global_this_as_jsenv_import.js"
|
|
6
7
|
import { babelPluginRegeneratorRuntimeAsJsenvImport } from "./regenerator_runtime/babel_plugin_regenerator_runtime_as_jsenv_import.js"
|
|
7
|
-
import { babelPluginBabelHelpersAsJsenvImports } from "./babel_helper/babel_plugin_babel_helpers_as_jsenv_imports.js"
|
|
8
8
|
|
|
9
9
|
export const jsenvPluginBabel = ({
|
|
10
10
|
getCustomBabelPlugins,
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// https://github.com/babel/babel/blob/99f4f6c3b03c7f3f67cf1b9f1a21b80cfd5b0224/packages/babel-core/src/tools/build-external-helpers.js
|
|
2
|
-
// the list of possible helpers:
|
|
3
|
-
// https://github.com/babel/babel/blob/99f4f6c3b03c7f3f67cf1b9f1a21b80cfd5b0224/packages/babel-helpers/src/helpers.js#L13
|
|
4
|
-
|
|
5
|
-
const babelHelperClientDirectoryUrl = new URL("./client/", import.meta.url).href
|
|
6
|
-
|
|
7
|
-
// we cannot use "@jsenv/core/src/*" because babel helper might be injected
|
|
8
|
-
// into node_modules not depending on "@jsenv/core"
|
|
9
|
-
export const getBabelHelperFileUrl = (babelHelperName) => {
|
|
10
|
-
const babelHelperFileUrl = new URL(
|
|
11
|
-
`./${babelHelperName}/${babelHelperName}.js`,
|
|
12
|
-
babelHelperClientDirectoryUrl,
|
|
13
|
-
).href
|
|
14
|
-
return babelHelperFileUrl
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const babelHelperNameFromUrl = (url) => {
|
|
18
|
-
if (!url.startsWith(babelHelperClientDirectoryUrl)) {
|
|
19
|
-
return null
|
|
20
|
-
}
|
|
21
|
-
const afterBabelHelperDirectory = url.slice(
|
|
22
|
-
babelHelperClientDirectoryUrl.length,
|
|
23
|
-
)
|
|
24
|
-
const babelHelperName = afterBabelHelperDirectory.slice(
|
|
25
|
-
0,
|
|
26
|
-
afterBabelHelperDirectory.indexOf("/"),
|
|
27
|
-
)
|
|
28
|
-
return babelHelperName
|
|
29
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
const eslintConfig = require("../../.eslintrc.cjs")
|
|
2
|
-
|
|
3
|
-
// babel helpers are copy pasted from the babel repository
|
|
4
|
-
Object.assign(eslintConfig.rules, {
|
|
5
|
-
"eqeqeq": ["off"],
|
|
6
|
-
"no-eq-null": ["off"],
|
|
7
|
-
"no-undef-init": ["off"],
|
|
8
|
-
"dot-notation": ["off"],
|
|
9
|
-
"consistent-return": ["off"],
|
|
10
|
-
"one-var": ["off"],
|
|
11
|
-
"object-shorthand": ["off"],
|
|
12
|
-
"no-return-assign": ["off"],
|
|
13
|
-
"prefer-template": ["off"],
|
|
14
|
-
"prefer-rest-params": ["off"],
|
|
15
|
-
"no-void": ["off"],
|
|
16
|
-
"no-implicit-coercion": ["off"],
|
|
17
|
-
"prefer-spread": ["off"],
|
|
18
|
-
"no-loop-func": ["off"],
|
|
19
|
-
"no-negated-condition": ["off"],
|
|
20
|
-
"no-func-assign": ["off"],
|
|
21
|
-
"no-else-return": ["off"],
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
module.exports = eslintConfig
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import AwaitValue from "../AwaitValue/AwaitValue.js"
|
|
2
|
-
|
|
3
|
-
export default function AsyncGenerator(gen) {
|
|
4
|
-
var front, back
|
|
5
|
-
function send(key, arg) {
|
|
6
|
-
return new Promise(function (resolve, reject) {
|
|
7
|
-
var request = {
|
|
8
|
-
key: key,
|
|
9
|
-
arg: arg,
|
|
10
|
-
resolve: resolve,
|
|
11
|
-
reject: reject,
|
|
12
|
-
next: null,
|
|
13
|
-
}
|
|
14
|
-
if (back) {
|
|
15
|
-
back = back.next = request
|
|
16
|
-
} else {
|
|
17
|
-
front = back = request
|
|
18
|
-
resume(key, arg)
|
|
19
|
-
}
|
|
20
|
-
})
|
|
21
|
-
}
|
|
22
|
-
function resume(key, arg) {
|
|
23
|
-
try {
|
|
24
|
-
var result = gen[key](arg)
|
|
25
|
-
var value = result.value
|
|
26
|
-
var wrappedAwait = value instanceof AwaitValue
|
|
27
|
-
Promise.resolve(wrappedAwait ? value.wrapped : value).then(
|
|
28
|
-
function (arg) {
|
|
29
|
-
if (wrappedAwait) {
|
|
30
|
-
resume(key === "return" ? "return" : "next", arg)
|
|
31
|
-
return
|
|
32
|
-
}
|
|
33
|
-
settle(result.done ? "return" : "normal", arg)
|
|
34
|
-
},
|
|
35
|
-
function (err) {
|
|
36
|
-
resume("throw", err)
|
|
37
|
-
},
|
|
38
|
-
)
|
|
39
|
-
} catch (err) {
|
|
40
|
-
settle("throw", err)
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function settle(type, value) {
|
|
44
|
-
switch (type) {
|
|
45
|
-
case "return":
|
|
46
|
-
front.resolve({ value: value, done: true })
|
|
47
|
-
break
|
|
48
|
-
case "throw":
|
|
49
|
-
front.reject(value)
|
|
50
|
-
break
|
|
51
|
-
default:
|
|
52
|
-
front.resolve({ value: value, done: false })
|
|
53
|
-
break
|
|
54
|
-
}
|
|
55
|
-
front = front.next
|
|
56
|
-
if (front) {
|
|
57
|
-
resume(front.key, front.arg)
|
|
58
|
-
} else {
|
|
59
|
-
back = null
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
this._invoke = send
|
|
63
|
-
// Hide "return" method if generator return is not supported
|
|
64
|
-
if (typeof gen.return !== "function") {
|
|
65
|
-
this.return = undefined
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
AsyncGenerator.prototype[
|
|
69
|
-
(typeof Symbol === "function" && Symbol.asyncIterator) || "@@asyncIterator"
|
|
70
|
-
] = function () {
|
|
71
|
-
return this
|
|
72
|
-
}
|
|
73
|
-
AsyncGenerator.prototype.next = function (arg) {
|
|
74
|
-
return this._invoke("next", arg)
|
|
75
|
-
}
|
|
76
|
-
AsyncGenerator.prototype.throw = function (arg) {
|
|
77
|
-
return this._invoke("throw", arg)
|
|
78
|
-
}
|
|
79
|
-
AsyncGenerator.prototype.return = function (arg) {
|
|
80
|
-
return this._invoke("return", arg)
|
|
81
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-void */
|
|
2
|
-
export default function _applyDecoratedDescriptor(
|
|
3
|
-
target,
|
|
4
|
-
property,
|
|
5
|
-
decorators,
|
|
6
|
-
descriptor,
|
|
7
|
-
context,
|
|
8
|
-
) {
|
|
9
|
-
var desc = {}
|
|
10
|
-
Object.keys(descriptor).forEach(function (key) {
|
|
11
|
-
desc[key] = descriptor[key]
|
|
12
|
-
})
|
|
13
|
-
desc.enumerable = Boolean(desc.enumerable)
|
|
14
|
-
desc.configurable = Boolean(desc.configurable)
|
|
15
|
-
if ("value" in desc || desc.initializer) {
|
|
16
|
-
desc.writable = true
|
|
17
|
-
}
|
|
18
|
-
desc = decorators
|
|
19
|
-
.slice()
|
|
20
|
-
.reverse()
|
|
21
|
-
.reduce(function (desc, decorator) {
|
|
22
|
-
return decorator(target, property, desc) || desc
|
|
23
|
-
}, desc)
|
|
24
|
-
if (context && desc.initializer !== void 0) {
|
|
25
|
-
desc.value = desc.initializer ? desc.initializer.call(context) : void 0
|
|
26
|
-
desc.initializer = undefined
|
|
27
|
-
}
|
|
28
|
-
if (desc.initializer === void 0) {
|
|
29
|
-
Object.defineProperty(target, property, desc)
|
|
30
|
-
desc = null
|
|
31
|
-
}
|
|
32
|
-
return desc
|
|
33
|
-
}
|