UNPKG

@toreda/strong-types

Version:

Better TypeScript code in fewer lines.

1 lines 1.39 kB
{"version":3,"sources":["../src/uint/make.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAI7B;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CA+BtE","file":"make.d.ts","sourcesContent":["import {Rules} from '../rules';\nimport {UInt} from '../uint';\nimport {createType} from '../create/type';\nimport {initialValue} from '../initial/value';\n\n/**\n * Create new strong unsigned integer.\n * @param fallback\n * @param initial\n * @returns\n *\n * @category Maths\n */\nexport function uIntMake(fallback: number, value?: number | null): UInt {\n\tconst rules = new Rules<number>();\n\n\trules.add().must.match.type.int();\n\trules.add().must.be.greaterThanOrEqual(0);\n\n\tconst strong = createType<number>(fallback, initialValue(value), rules, 'UInt');\n\n\treturn Object.assign(strong, {\n\t\tincrement: () => {\n\t\t\treturn strong._data.add(1);\n\t\t},\n\t\tdecrement: () => {\n\t\t\treturn strong._data.add(-1);\n\t\t},\n\t\tmul: (amt: number) => {\n\t\t\treturn strong._data.mul(amt);\n\t\t},\n\t\tpow: (exponent: number) => {\n\t\t\treturn strong._data.pow(exponent);\n\t\t},\n\t\tdiv: (amt: number) => {\n\t\t\treturn strong._data.div(amt);\n\t\t},\n\t\tadd: (amt: number) => {\n\t\t\treturn strong._data.add(amt);\n\t\t},\n\t\tsub: (amt: number) => {\n\t\t\treturn strong._data.add(amt * -1);\n\t\t}\n\t});\n}\n"]}