node-nim 10.8.10-beta.153 → 10.8.10-beta.161

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/dist/loader.js CHANGED
@@ -1,51 +1,4 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const fs_1 = __importDefault(require("fs"));
7
- const path_1 = __importDefault(require("path"));
8
- let sdk_path = '';
9
- let debug_path = '';
10
- // Add the compiled product path to the environment variable,
11
- // so that the third party does not need to copy the
12
- // dynamic library separately to the program directory when importing.
13
- if (process.platform === 'win32') {
14
- sdk_path = path_1.default.join(__dirname, '../sdk/bin');
15
- debug_path = path_1.default.join(__dirname, '../../build/bin');
16
- }
17
- else {
18
- sdk_path = path_1.default.join(__dirname, '../sdk/lib');
19
- debug_path = path_1.default.join(__dirname, '../../build/lib');
20
- }
21
- let relative_path = process.platform === 'win32'
22
- ? path_1.default.join(process.cwd(), 'node_modules/node-nim/sdk/bin')
23
- : path_1.default.join(process.cwd(), 'node_modules/node-nim/sdk/lib');
24
- let paths = [debug_path, sdk_path, process.cwd(), path_1.default.dirname(process.execPath), relative_path];
25
- let node_nim_dir = '';
26
- for (let current_path of paths) {
27
- if (fs_1.default.existsSync(path_1.default.join(current_path, 'node-nim.node'))) {
28
- node_nim_dir = current_path;
29
- break;
30
- }
31
- }
32
- if (node_nim_dir.length === 0) {
33
- throw new Error('node-nim.node not found, tried: ' + paths.join(', '));
34
- }
35
- if (process.platform === 'win32') {
36
- process.env.PATH = `${node_nim_dir};${process.env.PATH}`;
37
- }
38
- let object;
39
- try {
40
- object = require(path_1.default.join(node_nim_dir, 'node-nim.node'));
41
- }
42
- catch (exception) {
43
- if (process.platform === 'win32') {
44
- object = require('../sdk/bin/node-nim.node');
45
- }
46
- else {
47
- object = require('../sdk/lib/node-nim.node');
48
- }
49
- }
50
- exports.default = object;
3
+ exports.default = require('../build/Release/node-nim.node');
51
4
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../ts/loader.ts"],"names":[],"mappings":";;;;;AAAA,4CAAmB;AACnB,gDAAuB;AAEvB,IAAI,QAAQ,GAAG,EAAE,CAAA;AACjB,IAAI,UAAU,GAAG,EAAE,CAAA;AAEnB,6DAA6D;AAC7D,oDAAoD;AACpD,sEAAsE;AACtE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;IAChC,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IAC7C,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;CACrD;KAAM;IACL,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IAC7C,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;CACrD;AACD,IAAI,aAAa,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;IAC9C,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,+BAA+B,CAAC;IAC3D,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAA;AAC7D,IAAI,KAAK,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAA;AAChG,IAAI,YAAY,GAAG,EAAE,CAAA;AACrB,KAAK,IAAI,YAAY,IAAI,KAAK,EAAE;IAC9B,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,EAAE;QAC3D,YAAY,GAAG,YAAY,CAAA;QAC3B,MAAK;KACN;CACF;AACD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;IAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;CACvE;AACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;IAChC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;CACzD;AAED,IAAI,MAAW,CAAA;AACf,IAAI;IACF,MAAM,GAAG,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAA;CAC3D;AAAC,OAAO,SAAS,EAAE;IAClB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAA;KAC7C;SAAM;QACL,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAA;KAC7C;CACF;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../ts/loader.ts"],"names":[],"mappings":";;AAAA,kBAAe,OAAO,CAAC,gCAAgC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-nim",
3
- "version": "10.8.10-beta.153",
3
+ "version": "10.8.10-beta.161",
4
4
  "description": "NetEase IM nodejs wrapper based on NetEase IM C++ SDK",
5
5
  "main": "dist/node-nim.js",
