@maximai/maxim-js
Version:
Maxim AI JS SDK. Visit https://getmaxim.ai for more info.
88 lines • 2.9 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.nodeAdapter = void 0;
const os_1 = __importDefault(require("os"));
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const mime_types_1 = __importDefault(require("mime-types"));
const node_http_1 = require("node:http");
const node_https_1 = require("node:https");
const crypto_1 = __importDefault(require("crypto"));
const stream_1 = require("stream");
const timers = {
setInterval: (handler, ms) => setInterval(handler, ms),
clearInterval: (handle) => clearInterval(handle),
maybeUnref: (handle) => {
if (handle && typeof handle.unref === "function") {
handle.unref();
}
},
};
const nodeFs = {
hasAccessToFilesystem() {
try {
fs_1.default.accessSync(os_1.default.tmpdir(), fs_1.default.constants.W_OK);
return true;
}
catch {
return false;
}
},
existsSync: (p) => fs_1.default.existsSync(p),
mkdirpSync: (p) => {
if (!fs_1.default.existsSync(p)) {
fs_1.default.mkdirSync(p, { recursive: true });
}
},
readFile: async (p) => ({ data: await fs_1.default.promises.readFile(p) }),
readFileSync: (p) => fs_1.default.readFileSync(p),
writeFile: async (p, data) => {
await fs_1.default.promises.writeFile(p, data);
},
readdirSync: (p) => fs_1.default.readdirSync(p),
rmSync: (p, opts) => fs_1.default.rmSync(p, opts),
statSync: (p) => fs_1.default.statSync(p),
};
const nodePath = {
basename: (p) => path_1.default.basename(p),
extname: (p) => path_1.default.extname(p),
join: (...parts) => path_1.default.join(...parts),
};
const nodeMime = {
lookup: (filePath) => mime_types_1.default.lookup(filePath) || false,
};
const net = {
httpAgent: (options) => new node_http_1.Agent({ keepAlive: true, ...options }),
httpsAgent: (options) => new node_https_1.Agent({ keepAlive: true, ...options }),
};
const nodeCrypto = {
randomBytes: (size) => crypto_1.default.randomBytes(size),
randomBytesAsync: async (size) => crypto_1.default.randomBytes(size),
createHash: (algorithm) => crypto_1.default.createHash(algorithm),
hostname: () => os_1.default.hostname(),
isSecureRandomAvailable: true,
};
const stream = {
Transform: stream_1.Transform,
};
const features = {
csvSupported: true,
fileIoSupported: true,
};
exports.nodeAdapter = {
name: "node",
fs: nodeFs,
path: nodePath,
mime: nodeMime,
timers,
net,
crypto: nodeCrypto,
stream,
tmpdir: () => os_1.default.tmpdir(),
features,
};
exports.default = exports.nodeAdapter;
//# sourceMappingURL=node.js.map