netcdf4-wasm
Version:
NetCDF4 library compiled to WebAssembly with TypeScript bindings
62 lines • 3.12 kB
JavaScript
;
// 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