UNPKG

netcdf4-wasm

Version:

NetCDF4 library compiled to WebAssembly with TypeScript bindings

75 lines 4.54 kB
"use strict"; // NetCDF4 WASM - Main entry point // JavaScript API modeled on netcdf4-python for familiarity Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.mountLazyFile = exports.createLazyStreamOps = exports.createLazyReader = exports.BlobReader = exports.NodeFileReader = exports.MemoryReader = exports.CachedReader = exports.DATA_TYPE_MAP = exports.NC_CONSTANTS = exports.Group = exports.Dimension = exports.Variable = exports.NetCDF4 = void 0; exports.Dataset = Dataset; exports.DatasetFromBlob = DatasetFromBlob; exports.DatasetFromArrayBuffer = DatasetFromArrayBuffer; exports.DatasetFromMemory = DatasetFromMemory; // Export all classes and types var netcdf4_1 = require("./netcdf4"); Object.defineProperty(exports, "NetCDF4", { enumerable: true, get: function () { return netcdf4_1.NetCDF4; } }); var variable_1 = require("./variable"); Object.defineProperty(exports, "Variable", { enumerable: true, get: function () { return variable_1.Variable; } }); var dimension_1 = require("./dimension"); Object.defineProperty(exports, "Dimension", { enumerable: true, get: function () { return dimension_1.Dimension; } }); var group_1 = require("./group"); Object.defineProperty(exports, "Group", { enumerable: true, get: function () { return group_1.Group; } }); var constants_1 = require("./constants"); Object.defineProperty(exports, "NC_CONSTANTS", { enumerable: true, get: function () { return constants_1.NC_CONSTANTS; } }); Object.defineProperty(exports, "DATA_TYPE_MAP", { enumerable: true, get: function () { return constants_1.DATA_TYPE_MAP; } }); // Lazy file-reading primitives (read byte ranges on demand instead of loading // the whole file into memory). High-level entry point: Dataset(src, 'r', { lazy: true }). var lazy_1 = require("./lazy"); Object.defineProperty(exports, "CachedReader", { enumerable: true, get: function () { return lazy_1.CachedReader; } }); Object.defineProperty(exports, "MemoryReader", { enumerable: true, get: function () { return lazy_1.MemoryReader; } }); Object.defineProperty(exports, "NodeFileReader", { enumerable: true, get: function () { return lazy_1.NodeFileReader; } }); Object.defineProperty(exports, "BlobReader", { enumerable: true, get: function () { return lazy_1.BlobReader; } }); Object.defineProperty(exports, "createLazyReader", { enumerable: true, get: function () { return lazy_1.createLazyReader; } }); Object.defineProperty(exports, "createLazyStreamOps", { enumerable: true, get: function () { return lazy_1.createLazyStreamOps; } }); Object.defineProperty(exports, "mountLazyFile", { enumerable: true, get: function () { return lazy_1.mountLazyFile; } }); // Re-export NetCDF4 as default for backwards compatibility var netcdf4_2 = require("./netcdf4"); Object.defineProperty(exports, "default", { enumerable: true, get: function () { return netcdf4_2.NetCDF4; } }); // Polymorphic Dataset constructor - accepts filename, Blob, ArrayBuffer, or Uint8Array const netcdf4_3 = require("./netcdf4"); async function Dataset(source, mode = "r", options = {}) { // Type detection and routing if (typeof source === "string") { // File path. Lazy mode (Node) reads ranges on demand via a NodeFileReader. if (options.lazy) { return await netcdf4_3.NetCDF4.fromLazy(source, mode, options); } return await netcdf4_3.NetCDF4.Dataset(source, mode, options); } else if (source instanceof Blob) { // Blob object return await netcdf4_3.NetCDF4.fromBlob(source, mode, options); } else if (source instanceof ArrayBuffer) { // ArrayBuffer return await netcdf4_3.NetCDF4.fromArrayBuffer(source, mode, options); } else if (source instanceof Uint8Array) { // Uint8Array return await netcdf4_3.NetCDF4.fromMemory(source, mode, options); } else { throw new Error("Invalid source type. Expected string, Blob, ArrayBuffer, or Uint8Array."); } } // Legacy convenience functions for backward compatibility async function DatasetFromBlob(blob, mode = "r", options = {}) { return await Dataset(blob, mode, options); } async function DatasetFromArrayBuffer(buffer, mode = "r", options = {}) { return await Dataset(buffer, mode, options); } async function DatasetFromMemory(data, mode = "r", options = {}, filename) { if (filename) { return await netcdf4_3.NetCDF4.fromMemory(data, mode, options, filename); } return await Dataset(data, mode, options); } //# sourceMappingURL=index.js.map