INNER CODE UNIT · TypeScript
charStorage
prisma/prisma · packages/1-framework/2-authoring/ids/src/index.ts:24
function charStorage(length: number): GeneratedStorage {
return { type: GENERATED_CHAR_TYPE, typeParams: { length } };
}
function nanoidStorage(params?: Record<string, unknown>): GeneratedStorage {
const rawSize = params?.['size'];
if (rawSize === undefined) {
return charStorage(21);
}
if (typeof rawSize !== 'number' || !Number.isInteger(rawSize) || rawSize < 2 || rawSize > 255) {
throw contractError(
'CONTRACT.ARGUMENT_INVALID',
'nanoid size must be an integer between 2 and 255',
{ meta: { helperPath: 'nanoid', paramName: 'size', received: rawSize } },
);
}
return charStorage(rawSize);
}