6
6
  "bin": {
@@ -1,78 +1,99 @@
1
1
  const fetch = require('node-fetch')
2
2
  const fs = require('fs')
3
+ const path = require('path')
3
4
  const compareVersions = require('compare-versions')
4
5
  const download = require('download')
6
+
7
+ // Global variables
5
8
  const arch = process.env.npm_config_arch || process.arch
6
9
  const platform = process.env.npm_config_platform || process.platform
7
- const sdk_group = 'message'
8
- const sdk_name = 'nim'
9
- const sdk_path = `${__dirname}/../sdk`
10
+ const channel = 'message'
11
+ const product = 'nim'
12
+ const savePath = path.join(__dirname, '..', 'temporary')
13
+
10
14
  if (process.env.npm_config_ignoredownloadsdk) {
11
- console.log('ignore download sdk')
15
+ console.log('ignore download product')
12
16
  process.exit(0)
13
17
  }
14
- let sdk_version
15
- let sdk_url = process.env.npm_config_nimsdkurl
18
+ let version
19
+ let downloadUrl = process.env.npm_config_nimsdkurl
16
20
  if (process.env.npm_package_version) {
17
- sdk_version = process.env.npm_package_version.split('-')[0]
21
+ version = process.env.npm_package_version.split('-')[0]
18
22
  }
19
23
  if (process.env.npm_config_nimsdkversion) {
20
- sdk_version = process.env.npm_config_nimsdkversion
24
+ version = process.env.npm_config_nimsdkversion
21
25
  }
22
26
  async function downloadSDK(custom_sdk_url) {
23
27
  if (custom_sdk_url) {
24
- sdk_url = custom_sdk_url
28
+ downloadUrl = custom_sdk_url
25
29
  }
26
30
  // fetch publish list
27
31
  const res = await fetch('https://admin.netease.im/public-service/free/publish/list')
28
32
  const publish_json = await res.json()
29
33
  // get sdk list
30
- if (!sdk_url) {
31
- let latest_version = '0.0.0'
32
- let latest_sdk_url = ''
33
- Object.keys(publish_json.data[sdk_group]).forEach((temp) => {
34
- if (compareVersions.compare(latest_version, temp, '<')) {
35
- publish_json.data[sdk_group][temp].forEach((member) => {
36
- if (member.filename.includes(sdk_name) && member.filename.includes(platform) && member.filename.includes(arch)) {
37
- latest_version = temp
38
- latest_sdk_url = member.cdnlink
34
+ if (!downloadUrl) {
35
+ let latestVersion = '0.0.0'
36
+ let latestDownloadUrl = ''
37
+ Object.keys(publish_json.data[channel]).forEach((temp) => {
38
+ if (compareVersions.compare(latestVersion, temp, '<')) {
39
+ publish_json.data[channel][temp].forEach((member) => {
40
+ if (member.filename.includes(product) && member.filename.includes(platform) && member.filename.includes(arch)) {
41
+ latestVersion = temp
42
+ latestDownloadUrl = member.cdnlink
39
43
  }
40
44
  })
41
45
  }
42
- if (sdk_version === temp) {
43
- publish_json.data[sdk_group][temp].forEach((member) => {
44
- if (member.filename.includes(sdk_name) && member.filename.includes(platform) && member.filename.includes(arch)) {
45
- sdk_url = member.cdnlink
46
+ if (version === temp) {
47
+ publish_json.data[channel][temp].forEach((member) => {
48
+ if (member.filename.includes(product) && member.filename.includes(platform) && member.filename.includes(arch)) {
49
+ downloadUrl = member.cdnlink
46
50
  }
47
51
  })
48
52
  }
49
53
  })
50
- if (!sdk_url || sdk_url.length === 0) {
51
- console.log(`${sdk_name} sdk version ${sdk_version} not found, use latest version ${latest_version}`)
52
- sdk_url = latest_sdk_url
54
+ if (!downloadUrl || downloadUrl.length === 0) {
55
+ console.log(`[node-nim] Product [${product}] version ${version} not found, use latest version ${latestVersion}`)
56
+ downloadUrl = latestDownloadUrl
53
57
  }
54
- console.log(`[node-nim] downloadSDK sdk_name:${sdk_name}, platform:${platform}, arch:${arch}`)
58
+ console.log(`[node-nim] Downloading product: ${product}, platform: ${platform}, arch: ${arch}`)
55
59
  }
56
- if (!sdk_url) {
57
- console.error(`[node-nim] downloadSDK sdk_name:${sdk_name}, platform:${platform}, arch:${arch} not found`)
60
+ if (!downloadUrl) {
61
+ console.error(`[node-nim] Downloading product: ${product}, platform: ${platform}, arch: ${arch} not found`)
58
62
  return
59
63
  }
60
- console.info(`[node-nim] Downloading prebuilt sdk from ${sdk_url} to ${sdk_path}`)
61
- // remove sdk_path
62
- if (fs.existsSync(sdk_path)) {
63
- fs.rmdirSync(sdk_path, { recursive: true })
64
+ console.info(`[node-nim] Downloading prebuilt SDK from ${downloadUrl} to ${savePath}`)
65
+ // remove temporary download folder and target folder
66
+ const target = path.join(__dirname, '..', 'build', 'Release')
67
+ if (fs.existsSync(savePath)) {
68
+ fs.rmSync(savePath, { recursive: true })
69
+ }
70
+ if (fs.existsSync(target)) {
71
+ fs.rmSync(target, { recursive: true })
64
72
  }
65
73
  // download sdk
66
74
  try {
67
- await download(sdk_url, sdk_path, {
75
+ await download(downloadUrl, savePath, {
68
76
  extract: true,
69
77
  filter: (file) => {
70
78
  return !file.path.includes('._')
71
79
  }
72
80
  })
81
+ // create build/Release folder
82
+ if (!fs.existsSync(target)) {
83
+ fs.mkdirSync(target, { recursive: true })
84
+ }
85
+ // move sdk/* files to build/Release
86
+ const from = path.join(savePath, platform === 'win32' ? 'bin' : 'lib')
87
+ const files = fs.readdirSync(from)
88
+ files.forEach((file) => {
89
+ console.info(`[node-nim] move ${file} to ${target}`)
90
+ fs.renameSync(path.join(from, file), path.join(target, file))
91
+ })
92
+ // remove temporary download folder
93
+ fs.rmSync(savePath, { recursive: true })
73
94
  console.info(`[node-nim] Downloading prebuilt sdk complete`)
74
95
  } catch (err) {
75
- console.error(`[node-nim] downloadSDK error:${err}`)
96
+ console.error(`[node-nim] Failed to download, error: ${err}`)
76
97
  }
77
98
  }
78
99
  exports.downloadSDK = downloadSDK
package/types/loader.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare let object: any;
2
- export default object;
1
+ declare const _default: any;
2
+ export default _default;