@jackens/nnn 2026.2.6 → 2026.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/nnn.d.ts +7 -7
- package/nnn.js +2 -4
- package/package.json +1 -1
- package/readme.md +17 -13
package/nnn.d.ts
CHANGED
|
@@ -312,16 +312,16 @@ export declare const js_on_parse: (handlers: Record<PropertyKey, Function>, text
|
|
|
312
312
|
* Different languages have different plural rules. The `Intl.PluralRules` API provides
|
|
313
313
|
* locale-aware plural category selection. Possible categories are:
|
|
314
314
|
*
|
|
315
|
-
* - `zero
|
|
316
|
-
* - `one
|
|
317
|
-
* - `two
|
|
318
|
-
* - `few
|
|
319
|
-
* - `many
|
|
320
|
-
* - `other
|
|
315
|
+
* - `zero`: for zero items (used in some languages like Arabic, Latvian)
|
|
316
|
+
* - `one`: for singular (e.g., 1 item)
|
|
317
|
+
* - `two`: for dual (used in some languages like Arabic, Hebrew)
|
|
318
|
+
* - `few`: for small plurals (e.g., 2-4 in Polish)
|
|
319
|
+
* - `many`: for larger plurals (e.g., 5-21 in Polish)
|
|
320
|
+
* - `other`: fallback category (used by all languages)
|
|
321
321
|
*
|
|
322
322
|
* @param locale
|
|
323
323
|
*
|
|
324
|
-
* A BCP 47 language tag (e.g.,
|
|
324
|
+
* A BCP 47 language tag (e.g., `pl`, `en`).
|
|
325
325
|
*
|
|
326
326
|
* @param forms
|
|
327
327
|
*
|
package/nnn.js
CHANGED
|
@@ -224,10 +224,8 @@ var js_on_parse = (handlers, text) => JSON.parse(text, (key, value) => {
|
|
|
224
224
|
return value;
|
|
225
225
|
});
|
|
226
226
|
// src/nnn/new_noun_form.ts
|
|
227
|
-
var
|
|
228
|
-
|
|
229
|
-
return (value) => forms[plural_rules.select(value)] ?? forms.other ?? "";
|
|
230
|
-
};
|
|
227
|
+
var PLURAL_RULES = {};
|
|
228
|
+
var new_noun_form = (locale, forms) => (value) => forms[(PLURAL_RULES[locale] ??= new Intl.PluralRules(locale)).select(value)] ?? forms.other ?? "";
|
|
231
229
|
// src/nnn/omit_pick.ts
|
|
232
230
|
var pick = (ref, keys) => Object.fromEntries(Object.entries(ref).filter(([key]) => keys.includes(key)));
|
|
233
231
|
var omit = (ref, keys) => Object.fromEntries(Object.entries(ref).filter(([key]) => !keys.includes(key)));
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -918,16 +918,16 @@ Creates a function that returns the appropriate noun form based on a numeric val
|
|
|
918
918
|
Different languages have different plural rules. The `Intl.PluralRules` API provides
|
|
919
919
|
locale-aware plural category selection. Possible categories are:
|
|
920
920
|
|
|
921
|
-
- `zero
|
|
922
|
-
- `one
|
|
923
|
-
- `two
|
|
924
|
-
- `few
|
|
925
|
-
- `many
|
|
926
|
-
- `other
|
|
921
|
+
- `zero`: for zero items (used in some languages like Arabic, Latvian)
|
|
922
|
+
- `one`: for singular (e.g., 1 item)
|
|
923
|
+
- `two`: for dual (used in some languages like Arabic, Hebrew)
|
|
924
|
+
- `few`: for small plurals (e.g., 2-4 in Polish)
|
|
925
|
+
- `many`: for larger plurals (e.g., 5-21 in Polish)
|
|
926
|
+
- `other`: fallback category (used by all languages)
|
|
927
927
|
|
|
928
928
|
#### locale
|
|
929
929
|
|
|
930
|
-
A BCP 47 language tag (e.g.,
|
|
930
|
+
A BCP 47 language tag (e.g., `pl`, `en`).
|
|
931
931
|
|
|
932
932
|
#### forms
|
|
933
933
|
|
|
@@ -1276,17 +1276,17 @@ vivify(ref).one.two[3][4] = 1234
|
|
|
1276
1276
|
|
|
1277
1277
|
expect(ref).to.deep.equal({ one: { two: [, , , [, , , , 1234]] } })
|
|
1278
1278
|
|
|
1279
|
-
vivify(ref).one.two[3][5] =
|
|
1279
|
+
vivify(ref).one.two[3][5] = 1235
|
|
1280
1280
|
|
|
1281
|
-
expect(ref).to.deep.equal({ one: { two: [, , , [, , , , 1234,
|
|
1281
|
+
expect(ref).to.deep.equal({ one: { two: [, , , [, , , , 1234, 1235]] } })
|
|
1282
1282
|
|
|
1283
|
-
vivify(ref).one.two[1] =
|
|
1283
|
+
vivify(ref).one.two[1] = 121
|
|
1284
1284
|
|
|
1285
|
-
expect(ref).to.deep.equal({ one: { two: [,
|
|
1285
|
+
expect(ref).to.deep.equal({ one: { two: [, 121, , [, , , , 1234, 1235]] } })
|
|
1286
1286
|
|
|
1287
|
-
vivify(ref).one.two =
|
|
1287
|
+
vivify(ref).one.two = 12
|
|
1288
1288
|
|
|
1289
|
-
expect(ref).to.deep.equal({ one: { two:
|
|
1289
|
+
expect(ref).to.deep.equal({ one: { two: 12 } })
|
|
1290
1290
|
|
|
1291
1291
|
vivify(ref).one.two = undefined
|
|
1292
1292
|
|
|
@@ -1296,6 +1296,10 @@ delete vivify(ref).one.two
|
|
|
1296
1296
|
|
|
1297
1297
|
expect(ref).to.deep.equal({ one: {} })
|
|
1298
1298
|
|
|
1299
|
+
delete vivify(ref).one.two.three
|
|
1300
|
+
|
|
1301
|
+
expect(ref).to.deep.equal({ one: { two: {} } })
|
|
1302
|
+
|
|
1299
1303
|
vivify(ref).one.two.three.four
|
|
1300
1304
|
|
|
1301
1305
|
expect(ref).to.deep.equal({ one: { two: { three: { four: {} } } } })
|