New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@bodar/totallylazy

Package Overview
Dependencies
Maintainers
2
Versions
310
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bodar/totallylazy - npm Package Compare versions

Comparing version 0.445.288 to 0.446.289

1

money/currencies.js

@@ -345,2 +345,3 @@ "use strict";

"symbols": [
"LE",
"£"

@@ -347,0 +348,0 @@ ]

@@ -20,2 +20,8 @@ import { Money } from "./money";

export declare function findDecimalSeparator(isoCurrency: string, amount: string): AllowedDecimalSeparators;
export interface ImplicitMoneyParserOptions {
currency: string;
locale?: string;
strategy?: MatchStrategy<string>;
}
export declare function implicitMoneyParser({ currency, locale, strategy }: ImplicitMoneyParserOptions): Parser<Money>;
//# sourceMappingURL=flexible-parsing.d.ts.map

32

money/flexible-parsing.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.findDecimalSeparator = exports.flexibleMoneyParser = exports.FlexibleMoneyParser = exports.flexibleParse = void 0;
exports.implicitMoneyParser = exports.findDecimalSeparator = exports.flexibleMoneyParser = exports.FlexibleMoneyParser = exports.flexibleParse = void 0;
const tslib_1 = require("tslib");

@@ -13,2 +13,3 @@ const money_1 = require("./money");

const lazy_1 = require("../lazy");
const functions_1 = require("../functions");
function flexibleParse(value, locale = 'en', options) {

@@ -66,10 +67,2 @@ return new FlexibleMoneyParser(locale, options).parse(value);

exports.flexibleMoneyParser = flexibleMoneyParser;
function isDecimalSeparator(value) {
return value === '.' || value === ',' || value === '٫';
}
function decimalSeparator(value) {
if (isDecimalSeparator(value))
return value;
throw new Error(`Invalid decimal separator${value}`);
}
function flip(value) {

@@ -91,3 +84,3 @@ return value === "." ? "," : ".";

}
return decimalSeparator(lastSeparator);
return parsing_1.decimalSeparator(lastSeparator);
}

@@ -97,5 +90,22 @@ const uniqueSeparators = arrays_1.unique(separators);

