jsir 2.2.7 → 2.2.8
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/cmd/oaa.js +10 -8
- package/deps/util.js +33 -12
- package/package.json +1 -1
package/cmd/oaa.js
CHANGED
|
@@ -11,7 +11,7 @@ const {
|
|
|
11
11
|
createConsole, setTips, delTips,
|
|
12
12
|
getEditor, errorStr, getConfigDir,
|
|
13
13
|
getFullPath, parseUniqueName, toUniqueName, isJsirFileName, toJsirFileName,
|
|
14
|
-
|
|
14
|
+
getOr, getAlias
|
|
15
15
|
} = $lib;
|
|
16
16
|
const _args = process.argv.slice(2).map(trim);
|
|
17
17
|
const evalCode = require('../deps/evalCode')
|
|
@@ -1179,16 +1179,16 @@ const keywordDef = {
|
|
|
1179
1179
|
let text = removeComment(String(fs.readFileSync(path)))
|
|
1180
1180
|
let [space] = parseUniqueName(uniqueName)
|
|
1181
1181
|
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1182
|
+
await preLoad(text, "[\\s=;]require", requireG, packages, space)
|
|
1183
|
+
await preLoad(text, "^require", requireG, packages, space)
|
|
1184
|
+
await preLoad(text, "\\$import", importG, packages, space)
|
|
1185
|
+
await preLoad(text, "[\\s=;]import", importG, packages, space)
|
|
1186
|
+
await preLoad(text, "^import", importG, packages, space)
|
|
1187
1187
|
}
|
|
1188
1188
|
Object.keys(packages).forEach(key => {
|
|
1189
1189
|
let info = packages[key];
|
|
1190
1190
|
info.version = getPackageVersion(info.space, info.name)
|
|
1191
|
-
let loadedSpace =
|
|
1191
|
+
let loadedSpace = global.$packages[info.name]
|
|
1192
1192
|
if (loadedSpace) {
|
|
1193
1193
|
info.loaded = loadedSpace
|
|
1194
1194
|
}
|
|
@@ -1284,7 +1284,7 @@ const keywordDef = {
|
|
|
1284
1284
|
let keyword = args[0]
|
|
1285
1285
|
let justList = false;
|
|
1286
1286
|
if (keyword.endsWith('.')) {
|
|
1287
|
-
let _tmp =
|
|
1287
|
+
let _tmp = getAlias(keyword.substring(0, keyword.length - 1));
|
|
1288
1288
|
if (_tmp) {
|
|
1289
1289
|
if (keywordDef[_tmp] || Object.values(keywordDef).map(item => item.short).indexOf(_tmp) !== -1) {
|
|
1290
1290
|
help(i => i === _tmp || keywordDef[i].short === _tmp);
|
|
@@ -1296,6 +1296,8 @@ const keywordDef = {
|
|
|
1296
1296
|
console.warn('invalid keyword')
|
|
1297
1297
|
return
|
|
1298
1298
|
}
|
|
1299
|
+
} else {
|
|
1300
|
+
keyword = getAlias(keyword)
|
|
1299
1301
|
}
|
|
1300
1302
|
let pair = parseUniqueName(keyword)
|
|
1301
1303
|
let cmds;
|
package/deps/util.js
CHANGED
|
@@ -17,6 +17,7 @@ global.$workspaceMap = {}
|
|
|
17
17
|
global.$defaultSpace = 'local'
|
|
18
18
|
global.$newError = false
|
|
19
19
|
global.$tips = {}
|
|
20
|
+
global.$packages = Object.create(null)
|
|
20
21
|
|
|
21
22
|
let libDataDir;
|
|
22
23
|
let lockDir;
|
|
@@ -487,8 +488,14 @@ function trimEmptyLine(text) {
|
|
|
487
488
|
return lines.slice(start, end + 1).join('\n');
|
|
488
489
|
}
|
|
489
490
|
|
|
491
|
+
let defaultEditor = "vi";
|
|
490
492
|
function getEditor() {
|
|
491
|
-
|
|
493
|
+
try {
|
|
494
|
+
defaultEditor = getConfig("defaultEditor", "vi");
|
|
495
|
+
} catch (e) {
|
|
496
|
+
console.$error('getConfig failed', e);
|
|
497
|
+
}
|
|
498
|
+
return defaultEditor
|
|
492
499
|
}
|
|
493
500
|
|
|
494
501
|
function timeStr(fmt, date) {
|
|
@@ -749,7 +756,7 @@ async function fileJson(key, fn, fmt = true) {
|
|
|
749
756
|
}
|
|
750
757
|
|
|
751
758
|
function setModulePaths(space) {
|
|
752
|
-
let moduleDir = $workspaceMap[space
|
|
759
|
+
let moduleDir = $workspaceMap[space] + '/node_modules'
|
|
753
760
|
if (module.paths.indexOf(moduleDir) === -1) {
|
|
754
761
|
module.paths.splice(0, module.paths.length)
|
|
755
762
|
module.paths.push(moduleDir)
|
|
@@ -758,7 +765,14 @@ function setModulePaths(space) {
|
|
|
758
765
|
return moduleDir;
|
|
759
766
|
}
|
|
760
767
|
|
|
768
|
+
function enrichPackages(moduleName, space) {
|
|
769
|
+
if (!global.$packages[moduleName]) {
|
|
770
|
+
global.$packages[moduleName] = space
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
|
|
761
774
|
function requireG(moduleName, space){
|
|
775
|
+
space = space || global.$defaultSpace;
|
|
762
776
|
let moduleDir = setModulePaths(space);
|
|
763
777
|
if (module.paths.indexOf(moduleDir) === -1) {
|
|
764
778
|
module.paths.splice(0, module.paths.length)
|
|
@@ -772,21 +786,15 @@ function requireG(moduleName, space){
|
|
|
772
786
|
} catch (e) {}
|
|
773
787
|
let path = moduleDir + '/' + moduleName;
|
|
774
788
|
if (!fs.existsSync(path)) {
|
|
775
|
-
throw `${space
|
|
789
|
+
throw `${space} package [${moduleName}] not found`;
|
|
776
790
|
}
|
|
777
791
|
let result = require(path);
|
|
778
792
|
enrichPackages(moduleName, space);
|
|
779
793
|
return result;
|
|
780
794
|
}
|
|
781
795
|
|
|
782
|
-
function enrichPackages(moduleName, space) {
|
|
783
|
-
let packages = getOr(global, '$packages', {});
|
|
784
|
-
if (!packages[moduleName]) {
|
|
785
|
-
packages[moduleName] = space
|
|
786
|
-
}
|
|
787
|
-
}
|
|
788
|
-
|
|
789
796
|
async function importG(moduleName, space) {
|
|
797
|
+
space = space || global.$defaultSpace;
|
|
790
798
|
let moduleDir = setModulePaths(space);
|
|
791
799
|
try {
|
|
792
800
|
let result = await import(moduleName);
|
|
@@ -795,7 +803,7 @@ async function importG(moduleName, space) {
|
|
|
795
803
|
} catch (e) {}
|
|
796
804
|
let path = moduleDir + '/' + moduleName;
|
|
797
805
|
if (!fs.existsSync(path)) {
|
|
798
|
-
throw `${space
|
|
806
|
+
throw `${space} package [${moduleName}] not found`;
|
|
799
807
|
}
|
|
800
808
|
let result = await import(require.resolve(path));
|
|
801
809
|
enrichPackages(moduleName, space);
|
|
@@ -855,6 +863,18 @@ function getConfigDir() {
|
|
|
855
863
|
return configDir;
|
|
856
864
|
}
|
|
857
865
|
|
|
866
|
+
function getAlias(key) {
|
|
867
|
+
key = trim(key)
|
|
868
|
+
if (!key) {
|
|
869
|
+
return key;
|
|
870
|
+
}
|
|
871
|
+
let aliasMap = getConfig('alias', {});
|
|
872
|
+
if (aliasMap.hasOwnProperty(key) && vl(aliasMap[key])) {
|
|
873
|
+
return aliasMap[key].trim();
|
|
874
|
+
}
|
|
875
|
+
return key
|
|
876
|
+
}
|
|
877
|
+
|
|
858
878
|
function _getConfig(key, defaultVal, uniqueName) {
|
|
859
879
|
let configInit = {}
|
|
860
880
|
let configFile = getLibDataDir() + '/config.json';
|
|
@@ -1852,5 +1872,6 @@ module.exports = {
|
|
|
1852
1872
|
isJsirFileName,
|
|
1853
1873
|
toJsirFileName,
|
|
1854
1874
|
fileJson,
|
|
1855
|
-
debugStr
|
|
1875
|
+
debugStr,
|
|
1876
|
+
getAlias
|
|
1856
1877
|
}
|