@neurodevs/node-lsl 4.1.1 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { ChannelFormat } from './consts';
1
2
  import { LslSample } from './Liblsl';
2
3
  export default class LslOutletImpl implements LslOutlet {
3
4
  static Class?: new (options: LslOutletOptions) => LslOutlet;
@@ -10,18 +11,8 @@ export default class LslOutletImpl implements LslOutlet {
10
11
  pushSample(sample: LslSample): void;
11
12
  private getPushMethod;
12
13
  private lookupChannelFormat;
13
- private assertValidMaxBufferred;
14
- private assertValidChunkSize;
15
- private assertValidChannelFormat;
16
- private assertValidSampleRate;
17
- private assertValidChannelCount;
18
- private isGreaterThanZero;
19
- private isPositiveInteger;
20
- private isPositiveIntegerOrZero;
21
14
  private get lsl();
22
15
  }
23
- declare const CHANNEL_FORMATS: readonly ["undefined", "float32", "double64", "string", "int32", "int16", "int8", "int64"];
24
- export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
25
16
  export interface LslOutlet {
26
17
  destroy(): void;
27
18
  pushSample(sample: LslSample): void;
@@ -38,4 +29,3 @@ export interface LslOutletOptions {
38
29
  chunkSize: number;
39
30
  maxBuffered: number;
40
31
  }
41
- export {};
@@ -15,6 +15,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  const schema_1 = require("@sprucelabs/schema");
18
+ const assertions_1 = require("./assertions");
19
+ const consts_1 = require("./consts");
18
20
  const Liblsl_1 = __importDefault(require("./Liblsl"));
19
21
  class LslOutletImpl {
20
22
  constructor(options) {
@@ -34,11 +36,11 @@ class LslOutletImpl {
34
36
  const _a = this
35
37
  .options, { chunkSize, maxBuffered, channelNames } = _a, streamInfoOptions = __rest(_a, ["chunkSize", "maxBuffered", "channelNames"]);
36
38
  const channelCount = channelNames.length;
37
- this.assertValidChannelCount(channelCount);
38
- this.assertValidSampleRate(sampleRate);
39
- this.assertValidChannelFormat(channelFormat);
40
- this.assertValidChunkSize(chunkSize);
41
- this.assertValidMaxBufferred(maxBuffered);
39
+ (0, assertions_1.assertValidChannelCount)(channelCount);
40
+ (0, assertions_1.assertValidSampleRate)(sampleRate);
41
+ (0, assertions_1.assertValidChannelFormat)(channelFormat);
42
+ (0, assertions_1.assertValidChunkSize)(chunkSize);
43
+ (0, assertions_1.assertValidMaxBufferred)(maxBuffered);
42
44
  delete streamInfoOptions.manufacturer;
43
45
  delete streamInfoOptions.unit;
44
46
  this.streamInfo = this.lsl.createStreamInfo(Object.assign(Object.assign({}, streamInfoOptions), { channelCount, channelFormat: this.lookupChannelFormat(channelFormat) }));
@@ -85,76 +87,11 @@ class LslOutletImpl {
85
87
  return method;
86
88
  }
87
89
  lookupChannelFormat(channelFormat) {
88
- return CHANNEL_FORMATS.indexOf(channelFormat);
89
- }
90
- assertValidMaxBufferred(maxBuffered) {
91
- if (!this.isPositiveIntegerOrZero(maxBuffered)) {
92
- throw new schema_1.SchemaError({
93
- code: 'INVALID_PARAMETERS',
94
- parameters: ['maxBuffered'],
95
- friendlyMessage: 'Max buffered must be a positive integer or zero.',
96
- });
97
- }
98
- }
99
- assertValidChunkSize(chunkSize) {
100
- if (!this.isPositiveIntegerOrZero(chunkSize)) {
101
- throw new schema_1.SchemaError({
102
- code: 'INVALID_PARAMETERS',
103
- parameters: ['chunkSize'],
104
- friendlyMessage: 'Chunk size must be a positive integer or zero.',
105
- });
106
- }
107
- }
108
- assertValidChannelFormat(channelFormat) {
109
- const validFormats = CHANNEL_FORMATS;
110
- if (validFormats.indexOf(channelFormat) === -1) {
111
- throw new schema_1.SchemaError({
112
- code: 'INVALID_PARAMETERS',
113
- parameters: ['channelFormat'],
114
- friendlyMessage: 'Channel format must be a valid format.',
115
- });
116
- }
117
- }
118
- assertValidSampleRate(sampleRate) {
119
- if (!this.isGreaterThanZero(sampleRate)) {
120
- throw new schema_1.SchemaError({
121
- code: 'INVALID_PARAMETERS',
122
- parameters: ['sampleRate'],
123
- friendlyMessage: 'Sample rate must be a positive number or zero.',
124
- });
125
- }
126
- }
127
- assertValidChannelCount(channelCount) {
128
- if (!this.isPositiveInteger(channelCount)) {
129
- throw new schema_1.SchemaError({
130
- code: 'INVALID_PARAMETERS',
131
- parameters: ['channelNames'],
132
- friendlyMessage: 'channelNames must have 1 or more labels.',
133
- });
134
- }
135
- }
136
- isGreaterThanZero(value) {
137
- return value >= 0;
138
- }
139
- isPositiveInteger(value) {
140
- return Number.isInteger(value) && value > 0;
141
- }
142
- isPositiveIntegerOrZero(value) {
143
- return Number.isInteger(value) && value >= 0;
90
+ return consts_1.CHANNEL_FORMATS.indexOf(channelFormat);
144
91
  }
145
92
  get lsl() {
146
93
  return Liblsl_1.default.getInstance();
147
94
  }
148
95
  }
149
96
  exports.default = LslOutletImpl;
150
- const CHANNEL_FORMATS = [
151
- 'undefined',
152
- 'float32',
153
- 'double64',
154
- 'string',
155
- 'int32',
156
- 'int16',
157
- 'int8',
158
- 'int64',
159
- ];
160
97
  //# sourceMappingURL=LslOutlet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../src/LslOutlet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../src/LslOutlet.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const TEST_CHANNEL_FORMATS: string[];
1
+ export declare const TEST_CHANNEL_FORMATS: readonly ["undefined", "float32", "double64", "string", "int32", "int16", "int8", "int64"];
2
2
  export type TestChannelFormat = (typeof TEST_CHANNEL_FORMATS)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../../src/__tests__/support/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG;IACnC,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACP,CAAA"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../../src/__tests__/support/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG;IACnC,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { ChannelFormat } from './consts';
2
+ export declare function assertValidMaxBufferred(maxBuffered: number): void;
3
+ export declare function assertValidChunkSize(chunkSize: number): void;
4
+ export declare function assertValidChannelFormat(channelFormat: ChannelFormat): void;
5
+ export declare function assertValidSampleRate(sampleRate: number): void;
6
+ export declare function assertValidChannelCount(channelCount: number): void;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertValidChannelCount = exports.assertValidSampleRate = exports.assertValidChannelFormat = exports.assertValidChunkSize = exports.assertValidMaxBufferred = void 0;
4
+ const schema_1 = require("@sprucelabs/schema");
5
+ const consts_1 = require("./consts");
6
+ const validations_1 = require("./validations");
7
+ function assertValidMaxBufferred(maxBuffered) {
8
+ if (!(0, validations_1.isPositiveIntegerOrZero)(maxBuffered)) {
9
+ throw new schema_1.SchemaError({
10
+ code: 'INVALID_PARAMETERS',
11
+ parameters: ['maxBuffered'],
12
+ friendlyMessage: 'Max buffered must be a positive integer or zero.',
13
+ });
14
+ }
15
+ }
16
+ exports.assertValidMaxBufferred = assertValidMaxBufferred;
17
+ function assertValidChunkSize(chunkSize) {
18
+ if (!(0, validations_1.isPositiveIntegerOrZero)(chunkSize)) {
19
+ throw new schema_1.SchemaError({
20
+ code: 'INVALID_PARAMETERS',
21
+ parameters: ['chunkSize'],
22
+ friendlyMessage: 'Chunk size must be a positive integer or zero.',
23
+ });
24
+ }
25
+ }
26
+ exports.assertValidChunkSize = assertValidChunkSize;
27
+ function assertValidChannelFormat(channelFormat) {
28
+ if (!(0, validations_1.isStringInArray)(channelFormat, consts_1.CHANNEL_FORMATS)) {
29
+ throw new schema_1.SchemaError({
30
+ code: 'INVALID_PARAMETERS',
31
+ parameters: ['channelFormat'],
32
+ friendlyMessage: `Invalid `,
33
+ });
34
+ }
35
+ }
36
+ exports.assertValidChannelFormat = assertValidChannelFormat;
37
+ function assertValidSampleRate(sampleRate) {
38
+ if (!(0, validations_1.isGreaterThanOrEqualToZero)(sampleRate)) {
39
+ throw new schema_1.SchemaError({
40
+ code: 'INVALID_PARAMETERS',
41
+ parameters: ['sampleRate'],
42
+ friendlyMessage: 'Sample rate must be a positive number or zero.',
43
+ });
44
+ }
45
+ }
46
+ exports.assertValidSampleRate = assertValidSampleRate;
47
+ function assertValidChannelCount(channelCount) {
48
+ if (!(0, validations_1.isPositiveInteger)(channelCount)) {
49
+ throw new schema_1.SchemaError({
50
+ code: 'INVALID_PARAMETERS',
51
+ parameters: ['channelNames'],
52
+ friendlyMessage: 'channelNames must have 1 or more labels.',
53
+ });
54
+ }
55
+ }
56
+ exports.assertValidChannelCount = assertValidChannelCount;
57
+ //# sourceMappingURL=assertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../src/assertions.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAChD,qCAAyD;AACzD,+CAKsB;AAEtB,SAAgB,uBAAuB,CAAC,WAAmB;IAC1D,IAAI,CAAC,IAAA,qCAAuB,EAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,oBAAW,CAAC;YACrB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,aAAa,CAAC;YAC3B,eAAe,EAAE,kDAAkD;SACnE,CAAC,CAAA;IACH,CAAC;AACF,CAAC;AARD,0DAQC;AAED,SAAgB,oBAAoB,CAAC,SAAiB;IACrD,IAAI,CAAC,IAAA,qCAAuB,EAAC,SAAS,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,oBAAW,CAAC;YACrB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,WAAW,CAAC;YACzB,eAAe,EAAE,gDAAgD;SACjE,CAAC,CAAA;IACH,CAAC;AACF,CAAC;AARD,oDAQC;AAED,SAAgB,wBAAwB,CAAC,aAA4B;IACpE,IAAI,CAAC,IAAA,6BAAe,EAAC,aAAa,EAAE,wBAAe,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,oBAAW,CAAC;YACrB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,eAAe,EAAE,UAAU;SAC3B,CAAC,CAAA;IACH,CAAC;AACF,CAAC;AARD,4DAQC;AAED,SAAgB,qBAAqB,CAAC,UAAkB;IACvD,IAAI,CAAC,IAAA,wCAA0B,EAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,oBAAW,CAAC;YACrB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,YAAY,CAAC;YAC1B,eAAe,EAAE,gDAAgD;SACjE,CAAC,CAAA;IACH,CAAC;AACF,CAAC;AARD,sDAQC;AAED,SAAgB,uBAAuB,CAAC,YAAoB;IAC3D,IAAI,CAAC,IAAA,+BAAiB,EAAC,YAAY,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,oBAAW,CAAC;YACrB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,cAAc,CAAC;YAC5B,eAAe,EAAE,0CAA0C;SAC3D,CAAC,CAAA;IACH,CAAC;AACF,CAAC;AARD,0DAQC"}
@@ -0,0 +1,2 @@
1
+ export declare const CHANNEL_FORMATS: readonly ["undefined", "float32", "double64", "string", "int32", "int16", "int8", "int64"];
2
+ export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CHANNEL_FORMATS = void 0;
4
+ exports.CHANNEL_FORMATS = [
5
+ 'undefined',
6
+ 'float32',
7
+ 'double64',
8
+ 'string',
9
+ 'int32',
10
+ 'int16',
11
+ 'int8',
12
+ 'int64',
13
+ ];
14
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;IAC9B,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACE,CAAA"}
@@ -0,0 +1,4 @@
1
+ export declare function isStringInArray(value: string, array: readonly string[]): boolean;
2
+ export declare function isGreaterThanOrEqualToZero(value: number): boolean;
3
+ export declare function isPositiveInteger(value: number): boolean;
4
+ export declare function isPositiveIntegerOrZero(value: number): boolean;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPositiveIntegerOrZero = exports.isPositiveInteger = exports.isGreaterThanOrEqualToZero = exports.isStringInArray = void 0;
4
+ function isStringInArray(value, array) {
5
+ return array.indexOf(value) !== -1;
6
+ }
7
+ exports.isStringInArray = isStringInArray;
8
+ function isGreaterThanOrEqualToZero(value) {
9
+ return value >= 0;
10
+ }
11
+ exports.isGreaterThanOrEqualToZero = isGreaterThanOrEqualToZero;
12
+ function isPositiveInteger(value) {
13
+ return Number.isInteger(value) && value > 0;
14
+ }
15
+ exports.isPositiveInteger = isPositiveInteger;
16
+ function isPositiveIntegerOrZero(value) {
17
+ return Number.isInteger(value) && value >= 0;
18
+ }
19
+ exports.isPositiveIntegerOrZero = isPositiveIntegerOrZero;
20
+ //# sourceMappingURL=validations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validations.js","sourceRoot":"","sources":["../src/validations.ts"],"names":[],"mappings":";;;AAAA,SAAgB,eAAe,CAAC,KAAa,EAAE,KAAwB;IACtE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AACnC,CAAC;AAFD,0CAEC;AAED,SAAgB,0BAA0B,CAAC,KAAa;IACvD,OAAO,KAAK,IAAI,CAAC,CAAA;AAClB,CAAC;AAFD,gEAEC;AAED,SAAgB,iBAAiB,CAAC,KAAa;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;AAC5C,CAAC;AAFD,8CAEC;AAED,SAAgB,uBAAuB,CAAC,KAAa;IACpD,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAC7C,CAAC;AAFD,0DAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neurodevs/node-lsl",
3
- "version": "4.1.1",
3
+ "version": "4.1.2",
4
4
  "main": "build/index.js",
5
5
  "repository": {
6
6
  "type": "git",
package/src/LslOutlet.ts CHANGED
@@ -1,4 +1,12 @@
1
- import { SchemaError, assertOptions } from '@sprucelabs/schema'
1
+ import { assertOptions } from '@sprucelabs/schema'
2
+ import {
3
+ assertValidChannelCount,
4
+ assertValidChannelFormat,
5
+ assertValidChunkSize,
6
+ assertValidMaxBufferred,
7
+ assertValidSampleRate,
8
+ } from './assertions'
9
+ import { CHANNEL_FORMATS, ChannelFormat } from './consts'
2
10
  import LiblslImpl, {
3
11
  BoundOutlet,
4
12
  BoundStreamInfo,
@@ -33,11 +41,11 @@ export default class LslOutletImpl implements LslOutlet {
33
41
 
34
42
  const channelCount = channelNames.length
35
43
 
36
- this.assertValidChannelCount(channelCount)
37
- this.assertValidSampleRate(sampleRate)
38
- this.assertValidChannelFormat(channelFormat)
39
- this.assertValidChunkSize(chunkSize)
40
- this.assertValidMaxBufferred(maxBuffered)
44
+ assertValidChannelCount(channelCount)
45
+ assertValidSampleRate(sampleRate)
46
+ assertValidChannelFormat(channelFormat)
47
+ assertValidChunkSize(chunkSize)
48
+ assertValidMaxBufferred(maxBuffered)
41
49
 
42
50
  delete streamInfoOptions.manufacturer
43
51
  delete streamInfoOptions.unit
@@ -74,7 +82,6 @@ export default class LslOutletImpl implements LslOutlet {
74
82
 
75
83
  public pushSample(sample: LslSample): void {
76
84
  const timestamp = this.lsl.localClock()
77
-
78
85
  const method = this.getPushMethod()
79
86
 
80
87
  this.lsl[method]({
@@ -106,87 +113,11 @@ export default class LslOutletImpl implements LslOutlet {
106
113
  return CHANNEL_FORMATS.indexOf(channelFormat)
107
114
  }
108
115
 
109
- private assertValidMaxBufferred(maxBuffered: number): void {
110
- if (!this.isPositiveIntegerOrZero(maxBuffered)) {
111
- throw new SchemaError({
112
- code: 'INVALID_PARAMETERS',
113
- parameters: ['maxBuffered'],
114
- friendlyMessage: 'Max buffered must be a positive integer or zero.',
115
- })
116
- }
117
- }
118
-
119
- private assertValidChunkSize(chunkSize: number): void {
120
- if (!this.isPositiveIntegerOrZero(chunkSize)) {
121
- throw new SchemaError({
122
- code: 'INVALID_PARAMETERS',
123
- parameters: ['chunkSize'],
124
- friendlyMessage: 'Chunk size must be a positive integer or zero.',
125
- })
126
- }
127
- }
128
-
129
- private assertValidChannelFormat(channelFormat: ChannelFormat): void {
130
- const validFormats = CHANNEL_FORMATS
131
- if (validFormats.indexOf(channelFormat) === -1) {
132
- throw new SchemaError({
133
- code: 'INVALID_PARAMETERS',
134
- parameters: ['channelFormat'],
135
- friendlyMessage: 'Channel format must be a valid format.',
136
- })
137
- }
138
- }
139
-
140
- private assertValidSampleRate(sampleRate: number): void {
141
- if (!this.isGreaterThanZero(sampleRate)) {
142
- throw new SchemaError({
143
- code: 'INVALID_PARAMETERS',
144
- parameters: ['sampleRate'],
145
- friendlyMessage: 'Sample rate must be a positive number or zero.',
146
- })
147
- }
148
- }
149
-
150
- private assertValidChannelCount(channelCount: number): void {
151
- if (!this.isPositiveInteger(channelCount)) {
152
- throw new SchemaError({
153
- code: 'INVALID_PARAMETERS',
154
- parameters: ['channelNames'],
155
- friendlyMessage: 'channelNames must have 1 or more labels.',
156
- })
157
- }
158
- }
159
-
160
- private isGreaterThanZero(value: number): boolean {
161
- return value >= 0
162
- }
163
-
164
- private isPositiveInteger(value: number): boolean {
165
- return Number.isInteger(value) && value > 0
166
- }
167
-
168
- private isPositiveIntegerOrZero(value: number): boolean {
169
- return Number.isInteger(value) && value >= 0
170
- }
171
-
172
116
  private get lsl(): Liblsl {
173
117
  return LiblslImpl.getInstance()
174
118
  }
175
119
  }
176
120
 
177
- const CHANNEL_FORMATS = [
178
- 'undefined',
179
- 'float32',
180
- 'double64',
181
- 'string',
182
- 'int32',
183
- 'int16',
184
- 'int8',
185
- 'int64',
186
- ] as const
187
-
188
- export type ChannelFormat = (typeof CHANNEL_FORMATS)[number]
189
-
190
121
  export interface LslOutlet {
191
122
  destroy(): void
192
123
  pushSample(sample: LslSample): void
@@ -6,8 +6,8 @@ import AbstractSpruceTest, {
6
6
  generateId,
7
7
  } from '@sprucelabs/test-utils'
8
8
  import LiblslImpl, { LslSample } from '../../Liblsl'
9
- import LslOutlet, { ChannelFormat, LslOutletOptions } from '../../LslOutlet'
10
- import { TEST_CHANNEL_FORMATS } from '../support/consts'
9
+ import LslOutlet, { LslOutletOptions } from '../../LslOutlet'
10
+ import { TEST_CHANNEL_FORMATS, TestChannelFormat } from '../support/consts'
11
11
  import generateRandomOutletOptions from '../support/generateRandomOutletOptions'
12
12
  import { SpyLiblsl } from '../support/SpyLiblsl'
13
13
 
@@ -86,7 +86,7 @@ export default class LslOutletTest extends AbstractSpruceTest {
86
86
  @test()
87
87
  protected static async supportsAllKnownChannelFormats() {
88
88
  for (const format of TEST_CHANNEL_FORMATS) {
89
- this.Outlet({ channelFormat: format as ChannelFormat })
89
+ this.Outlet({ channelFormat: format as TestChannelFormat })
90
90
  }
91
91
  }
92
92
 
@@ -7,6 +7,6 @@ export const TEST_CHANNEL_FORMATS = [
7
7
  'int16',
8
8
  'int8',
9
9
  'int64',
10
- ]
10
+ ] as const
11
11
 
12
12
  export type TestChannelFormat = (typeof TEST_CHANNEL_FORMATS)[number]
@@ -0,0 +1,58 @@
1
+ import { SchemaError } from '@sprucelabs/schema'
2
+ import { CHANNEL_FORMATS, ChannelFormat } from './consts'
3
+ import {
4
+ isGreaterThanOrEqualToZero,
5
+ isPositiveInteger,
6
+ isPositiveIntegerOrZero,
7
+ isStringInArray,
8
+ } from './validations'
9
+
10
+ export function assertValidMaxBufferred(maxBuffered: number): void {
11
+ if (!isPositiveIntegerOrZero(maxBuffered)) {
12
+ throw new SchemaError({
13
+ code: 'INVALID_PARAMETERS',
14
+ parameters: ['maxBuffered'],
15
+ friendlyMessage: 'Max buffered must be a positive integer or zero.',
16
+ })
17
+ }
18
+ }
19
+
20
+ export function assertValidChunkSize(chunkSize: number): void {
21
+ if (!isPositiveIntegerOrZero(chunkSize)) {
22
+ throw new SchemaError({
23
+ code: 'INVALID_PARAMETERS',
24
+ parameters: ['chunkSize'],
25
+ friendlyMessage: 'Chunk size must be a positive integer or zero.',
26
+ })
27
+ }
28
+ }
29
+
30
+ export function assertValidChannelFormat(channelFormat: ChannelFormat): void {
31
+ if (!isStringInArray(channelFormat, CHANNEL_FORMATS)) {
32
+ throw new SchemaError({
33
+ code: 'INVALID_PARAMETERS',
34
+ parameters: ['channelFormat'],
35
+ friendlyMessage: `Invalid `,
36
+ })
37
+ }
38
+ }
39
+
40
+ export function assertValidSampleRate(sampleRate: number): void {
41
+ if (!isGreaterThanOrEqualToZero(sampleRate)) {
42
+ throw new SchemaError({
43
+ code: 'INVALID_PARAMETERS',
44
+ parameters: ['sampleRate'],
45
+ friendlyMessage: 'Sample rate must be a positive number or zero.',
46
+ })
47
+ }
48
+ }
49
+
50
+ export function assertValidChannelCount(channelCount: number): void {
51
+ if (!isPositiveInteger(channelCount)) {
52
+ throw new SchemaError({
53
+ code: 'INVALID_PARAMETERS',
54
+ parameters: ['channelNames'],
55
+ friendlyMessage: 'channelNames must have 1 or more labels.',
56
+ })
57
+ }
58
+ }
package/src/consts.ts ADDED
@@ -0,0 +1,12 @@
1
+ export const CHANNEL_FORMATS = [
2
+ 'undefined',
3
+ 'float32',
4
+ 'double64',
5
+ 'string',
6
+ 'int32',
7
+ 'int16',
8
+ 'int8',
9
+ 'int64',
10
+ ] as const
11
+
12
+ export type ChannelFormat = (typeof CHANNEL_FORMATS)[number]
@@ -0,0 +1,15 @@
1
+ export function isStringInArray(value: string, array: readonly string[]) {
2
+ return array.indexOf(value) !== -1
3
+ }
4
+
5
+ export function isGreaterThanOrEqualToZero(value: number): boolean {
6
+ return value >= 0
7
+ }
8
+
9
+ export function isPositiveInteger(value: number): boolean {
10
+ return Number.isInteger(value) && value > 0
11
+ }
12
+
13
+ export function isPositiveIntegerOrZero(value: number): boolean {
14
+ return Number.isInteger(value) && value >= 0
15
+ }