return flip(lastSeparator);
return decimalSeparator(lastSeparator);
return parsing_1.decimalSeparator(lastSeparator);
}
exports.findDecimalSeparator = findDecimalSeparator;
class ImplicitMoneyParser {
constructor(currency, locale, parser = new parsing_1.NumberParser(amount => functions_1.get(() => findDecimalSeparator(currency, amount), parsing_1.inferDecimalSeparator(locale)), locale)) {
this.currency = currency;
this.parser = parser;
}
parse(value) {
const amount = this.parser.parse(value);
return { currency: this.currency, amount };
}
parseAll(value) {
return this.parser.parseAll(value).map(amount => ({ amount, currency: this.currency }));
}
}
function implicitMoneyParser({ currency, locale = 'en', strategy = parsing_1.infer(locale) }) {
return new ImplicitMoneyParser(money_1.CurrencySymbols.get(locale).parse(currency, strategy), locale);
}
exports.implicitMoneyParser = implicitMoneyParser;
//# sourceMappingURL=flexible-parsing.js.map
{
"name": "@bodar/totallylazy",
"version": "0.445.288",
"version": "0.446.289",
"description": "Totallylazy",

@@ -5,0 +5,0 @@ "repository": "git@github.com:bodar/totallylazy.js.git",

@@ -103,2 +103,4 @@ import { NamedMatch, NamedRegExp } from "./characters";

export declare type AllowedDecimalSeparators = '.' | ',' | '٫';
export declare function isDecimalSeparator(value: any): value is AllowedDecimalSeparators;
export declare function decimalSeparator(value: any): AllowedDecimalSeparators;
export declare class NumberParser implements Parser<number> {

@@ -109,3 +111,3 @@ private decimalSeparator;

readonly globalNumberPattern: NamedRegExp;
constructor(decimalSeparator: AllowedDecimalSeparators, locale: string);
constructor(decimalSeparator: (amount: string) => AllowedDecimalSeparators, locale: string);
parse(value: string): number;

@@ -117,4 +119,8 @@ parseAll(value: string): number[];

}
export declare function numberParser(decimalSeparator: AllowedDecimalSeparators, locale?: string): NumberParser;
export declare type Locale = string;
export declare function numberParser(): Parser<number>;
export declare function numberParser(decimalSeparatorOrLocale: AllowedDecimalSeparators | Locale): Parser<number>;
export declare function numberParser(decimalSeparator: AllowedDecimalSeparators, locale: Locale): Parser<number>;
export declare function inferDecimalSeparator(locale: string): AllowedDecimalSeparators;
export declare function numberOf(value: string): number;
//# sourceMappingURL=parsing.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.numberOf = exports.numberParser = exports.NumberParser = exports.separatorsOf = exports.mapIgnoreError = exports.numberPattern = exports.Spaces = exports.digits = exports.numberFormatter = exports.Numerals = exports.atBoundaryOnly = exports.cleanValue = exports.extraDelimiters = exports.boundaryDelimiters = exports.CachingParser = exports.all = exports.AllParser = exports.parsers = exports.or = exports.OrParser = exports.infer = exports.prefer = exports.uniqueMatch = exports.DatumLookup = exports.IdentityParser = exports.mappingParser = exports.MappingParser = exports.preProcess = exports.PreProcessor = exports.namedRegexParser = exports.NamedRegexParser = void 0;
exports.numberOf = exports.inferDecimalSeparator = exports.numberParser = exports.NumberParser = exports.decimalSeparator = exports.isDecimalSeparator = exports.separatorsOf = exports.mapIgnoreError = exports.numberPattern = exports.Spaces = exports.digits = exports.numberFormatter = exports.Numerals = exports.atBoundaryOnly = exports.cleanValue = exports.extraDelimiters = exports.boundaryDelimiters = exports.CachingParser = exports.all = exports.AllParser = exports.parsers = exports.or = exports.OrParser = exports.infer = exports.prefer = exports.uniqueMatch = exports.DatumLookup = exports.IdentityParser = exports.mappingParser = exports.MappingParser = exports.preProcess = exports.PreProcessor = exports.namedRegexParser = exports.NamedRegexParser = void 0;
const tslib_1 = require("tslib");

@@ -287,2 +287,12 @@ const characters_1 = require("./characters");

exports.separatorsOf = separatorsOf;
function isDecimalSeparator(value) {
return value && typeof value === "string" && value === '.' || value === ',' || value === '٫';
}
exports.isDecimalSeparator = isDecimalSeparator;
function decimalSeparator(value) {
if (isDecimalSeparator(value))
return value;
throw new Error(`Invalid decimal separator${value}`);
}
exports.decimalSeparator = decimalSeparator;
class NumberParser {

@@ -303,18 +313,18 @@ constructor(decimalSeparator, locale) {

}
parseSingle(value) {
parseSingle(value, decimalSeparator = this.decimalSeparator(value)) {
const separators = separatorsOf(value);
if (separators.length === 0)
return this.numberOf(value);
return this.numberOf(value, decimalSeparator);
const lastSeparator = separators[separators.length - 1];
const groupSeparators = lastSeparator === this.decimalSeparator ? separators.slice(0, separators.length - 1) : separators;
if (groupSeparators.indexOf(this.decimalSeparator) !== -1)
const groupSeparators = lastSeparator === decimalSeparator ? separators.slice(0, separators.length - 1) : separators;
if (groupSeparators.indexOf(decimalSeparator) !== -1)
throw new Error(`Unable to parse '${value}'`);
if (arrays_1.unique(groupSeparators).length > 1)
throw new Error(`Unable to parse '${value}'`);
return this.numberOf(value);
return this.numberOf(value, decimalSeparator);
}
convert(value) {
convert(value, decimalSeparator) {
const numerals = Numerals.get(this.locale);
return characters_1.characters(value).map(c => {
if (c === this.decimalSeparator)
if (c === decimalSeparator)
return '.';

@@ -329,4 +339,4 @@ if (c === '-')

}
numberOf(value) {
const text = this.convert(value);
numberOf(value, decimalSeparator) {
const text = this.convert(value, decimalSeparator);
const result = numberOf(text);

@@ -340,6 +350,14 @@ if (isNaN(result)) {

exports.NumberParser = NumberParser;
function numberParser(decimalSeparator, locale = 'en') {
return new NumberParser(decimalSeparator, locale);
function numberParser(decimalSeparatorOrLocale, locale = 'en') {
if (!decimalSeparatorOrLocale)
return numberParser(locale);
if (isDecimalSeparator(decimalSeparatorOrLocale))
return new NumberParser(ignore => decimalSeparatorOrLocale, locale);
return numberParser(inferDecimalSeparator(decimalSeparatorOrLocale), decimalSeparatorOrLocale);
}
exports.numberParser = numberParser;
function inferDecimalSeparator(locale) {
return functions_1.get(() => decimalSeparator(new Intl.NumberFormat(locale).formatToParts(.1).find(e => e.type === 'decimal').value), '.');
}
exports.inferDecimalSeparator = inferDecimalSeparator;
function numberOf(value) {

@@ -346,0 +364,0 @@ if (!value || value.trim().length === 0)

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc