UNPKG

@toreda/strong-types

Version:

Better TypeScript code in fewer lines.

1 lines 1.29 kB
{"version":3,"sources":["../src/int/make.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,QAAQ,CAAC;AAK3B;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,GAAG,CA6BpE","file":"make.d.ts","sourcesContent":["import {Int} from '../int';\nimport {Rules} from '../rules';\nimport {createType} from '../create/type';\nimport {initialValue} from '../initial/value';\n\n/**\n *\n * @param fallback\n * @param value\n * @returns\n *\n * @category Maths\n */\nexport function intMake(fallback: number, value?: number | null): Int {\n\tconst rules = new Rules();\n\trules.add().must.match.type.int();\n\n\tconst strong = createType<number>(fallback, initialValue(value), rules, 'Int');\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"]}