UNPKG

tsinsim

Version:

An InSim library for Node.js (JavaScript runtime environment) with TypeScript support.

46 lines (45 loc) 1.34 kB
import "reflect-metadata"; const key = Symbol("format"); export const char = (length) => { return Reflect.metadata(key, { type: 'char', length }); }; export const byte = () => { return Reflect.metadata(key, { type: 'byte', length: 1 }); }; export const word = () => { return Reflect.metadata(key, { type: 'word', length: 2 }); }; export const short = () => { return Reflect.metadata(key, { type: 'short', length: 2 }); }; export const unsigned = () => { return Reflect.metadata(key, { type: 'unsigned', length: 4 }); }; export const int = () => { return Reflect.metadata(key, { type: 'int', length: 4 }); }; export const float = () => { return Reflect.metadata(key, { type: 'float', length: 4 }); }; export const vector = () => { return Reflect.metadata(key, { type: 'vector', length: 12 }); }; export const vec = () => { return Reflect.metadata(key, { type: 'vec', length: 12 }); }; export const getFormat = (target, propertyKey) => { return Reflect.getMetadata(key, target, propertyKey); }; class PacketHandler { all = {}; set(constructor) { this.all[constructor.name.replace('IS_', 'ISP_')] = constructor; } get(name) { return this.all[name]; } } export const Packets = new PacketHandler; export const define = (constructor) => { Packets.set(constructor); };