Skip to content

Commit 0887ffb

Browse files
Merge pull request #39 from dart-native/feature/nodejs_available
feat: 兼容低版本 nodejs
2 parents 772934c + defa426 commit 0887ffb

File tree

3 files changed

+29
-6
lines changed

3 files changed

+29
-6
lines changed

lib/java/DNJavaConverter.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@ var JavaLexer = require('../../parser/java/Java9Lexer').Java9Lexer
44
var JavaParser = require('../../parser/java/Java9Parser').Java9Parser
55
var DNJavaParserListener = require('./DNJavaParserListener').DNJavaParserListener
66
var ConsoleErrorListener = require('antlr4/error/ErrorListener').ConsoleErrorListener
7-
const { parentPort, workerData } = require('worker_threads')
7+
8+
let parentPort, workerData
9+
try {
10+
parentPort = require('worker_threads').parentPort
11+
workerData = require('worker_threads').workerData
12+
} catch (error) {
13+
console.log('NodeJS version is too low. Running on slow mode.')
14+
}
815

916
function convert(path, cb) {
1017
if (!path) {

lib/main.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@ const { execSync } = require('child_process')
22
const fs = require("fs")
33
const path = require("path")
44
const yaml = require('js-yaml')
5-
const { Worker } = require('worker_threads')
5+
let Worker
6+
let isSupportWorkerThreads = false
7+
try {
8+
Worker = require('worker_threads').Worker
9+
isSupportWorkerThreads = true
10+
} catch (error) {
11+
console.log('NodeJS version is too low. Running on slow mode.')
12+
}
13+
614

715
var outputDir
816
var projectName
@@ -78,7 +86,7 @@ function writeDependencyToPubSpec(filePath) {
7886

7987
function generateDartWithWorker(path, script) {
8088
return new Promise((resolve, reject) => {
81-
if (this.isDebug) {
89+
if (this.isMainThread) {
8290
const convert = require(script).convert
8391
convert(path, (result, path, error) => {
8492
resolve({ result: result, path: path, error: error })
@@ -119,8 +127,8 @@ function checkTemplateValid(template) {
119127
return template == 'plugin' || template == 'package'
120128
}
121129

122-
async function main(input, options, debug = false) {
123-
this.isDebug = debug
130+
async function main(input, options, onMainThread = !isSupportWorkerThreads) {
131+
this.isMainThread = onMainThread
124132

125133
language = options.language
126134
if (!language) {

lib/objc/DNObjectiveCConverter.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,15 @@ let ObjectiveCLexer = require('../../parser/objc/ObjectiveCLexer').ObjectiveCLex
44
let ObjectiveCParser = require('../../parser/objc/ObjectiveCParser').ObjectiveCParser
55
let DNObjectiveCParserListener = require('./DNObjectiveCParserListener').DNObjectiveCParserListener
66
let ConsoleErrorListener = require('antlr4/error/ErrorListener').ConsoleErrorListener
7-
const { parentPort, workerData } = require('worker_threads')
7+
8+
let parentPort, workerData
9+
try {
10+
parentPort = require('worker_threads').parentPort
11+
workerData = require('worker_threads').workerData
12+
} catch (error) {
13+
console.log('NodeJS version is too low. Running on slow mode.')
14+
}
15+
816

917
function convert(path, cb) {
1018
if (!path) {

0 commit comments

Comments
 (0)