UNPKG

netcdf4-wasm

Version:

NetCDF4 library compiled to WebAssembly with TypeScript bindings

62 lines 3.12 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.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; } }); // 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 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