Skip to content

Commit e6d0d3d

Browse files
fix: preserve jsparser CommonJS package boundary (#1984)
1 parent 04d143f commit e6d0d3d

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

build.gradle

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,12 @@ task copyFilesToProjectTemeplate {
269269
into "$DIST_FRAMEWORK_PATH/build-tools"
270270
}
271271
copy {
272-
from "$BUILD_TOOLS_PATH/jsparser/build/js_parser.js"
272+
from("$BUILD_TOOLS_PATH/jsparser/build") {
273+
include "js_parser.js"
274+
}
275+
from("$BUILD_TOOLS_PATH/jsparser") {
276+
include "package.json"
277+
}
273278
into "$DIST_FRAMEWORK_PATH/build-tools/jsparser"
274279
}
275280
copy {
@@ -343,6 +348,20 @@ task copyProjectTemplate(type: Copy) {
343348
into "$DIST_FRAMEWORK_PATH"
344349
}
345350

351+
task verifyJsParserPackage {
352+
doLast {
353+
def packageFile = new File("$DIST_FRAMEWORK_PATH/build-tools/jsparser/package.json")
354+
if (!packageFile.exists()) {
355+
throw new GradleException("The packaged JavaScript parser is missing its package.json boundary.")
356+
}
357+
358+
def packageJson = new JsonSlurper().parseText(packageFile.text)
359+
if (packageJson.type != "commonjs") {
360+
throw new GradleException("The packaged JavaScript parser must run as CommonJS.")
361+
}
362+
}
363+
}
364+
346365
task copyPackageJson(type: Copy) {
347366
from "$rootDir/package.json"
348367
into "$DIST_PATH"
@@ -394,7 +413,8 @@ if (generateRegularRuntimePackage) {
394413
}
395414

396415
copyFilesToProjectTemeplate.dependsOn(buildJsParser)
397-
copyProjectTemplate.dependsOn(copyFilesToProjectTemeplate)
416+
verifyJsParserPackage.dependsOn(copyFilesToProjectTemeplate)
417+
copyProjectTemplate.dependsOn(verifyJsParserPackage)
398418
copyPackageJson.dependsOn(copyProjectTemplate)
399419
setPackageVersionInPackageJsonFile.dependsOn(copyPackageJson)
400420
copyReadme.dependsOn(setPackageVersionInPackageJsonFile)

test-app/build-tools/jsparser/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"name": "js-parser",
33
"version": "1.0.0",
4+
"type": "commonjs",
45
"description": "javascript static analysis tool",
56
"main": "js_parser.js",
67
"scripts": {

0 commit comments

Comments
 (0)