react-native-filament
Version:
A real-time physically based 3D rendering engine for React Native
65 lines (55 loc) • 2.24 kB
JavaScript
import { FilamentProxy } from '../native/FilamentProxy';
const FIBONACCI_LIMIT = 70;
export async function testHybridObject() {
// 1. Creation
console.log('Creating HybridObject...');
const hybridObject = FilamentProxy.createTestObject();
console.log('Created HybridObject!');
// 2. Logging the entire thing as JSON
console.log(hybridObject);
// 3. Int Getter & Setter
console.log(`Int: ${hybridObject.int}`);
hybridObject.int = 6723;
console.log(`New Int: ${hybridObject.int}`);
// 4. Enum Getter & Setter
console.log(`Enum: ${hybridObject.enum}`);
hybridObject.enum = 'second';
console.log(`New Enum: ${hybridObject.enum}`);
// 5. String Getter & Setter
console.log(`String: ${hybridObject.string}`);
hybridObject.string = 'new string value!';
console.log(`New String: ${hybridObject.string}`);
// 6. Nullable String Getter & Setter
console.log(`Nullable String: ${hybridObject.nullableString}`);
hybridObject.nullableString = 'now its not null!';
console.log(`New Nullable String: ${hybridObject.nullableString}`);
// 7. Testing multiple arguments and maps
const result = hybridObject.multipleArguments(5, true, 'hahah!');
console.log(`multipleArguments() -> ${JSON.stringify(result)}`);
// 8. Testing callbacks
hybridObject.sayHelloCallback(() => 'hello from JS!');
const getter = hybridObject.getIntGetter();
console.log(`Int getter: ${getter()}`);
// 9. Create a new one
const newObject = hybridObject.createNewHybridObject();
console.log(`Created new hybrid object!`, newObject);
// 10. Test Promises
console.log(`Calculating Fibonacci up to number ${FIBONACCI_LIMIT}...`);
const start = performance.now();
const fibonacci = await hybridObject.calculateFibonacciAsync(FIBONACCI_LIMIT);
const end = performance.now();
console.log(`Calculated Fibonacci for ${FIBONACCI_LIMIT} = ${fibonacci} (took ${(end - start).toFixed(0)}ms)`);
}
// @ts-expect-error
// eslint-disable-next-line @typescript-eslint/no-unused-vars
function fib(count) {
let prev = 0n;
let current = 1n;
for (let i = 2; i <= count; ++i) {
let next = prev + current;
prev = current;
current = next;
}
return current;
}
//# sourceMappingURL=TestHybridObject.js.map