diff --git a/package.json b/package.json index eb8096a..20f5365 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ts-osc", - "version": "0.2.4", + "version": "0.2.5", "description": "Fully TypeScript-native OSC Client based on osc-min", "main": "./lib/index.js", "types": "./lib/index.d.ts", diff --git a/src/index.ts b/src/index.ts index 14d58ea..a6817fa 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,3 @@ export * from './oscClient'; export * from './oscServer'; -export { OSCType, OSCArgumentType } from 'osc-min'; +export { OSCType, OSCArgumentType } from './types'; diff --git a/src/oscClient.ts b/src/oscClient.ts index d51c7ac..b585737 100644 --- a/src/oscClient.ts +++ b/src/oscClient.ts @@ -1,5 +1,6 @@ import * as dgram from 'dgram'; -import { OSCArgument, OSCType, toBuffer, OSCArgumentType } from 'osc-min'; +import { toBuffer } from 'osc-min'; +import { OSCArgument, OSCType, OSCArgumentType } from './types'; import { EventEmitter } from 'events'; /** diff --git a/src/oscServer.ts b/src/oscServer.ts index 3f87397..36b892a 100644 --- a/src/oscServer.ts +++ b/src/oscServer.ts @@ -1,6 +1,7 @@ import EventEmitter = require('events'); import * as dgram from 'dgram'; -import { OSCType, OSCArgumentType, fromBuffer } from 'osc-min'; +import { fromBuffer } from 'osc-min'; +import { OSCType, OSCArgumentType } from './types'; export interface ReceivedOSCMessage { address: string; diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..df1c10a --- /dev/null +++ b/src/types.ts @@ -0,0 +1,31 @@ +export interface OSCArgument { + type: T; + value: OSCArgumentType; +} + +export enum OSCType { + String = 'string', + Float = 'float', + Integer = 'integer', + Blob = 'blob', + True = 'true', + False = 'false', + Null = 'null', + Bang = 'bang', + Timetag = 'timetag', + Array = 'array', +} + +export type OSCArgumentType = T extends OSCType.String + ? string + : T extends OSCType.Float | OSCType.Integer | OSCType.Timetag + ? number + : T extends OSCType.True + ? true + : T extends OSCType.False + ? false + : T extends OSCType.Blob + ? Buffer + : T extends OSCType.Array + ? OSCArgument[] + : null; diff --git a/src/types/osc-min.d.ts b/src/types/osc-min.d.ts index 3c2673c..c1b49b8 100644 --- a/src/types/osc-min.d.ts +++ b/src/types/osc-min.d.ts @@ -1,16 +1,5 @@ declare module 'osc-min' { - export enum OSCType { - String = 'string', - Float = 'float', - Integer = 'integer', - Blob = 'blob', - True = 'true', - False = 'false', - Null = 'null', - Bang = 'bang', - Timetag = 'timetag', - Array = 'array', - } + import { OSCType, OSCArgumentType, OSCArgument } from '../types'; export type OSCTimeTag = [number, number]; export type OutgoingOSCArgsTypes = (OSCArgument | Buffer | boolean | string | number)[]; @@ -31,25 +20,6 @@ declare module 'osc-min' { elements: (OSCMessage | OSCBundle)[]; } - export type OSCArgumentType = T extends OSCType.String - ? string - : T extends OSCType.Float | OSCType.Integer | OSCType.Timetag - ? number - : T extends OSCType.True - ? true - : T extends OSCType.False - ? false - : T extends OSCType.Blob - ? Buffer - : T extends OSCType.Array - ? OSCArgument[] - : null; - - export interface OSCArgument { - type: T; - value: OSCArgumentType; - } - type OSCPacket = OSCMessage | OSCBundle; export function fromBuffer(buffer: Buffer, strict?: boolean): OSCPacket;