Put the submit_sm summary back on the function it describes and tidy the review nits
This commit is contained in:
@@ -19,8 +19,8 @@ export type IncomingRequestsOptions = {
|
|||||||
maxReassembly?: number | undefined;
|
maxReassembly?: number | undefined;
|
||||||
onRequest?: OnRequest | undefined;
|
onRequest?: OnRequest | undefined;
|
||||||
reassemblyTimeout?: number | undefined;
|
reassemblyTimeout?: number | undefined;
|
||||||
smsIdFormat?: SmsIdFormat | undefined;
|
|
||||||
session: Session;
|
session: Session;
|
||||||
|
smsIdFormat?: SmsIdFormat | undefined;
|
||||||
systemId?: string | undefined;
|
systemId?: string | undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -83,7 +83,6 @@ export function submitSmParams(
|
|||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Puts a message on the wire as one submit_sm per segment. */
|
|
||||||
/** Nothing goes on the wire until the whole message fits: a half-sent message bills twice. */
|
/** Nothing goes on the wire until the whole message fits: a half-sent message bills twice. */
|
||||||
function checkSegments(allowed: number, segments: number): Error | undefined {
|
function checkSegments(allowed: number, segments: number): Error | undefined {
|
||||||
if (!Number.isInteger(allowed) || allowed < 1 || allowed > maxSegments) {
|
if (!Number.isInteger(allowed) || allowed < 1 || allowed > maxSegments) {
|
||||||
@@ -125,6 +124,7 @@ function collectSent(
|
|||||||
return failure ? { err: failure, pduObjs, smsIds } : { pduObjs, smsIds };
|
return failure ? { err: failure, pduObjs, smsIds } : { pduObjs, smsIds };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Puts a message on the wire as one submit_sm per segment. */
|
||||||
export async function submitSms(deps: SendSmsDeps, sms: SendSmsOptions): Promise<SendSmsResult> {
|
export async function submitSms(deps: SendSmsDeps, sms: SendSmsOptions): Promise<SendSmsResult> {
|
||||||
const allowed = sms.maxSegments ?? maxSegments;
|
const allowed = sms.maxSegments ?? maxSegments;
|
||||||
const encoding = sms.encoding ?? detect(sms.message);
|
const encoding = sms.encoding ?? detect(sms.message);
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ export type SmsIdNotation = keyof typeof notations;
|
|||||||
/** The notation per place the peer writes an id. An omitted place is left as it arrived. */
|
/** The notation per place the peer writes an id. An omitted place is left as it arrived. */
|
||||||
export type SmsIdFormat = Partial<Record<typeof places[number], SmsIdNotation | undefined>>;
|
export type SmsIdFormat = Partial<Record<typeof places[number], SmsIdNotation | undefined>>;
|
||||||
|
|
||||||
export const smsIdNotations: string[] = Object.keys(notations);
|
export const smsIdNotations: readonly string[] = Object.keys(notations);
|
||||||
|
|
||||||
export const smsIdPlaces: readonly string[] = places;
|
export const smsIdPlaces: readonly string[] = places;
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -104,13 +104,15 @@ describe('README: Client', () => {
|
|||||||
closeAfter(t, session);
|
closeAfter(t, session);
|
||||||
|
|
||||||
const reported = once<Dlr>(resolve => { session.on('dlr', resolve); });
|
const reported = once<Dlr>(resolve => { session.on('dlr', resolve); });
|
||||||
const { smsIds } = await session.sendSms({
|
const { err: sendErr, smsIds } = await session.sendSms({
|
||||||
dlr: true,
|
dlr: true,
|
||||||
from: '46701113311',
|
from: '46701113311',
|
||||||
message: 'Hello world',
|
message: 'Hello world',
|
||||||
to: '46709771337',
|
to: '46709771337',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
assert.equal(sendErr, undefined);
|
||||||
|
assert.equal(smsIds.length, 1);
|
||||||
// The generated ids the server answers with read as no notation, so they arrive untouched.
|
// The generated ids the server answers with read as no notation, so they arrive untouched.
|
||||||
assert.equal((await reported).smsId, smsIds[0]);
|
assert.equal((await reported).smsId, smsIds[0]);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -878,7 +878,6 @@ describe('message id notation', () => {
|
|||||||
|
|
||||||
assert.ok(checked.err instanceof Error);
|
assert.ok(checked.err instanceof Error);
|
||||||
assert.match(checked.err.message, /smsIdFormat\.receipt/);
|
assert.match(checked.err.message, /smsIdFormat\.receipt/);
|
||||||
// The shape todo.md sketched, which a caller without types would otherwise pass unnoticed.
|
|
||||||
assert.ok(checkSessionOptions({ smsIdFormat: 'hex' }).err instanceof Error);
|
assert.ok(checkSessionOptions({ smsIdFormat: 'hex' }).err instanceof Error);
|
||||||
assert.match(
|
assert.match(
|
||||||
checkSessionOptions({ smsIdFormat: { receipts: 'decimal' } }).err?.message ?? '',
|
checkSessionOptions({ smsIdFormat: { receipts: 'decimal' } }).err?.message ?? '',
|
||||||
|
|||||||
Reference in New Issue
Block a user