Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions __test__/index.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
const ava_1 = __importDefault(require("ava"));
const node_process_1 = __importDefault(require("node:process"));
const indax_1 = require("../indax");
const index_1 = require("../index");
const smbURL = node_process_1.default.env.SMB_URL || 'smb://127.0.0.1/Users/Shared/smb/';
//const smbPath = process.env.SMB_PATH;
let cachedRoot;
let testPermissions = false;
let testResolve = false;
async function getRootHandle() {
if (!cachedRoot) {
cachedRoot = new indax_1.SmbDirectoryHandle(smbURL);
cachedRoot = new index_1.SmbDirectoryHandle(smbURL);
}
//let cachedRoot = new SmbDirectoryHandle(smbURL);
let subRoot = cachedRoot;
Expand Down
2 changes: 1 addition & 1 deletion __test__/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import test from 'ava'

import process from 'node:process';
import { SmbDirectoryHandle, SmbFileHandle } from '../indax';
import { SmbDirectoryHandle, SmbFileHandle } from '../index';

const smbURL = process.env.SMB_URL || 'smb://127.0.0.1/Users/Shared/smb/';
//const smbPath = process.env.SMB_PATH;
Expand Down
310 changes: 310 additions & 0 deletions binding.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,310 @@
/* tslint:disable */
/* eslint-disable */
/* prettier-ignore */

/* auto-generated by NAPI-RS */

const { existsSync, readFileSync } = require('fs')
const { join } = require('path')

const { platform, arch } = process

let nativeBinding = null
let localFileExisted = false
let loadError = null

function isMusl() {
// For Node 10
if (!process.report || typeof process.report.getReport !== 'function') {
try {
const lddPath = require('child_process').execSync('which ldd').toString().trim()
return readFileSync(lddPath, 'utf8').includes('musl')
} catch (e) {
return true
}
} else {
const { glibcVersionRuntime } = process.report.getReport().header
return !glibcVersionRuntime
}
}

switch (platform) {
case 'android':
switch (arch) {
case 'arm64':
localFileExisted = existsSync(join(__dirname, 'smb-js.android-arm64.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.android-arm64.node')
} else {
nativeBinding = require('@netapplabs/smb-js-android-arm64')
}
} catch (e) {
loadError = e
}
break
case 'arm':
localFileExisted = existsSync(join(__dirname, 'smb-js.android-arm-eabi.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.android-arm-eabi.node')
} else {
nativeBinding = require('@netapplabs/smb-js-android-arm-eabi')
}
} catch (e) {
loadError = e
}
break
default:
throw new Error(`Unsupported architecture on Android ${arch}`)
}
break
case 'win32':
switch (arch) {
case 'x64':
localFileExisted = existsSync(join(__dirname, 'smb-js.win32-x64-msvc.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.win32-x64-msvc.node')
} else {
nativeBinding = require('@netapplabs/smb-js-win32-x64-msvc')
}
} catch (e) {
loadError = e
}
break
case 'ia32':
localFileExisted = existsSync(join(__dirname, 'smb-js.win32-ia32-msvc.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.win32-ia32-msvc.node')
} else {
nativeBinding = require('@netapplabs/smb-js-win32-ia32-msvc')
}
} catch (e) {
loadError = e
}
break
case 'arm64':
localFileExisted = existsSync(join(__dirname, 'smb-js.win32-arm64-msvc.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.win32-arm64-msvc.node')
} else {
nativeBinding = require('@netapplabs/smb-js-win32-arm64-msvc')
}
} catch (e) {
loadError = e
}
break
default:
throw new Error(`Unsupported architecture on Windows: ${arch}`)
}
break
case 'darwin':
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.darwin-universal.node')
} else {
nativeBinding = require('@netapplabs/smb-js-darwin-universal')
}
break
} catch {}
switch (arch) {
case 'x64':
localFileExisted = existsSync(join(__dirname, 'smb-js.darwin-x64.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.darwin-x64.node')
} else {
nativeBinding = require('@netapplabs/smb-js-darwin-x64')
}
} catch (e) {
loadError = e
}
break
case 'arm64':
localFileExisted = existsSync(join(__dirname, 'smb-js.darwin-arm64.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.darwin-arm64.node')
} else {
nativeBinding = require('@netapplabs/smb-js-darwin-arm64')
}
} catch (e) {
loadError = e
}
break
default:
throw new Error(`Unsupported architecture on macOS: ${arch}`)
}
break
case 'freebsd':
if (arch !== 'x64') {
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
}
localFileExisted = existsSync(join(__dirname, 'smb-js.freebsd-x64.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.freebsd-x64.node')
} else {
nativeBinding = require('@netapplabs/smb-js-freebsd-x64')
}
} catch (e) {
loadError = e
}
break
case 'linux':
switch (arch) {
case 'x64':
if (isMusl()) {
localFileExisted = existsSync(join(__dirname, 'smb-js.linux-x64-musl.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.linux-x64-musl.node')
} else {
nativeBinding = require('@netapplabs/smb-js-linux-x64-musl')
}
} catch (e) {
loadError = e
}
} else {
localFileExisted = existsSync(join(__dirname, 'smb-js.linux-x64-gnu.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.linux-x64-gnu.node')
} else {
nativeBinding = require('@netapplabs/smb-js-linux-x64-gnu')
}
} catch (e) {
loadError = e
}
}
break
case 'arm64':
if (isMusl()) {
localFileExisted = existsSync(join(__dirname, 'smb-js.linux-arm64-musl.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.linux-arm64-musl.node')
} else {
nativeBinding = require('@netapplabs/smb-js-linux-arm64-musl')
}
} catch (e) {
loadError = e
}
} else {
localFileExisted = existsSync(join(__dirname, 'smb-js.linux-arm64-gnu.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.linux-arm64-gnu.node')
} else {
nativeBinding = require('@netapplabs/smb-js-linux-arm64-gnu')
}
} catch (e) {
loadError = e
}
}
break
case 'arm':
if (isMusl()) {
localFileExisted = existsSync(join(__dirname, 'smb-js.linux-arm-musleabihf.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.linux-arm-musleabihf.node')
} else {
nativeBinding = require('@netapplabs/smb-js-linux-arm-musleabihf')
}
} catch (e) {
loadError = e
}
} else {
localFileExisted = existsSync(join(__dirname, 'smb-js.linux-arm-gnueabihf.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.linux-arm-gnueabihf.node')
} else {
nativeBinding = require('@netapplabs/smb-js-linux-arm-gnueabihf')
}
} catch (e) {
loadError = e
}
}
break
case 'riscv64':
if (isMusl()) {
localFileExisted = existsSync(join(__dirname, 'smb-js.linux-riscv64-musl.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.linux-riscv64-musl.node')
} else {
nativeBinding = require('@netapplabs/smb-js-linux-riscv64-musl')
}
} catch (e) {
loadError = e
}
} else {
localFileExisted = existsSync(join(__dirname, 'smb-js.linux-riscv64-gnu.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.linux-riscv64-gnu.node')
} else {
nativeBinding = require('@netapplabs/smb-js-linux-riscv64-gnu')
}
} catch (e) {
loadError = e
}
}
break
case 's390x':
localFileExisted = existsSync(join(__dirname, 'smb-js.linux-s390x-gnu.node'))
try {
if (localFileExisted) {
nativeBinding = require('./smb-js.linux-s390x-gnu.node')
} else {
nativeBinding = require('@netapplabs/smb-js-linux-s390x-gnu')
}
} catch (e) {
loadError = e
}
break
default:
throw new Error(`Unsupported architecture on Linux: ${arch}`)
}
break
default:
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
}

