Revert bug fix in 1.2.1

This commit is contained in:
Ali Camarata 2023-04-04 21:16:18 -04:00
parent e0faeadcde
commit a4b07f8cee
2 changed files with 45 additions and 49 deletions

View file

@ -1,6 +1,6 @@
{ {
"name": "solar-spa", "name": "solar-spa",
"version": "1.2.3", "version": "1.2.4",
"description": "NREL Solar Position Algorithm (SPA) in WebAssembly", "description": "NREL Solar Position Algorithm (SPA) in WebAssembly",
"main": "solar-spa.js", "main": "solar-spa.js",
"types": "index.d.ts", "types": "index.d.ts",

View file

@ -1,4 +1,5 @@
const spaModuleFactory = require('./spa.js'); // solar-spa.js
const spaModule = require('./spa.js');
module.exports = function spa( module.exports = function spa(
date, date,
@ -9,58 +10,53 @@ module.exports = function spa(
pressure = 1013.25, pressure = 1013.25,
refraction = 0.5667 refraction = 0.5667
) { ) {
return new Promise((resolve, reject) => { return new Promise((resolve) => {
const spaModule = spaModuleFactory({ spaModule.onRuntimeInitialized = function () {
onRuntimeInitialized: () => { const spa_calculate = spaModule.cwrap(
const spa_calculate = spaModule.cwrap( 'spa_calculate_wrapper',
'spa_calculate_wrapper', 'number',
'number', [
[ 'number', 'number', 'number', 'number', 'number',
'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number',
'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number'
'number', 'number', 'number', 'number', 'number' ]
] );
);
const spa_free_result = spaModule.cwrap( const spa_free_result = spaModule.cwrap(
'spa_free_result', 'spa_free_result',
null, null,
['number'] ['number']
); );
const year = date.getFullYear(); const year = date.getFullYear();
const month = date.getMonth() + 1; const month = date.getMonth() + 1;
const day = date.getDate(); const day = date.getDate();
const hour = date.getHours(); const hour = date.getHours();
const minute = date.getMinutes(); const minute = date.getMinutes();
const second = date.getSeconds(); const second = date.getSeconds();
const timezone = -date.getTimezoneOffset() / 60; const timezone = -date.getTimezoneOffset() / 60;
const slope = 0; const slope = 0;
const azm_rotation = 0; const azm_rotation = 0;
const resultPtr = spa_calculate( const resultPtr = spa_calculate(
year, month, day, hour, minute, second, timezone, year, month, day, hour, minute, second, timezone,
latitude, longitude, elevation, pressure, temperature, latitude, longitude, elevation, pressure, temperature,
slope, azm_rotation, refraction slope, azm_rotation, refraction
); );
const result = { const result = {
zenith: spaModule.getValue(resultPtr, 'double'), zenith: spaModule.getValue(resultPtr, 'double'),
azimuth: spaModule.getValue(resultPtr + 8, 'double'), azimuth: spaModule.getValue(resultPtr + 8, 'double'),
incidence: spaModule.getValue(resultPtr + 16, 'double'), incidence: spaModule.getValue(resultPtr + 16, 'double'),
sunrise: spaModule.getValue(resultPtr + 24, 'double'), sunrise: spaModule.getValue(resultPtr + 24, 'double'),
sunset: spaModule.getValue(resultPtr + 32, 'double'), sunset: spaModule.getValue(resultPtr + 32, 'double'),
solar_noon: spaModule.getValue(resultPtr + 40, 'double'), solar_noon: spaModule.getValue(resultPtr + 40, 'double'),
sun_transit_alt: spaModule.getValue(resultPtr + 48, 'double'), sun_transit_alt: spaModule.getValue(resultPtr + 48, 'double'),
}; };
spa_free_result(resultPtr); spa_free_result(resultPtr);
resolve(result); resolve(result);
}, };
});
if (spaModule.calledRun) {
spaModule.onRuntimeInitialized();
}
}); });
}; };