if (!nativeBinding) {
if (loadError) {
throw loadError
}
throw new Error(`Failed to load native binding`)
}

const {
JsSmbDirectoryHandleEntries,
JsSmbDirectoryHandleKeys,
JsSmbDirectoryHandleValues,
JsSmbHandle,
JsSmbDirectoryHandle,
Cancellable,
JsSmbFileHandle,
JsSmbFile,
JsSmbReadableStreamSource,
JsSmbWritableFileStream,
JsSmbWritableStreamSink,
} = nativeBinding

module.exports.JsSmbDirectoryHandleEntries = JsSmbDirectoryHandleEntries
module.exports.JsSmbDirectoryHandleKeys = JsSmbDirectoryHandleKeys
module.exports.JsSmbDirectoryHandleValues = JsSmbDirectoryHandleValues
module.exports.JsSmbHandle = JsSmbHandle
module.exports.JsSmbDirectoryHandle = JsSmbDirectoryHandle
module.exports.Cancellable = Cancellable
module.exports.JsSmbFileHandle = JsSmbFileHandle
module.exports.JsSmbFile = JsSmbFile
module.exports.JsSmbReadableStreamSource = JsSmbReadableStreamSource
module.exports.JsSmbWritableFileStream = JsSmbWritableFileStream
module.exports.JsSmbWritableStreamSink = JsSmbWritableStreamSink
Loading