@randajan/say 1.0.2 → 1.0.3
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/dist/cjs/index.cjs +0 -1
- package/dist/cjs/index.cjs.map +2 -2
- package/dist/esm/index.mjs +0 -1
- package/dist/esm/index.mjs.map +2 -2
- package/package.json +1 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -83,7 +83,6 @@ var Say = class _Say extends Function {
|
|
|
83
83
|
} else if (!defaultLang) {
|
|
84
84
|
defaultLang = this.defaultLang;
|
|
85
85
|
}
|
|
86
|
-
console.log({ defaultLang, langs, translations }, { ...this });
|
|
87
86
|
return new _Say({ defaultLang, langs, translations, parent: this });
|
|
88
87
|
}
|
|
89
88
|
has(phraseId, lang) {
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.js"],
|
|
4
|
-
"sourcesContent": ["import { solids } from \"@randajan/props\";\n\nconst makeLangIndex = (langs = []) => {\n const idx = {};\n for (let i = 0; i < langs.length; i++) idx[langs[i]] = i;\n return idx;\n};\n\nexport class Say extends Function {\n /**\n * @param {object} opts\n * @param {string[]} opts.langs\n * @param {Record<string, string[]>} opts.translations\n * @param {string[]} opts.defaultLang\n * @param {Say|null} opts.parent\n */\n constructor({ defaultLang = null, langs = [], translations = {}, parent = null } = {}) {\n super();\n\n langs = langs ?? [];\n translations = translations ?? {};\n defaultLang = defaultLang ?? langs[0];\n\n // Important: keep prototype = Say so instance methods work\n const _say = (...a) => _say.say(...a);\n\n solids(_say, {\n defaultLang,\n langs,\n langIndex: makeLangIndex(langs),\n translations,\n parent\n });\n\n return Object.setPrototypeOf(_say, new.target.prototype);\n }\n\n _lookupHere(phraseId, lang) {\n const i = this.langIndex[lang];\n if (i == null) { return; }\n const arr = this.translations?.[phraseId];\n if (!Array.isArray(arr)) { return; }\n return arr[i];\n }\n\n say(phraseId, lang) {\n const effectiveLang = lang ?? this.defaultLang;\n const here = this._lookupHere(phraseId, effectiveLang);\n\n if (here != null) { return here; }\n if (this.parent) { return this.parent.say(phraseId, effectiveLang); }\n\n throw new Error(`Phrase '${phraseId}' not found (lang '${effectiveLang}').`);\n }\n\n bindLang(lang) {\n return this.extend({defaultLang:lang});\n }\n\n extend({ defaultLang, langs, translations} = {}) {\n if (!langs) { langs = this.langs; }\n else if (!defaultLang) { defaultLang = this.defaultLang; }\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuB;AAEvB,IAAM,gBAAgB,CAAC,QAAQ,CAAC,MAAM;AAClC,QAAM,MAAM,CAAC;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAK,KAAI,MAAM,CAAC,CAAC,IAAI;AACvD,SAAO;AACX;AAEO,IAAM,MAAN,MAAM,aAAY,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,YAAY,EAAE,cAAc,MAAM,QAAQ,CAAC,GAAG,eAAe,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG;AACnF,UAAM;AAEN,YAAQ,SAAS,CAAC;AAClB,mBAAe,gBAAgB,CAAC;AAChC,kBAAc,eAAe,MAAM,CAAC;AAGpC,UAAM,OAAO,IAAI,MAAM,KAAK,IAAI,GAAG,CAAC;AAEpC,6BAAO,MAAM;AAAA,MACT;AAAA,MACA;AAAA,MACA,WAAW,cAAc,KAAK;AAAA,MAC9B;AAAA,MACA;AAAA,IACJ,CAAC;AAED,WAAO,OAAO,eAAe,MAAM,WAAW,SAAS;AAAA,EAC3D;AAAA,EAEA,YAAY,UAAU,MAAM;AACxB,UAAM,IAAI,KAAK,UAAU,IAAI;AAC7B,QAAI,KAAK,MAAM;AAAE;AAAA,IAAQ;AACzB,UAAM,MAAM,KAAK,eAAe,QAAQ;AACxC,QAAI,CAAC,MAAM,QAAQ,GAAG,GAAG;AAAE;AAAA,IAAQ;AACnC,WAAO,IAAI,CAAC;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU,MAAM;AAChB,UAAM,gBAAgB,QAAQ,KAAK;AACnC,UAAM,OAAO,KAAK,YAAY,UAAU,aAAa;AAErD,QAAI,QAAQ,MAAM;AAAE,aAAO;AAAA,IAAM;AACjC,QAAI,KAAK,QAAQ;AAAE,aAAO,KAAK,OAAO,IAAI,UAAU,aAAa;AAAA,IAAG;AAEpE,UAAM,IAAI,MAAM,WAAW,QAAQ,sBAAsB,aAAa,KAAK;AAAA,EAC/E;AAAA,EAEA,SAAS,MAAM;AACX,WAAO,KAAK,OAAO,EAAC,aAAY,KAAI,CAAC;AAAA,EACzC;AAAA,EAEA,OAAO,EAAE,aAAa,OAAO,aAAY,IAAI,CAAC,GAAG;AAC7C,QAAI,CAAC,OAAO;AAAE,cAAQ,KAAK;AAAA,IAAO,WACzB,CAAC,aAAa;AAAE,oBAAc,KAAK;AAAA,IAAa;
|
|
4
|
+
"sourcesContent": ["import { solids } from \"@randajan/props\";\n\nconst makeLangIndex = (langs = []) => {\n const idx = {};\n for (let i = 0; i < langs.length; i++) idx[langs[i]] = i;\n return idx;\n};\n\nexport class Say extends Function {\n /**\n * @param {object} opts\n * @param {string[]} opts.langs\n * @param {Record<string, string[]>} opts.translations\n * @param {string[]} opts.defaultLang\n * @param {Say|null} opts.parent\n */\n constructor({ defaultLang = null, langs = [], translations = {}, parent = null } = {}) {\n super();\n\n langs = langs ?? [];\n translations = translations ?? {};\n defaultLang = defaultLang ?? langs[0];\n\n // Important: keep prototype = Say so instance methods work\n const _say = (...a) => _say.say(...a);\n\n solids(_say, {\n defaultLang,\n langs,\n langIndex: makeLangIndex(langs),\n translations,\n parent\n });\n\n return Object.setPrototypeOf(_say, new.target.prototype);\n }\n\n _lookupHere(phraseId, lang) {\n const i = this.langIndex[lang];\n if (i == null) { return; }\n const arr = this.translations?.[phraseId];\n if (!Array.isArray(arr)) { return; }\n return arr[i];\n }\n\n say(phraseId, lang) {\n const effectiveLang = lang ?? this.defaultLang;\n const here = this._lookupHere(phraseId, effectiveLang);\n\n if (here != null) { return here; }\n if (this.parent) { return this.parent.say(phraseId, effectiveLang); }\n\n throw new Error(`Phrase '${phraseId}' not found (lang '${effectiveLang}').`);\n }\n\n bindLang(lang) {\n return this.extend({defaultLang:lang});\n }\n\n extend({ defaultLang, langs, translations} = {}) {\n if (!langs) { langs = this.langs; }\n else if (!defaultLang) { defaultLang = this.defaultLang; }\n return new Say({defaultLang, langs, translations, parent:this});\n }\n\n has(phraseId, lang) {\n try {\n this.say(phraseId, lang);\n return true;\n } catch {\n return false;\n }\n }\n\n sayOr(phraseId, fallback, lang) {\n try {\n return this.say(phraseId, lang);\n } catch {\n return fallback;\n }\n }\n}\n\nexport default Say;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuB;AAEvB,IAAM,gBAAgB,CAAC,QAAQ,CAAC,MAAM;AAClC,QAAM,MAAM,CAAC;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAK,KAAI,MAAM,CAAC,CAAC,IAAI;AACvD,SAAO;AACX;AAEO,IAAM,MAAN,MAAM,aAAY,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,YAAY,EAAE,cAAc,MAAM,QAAQ,CAAC,GAAG,eAAe,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG;AACnF,UAAM;AAEN,YAAQ,SAAS,CAAC;AAClB,mBAAe,gBAAgB,CAAC;AAChC,kBAAc,eAAe,MAAM,CAAC;AAGpC,UAAM,OAAO,IAAI,MAAM,KAAK,IAAI,GAAG,CAAC;AAEpC,6BAAO,MAAM;AAAA,MACT;AAAA,MACA;AAAA,MACA,WAAW,cAAc,KAAK;AAAA,MAC9B;AAAA,MACA;AAAA,IACJ,CAAC;AAED,WAAO,OAAO,eAAe,MAAM,WAAW,SAAS;AAAA,EAC3D;AAAA,EAEA,YAAY,UAAU,MAAM;AACxB,UAAM,IAAI,KAAK,UAAU,IAAI;AAC7B,QAAI,KAAK,MAAM;AAAE;AAAA,IAAQ;AACzB,UAAM,MAAM,KAAK,eAAe,QAAQ;AACxC,QAAI,CAAC,MAAM,QAAQ,GAAG,GAAG;AAAE;AAAA,IAAQ;AACnC,WAAO,IAAI,CAAC;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU,MAAM;AAChB,UAAM,gBAAgB,QAAQ,KAAK;AACnC,UAAM,OAAO,KAAK,YAAY,UAAU,aAAa;AAErD,QAAI,QAAQ,MAAM;AAAE,aAAO;AAAA,IAAM;AACjC,QAAI,KAAK,QAAQ;AAAE,aAAO,KAAK,OAAO,IAAI,UAAU,aAAa;AAAA,IAAG;AAEpE,UAAM,IAAI,MAAM,WAAW,QAAQ,sBAAsB,aAAa,KAAK;AAAA,EAC/E;AAAA,EAEA,SAAS,MAAM;AACX,WAAO,KAAK,OAAO,EAAC,aAAY,KAAI,CAAC;AAAA,EACzC;AAAA,EAEA,OAAO,EAAE,aAAa,OAAO,aAAY,IAAI,CAAC,GAAG;AAC7C,QAAI,CAAC,OAAO;AAAE,cAAQ,KAAK;AAAA,IAAO,WACzB,CAAC,aAAa;AAAE,oBAAc,KAAK;AAAA,IAAa;AACzD,WAAO,IAAI,KAAI,EAAC,aAAa,OAAO,cAAc,QAAO,KAAI,CAAC;AAAA,EAClE;AAAA,EAEA,IAAI,UAAU,MAAM;AAChB,QAAI;AACA,WAAK,IAAI,UAAU,IAAI;AACvB,aAAO;AAAA,IACX,QAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AAAA,EAEA,MAAM,UAAU,UAAU,MAAM;AAC5B,QAAI;AACA,aAAO,KAAK,IAAI,UAAU,IAAI;AAAA,IAClC,QAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;AAEA,IAAO,gBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -59,7 +59,6 @@ var Say = class _Say extends Function {
|
|
|
59
59
|
} else if (!defaultLang) {
|
|
60
60
|
defaultLang = this.defaultLang;
|
|
61
61
|
}
|
|
62
|
-
console.log({ defaultLang, langs, translations }, { ...this });
|
|
63
62
|
return new _Say({ defaultLang, langs, translations, parent: this });
|
|
64
63
|
}
|
|
65
64
|
has(phraseId, lang) {
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.js"],
|
|
4
|
-
"sourcesContent": ["import { solids } from \"@randajan/props\";\n\nconst makeLangIndex = (langs = []) => {\n const idx = {};\n for (let i = 0; i < langs.length; i++) idx[langs[i]] = i;\n return idx;\n};\n\nexport class Say extends Function {\n /**\n * @param {object} opts\n * @param {string[]} opts.langs\n * @param {Record<string, string[]>} opts.translations\n * @param {string[]} opts.defaultLang\n * @param {Say|null} opts.parent\n */\n constructor({ defaultLang = null, langs = [], translations = {}, parent = null } = {}) {\n super();\n\n langs = langs ?? [];\n translations = translations ?? {};\n defaultLang = defaultLang ?? langs[0];\n\n // Important: keep prototype = Say so instance methods work\n const _say = (...a) => _say.say(...a);\n\n solids(_say, {\n defaultLang,\n langs,\n langIndex: makeLangIndex(langs),\n translations,\n parent\n });\n\n return Object.setPrototypeOf(_say, new.target.prototype);\n }\n\n _lookupHere(phraseId, lang) {\n const i = this.langIndex[lang];\n if (i == null) { return; }\n const arr = this.translations?.[phraseId];\n if (!Array.isArray(arr)) { return; }\n return arr[i];\n }\n\n say(phraseId, lang) {\n const effectiveLang = lang ?? this.defaultLang;\n const here = this._lookupHere(phraseId, effectiveLang);\n\n if (here != null) { return here; }\n if (this.parent) { return this.parent.say(phraseId, effectiveLang); }\n\n throw new Error(`Phrase '${phraseId}' not found (lang '${effectiveLang}').`);\n }\n\n bindLang(lang) {\n return this.extend({defaultLang:lang});\n }\n\n extend({ defaultLang, langs, translations} = {}) {\n if (!langs) { langs = this.langs; }\n else if (!defaultLang) { defaultLang = this.defaultLang; }\n
|
|
5
|
-
"mappings": ";AAAA,SAAS,cAAc;AAEvB,IAAM,gBAAgB,CAAC,QAAQ,CAAC,MAAM;AAClC,QAAM,MAAM,CAAC;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAK,KAAI,MAAM,CAAC,CAAC,IAAI;AACvD,SAAO;AACX;AAEO,IAAM,MAAN,MAAM,aAAY,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,YAAY,EAAE,cAAc,MAAM,QAAQ,CAAC,GAAG,eAAe,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG;AACnF,UAAM;AAEN,YAAQ,SAAS,CAAC;AAClB,mBAAe,gBAAgB,CAAC;AAChC,kBAAc,eAAe,MAAM,CAAC;AAGpC,UAAM,OAAO,IAAI,MAAM,KAAK,IAAI,GAAG,CAAC;AAEpC,WAAO,MAAM;AAAA,MACT;AAAA,MACA;AAAA,MACA,WAAW,cAAc,KAAK;AAAA,MAC9B;AAAA,MACA;AAAA,IACJ,CAAC;AAED,WAAO,OAAO,eAAe,MAAM,WAAW,SAAS;AAAA,EAC3D;AAAA,EAEA,YAAY,UAAU,MAAM;AACxB,UAAM,IAAI,KAAK,UAAU,IAAI;AAC7B,QAAI,KAAK,MAAM;AAAE;AAAA,IAAQ;AACzB,UAAM,MAAM,KAAK,eAAe,QAAQ;AACxC,QAAI,CAAC,MAAM,QAAQ,GAAG,GAAG;AAAE;AAAA,IAAQ;AACnC,WAAO,IAAI,CAAC;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU,MAAM;AAChB,UAAM,gBAAgB,QAAQ,KAAK;AACnC,UAAM,OAAO,KAAK,YAAY,UAAU,aAAa;AAErD,QAAI,QAAQ,MAAM;AAAE,aAAO;AAAA,IAAM;AACjC,QAAI,KAAK,QAAQ;AAAE,aAAO,KAAK,OAAO,IAAI,UAAU,aAAa;AAAA,IAAG;AAEpE,UAAM,IAAI,MAAM,WAAW,QAAQ,sBAAsB,aAAa,KAAK;AAAA,EAC/E;AAAA,EAEA,SAAS,MAAM;AACX,WAAO,KAAK,OAAO,EAAC,aAAY,KAAI,CAAC;AAAA,EACzC;AAAA,EAEA,OAAO,EAAE,aAAa,OAAO,aAAY,IAAI,CAAC,GAAG;AAC7C,QAAI,CAAC,OAAO;AAAE,cAAQ,KAAK;AAAA,IAAO,WACzB,CAAC,aAAa;AAAE,oBAAc,KAAK;AAAA,IAAa;
|
|
4
|
+
"sourcesContent": ["import { solids } from \"@randajan/props\";\n\nconst makeLangIndex = (langs = []) => {\n const idx = {};\n for (let i = 0; i < langs.length; i++) idx[langs[i]] = i;\n return idx;\n};\n\nexport class Say extends Function {\n /**\n * @param {object} opts\n * @param {string[]} opts.langs\n * @param {Record<string, string[]>} opts.translations\n * @param {string[]} opts.defaultLang\n * @param {Say|null} opts.parent\n */\n constructor({ defaultLang = null, langs = [], translations = {}, parent = null } = {}) {\n super();\n\n langs = langs ?? [];\n translations = translations ?? {};\n defaultLang = defaultLang ?? langs[0];\n\n // Important: keep prototype = Say so instance methods work\n const _say = (...a) => _say.say(...a);\n\n solids(_say, {\n defaultLang,\n langs,\n langIndex: makeLangIndex(langs),\n translations,\n parent\n });\n\n return Object.setPrototypeOf(_say, new.target.prototype);\n }\n\n _lookupHere(phraseId, lang) {\n const i = this.langIndex[lang];\n if (i == null) { return; }\n const arr = this.translations?.[phraseId];\n if (!Array.isArray(arr)) { return; }\n return arr[i];\n }\n\n say(phraseId, lang) {\n const effectiveLang = lang ?? this.defaultLang;\n const here = this._lookupHere(phraseId, effectiveLang);\n\n if (here != null) { return here; }\n if (this.parent) { return this.parent.say(phraseId, effectiveLang); }\n\n throw new Error(`Phrase '${phraseId}' not found (lang '${effectiveLang}').`);\n }\n\n bindLang(lang) {\n return this.extend({defaultLang:lang});\n }\n\n extend({ defaultLang, langs, translations} = {}) {\n if (!langs) { langs = this.langs; }\n else if (!defaultLang) { defaultLang = this.defaultLang; }\n return new Say({defaultLang, langs, translations, parent:this});\n }\n\n has(phraseId, lang) {\n try {\n this.say(phraseId, lang);\n return true;\n } catch {\n return false;\n }\n }\n\n sayOr(phraseId, fallback, lang) {\n try {\n return this.say(phraseId, lang);\n } catch {\n return fallback;\n }\n }\n}\n\nexport default Say;\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,cAAc;AAEvB,IAAM,gBAAgB,CAAC,QAAQ,CAAC,MAAM;AAClC,QAAM,MAAM,CAAC;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAK,KAAI,MAAM,CAAC,CAAC,IAAI;AACvD,SAAO;AACX;AAEO,IAAM,MAAN,MAAM,aAAY,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,YAAY,EAAE,cAAc,MAAM,QAAQ,CAAC,GAAG,eAAe,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG;AACnF,UAAM;AAEN,YAAQ,SAAS,CAAC;AAClB,mBAAe,gBAAgB,CAAC;AAChC,kBAAc,eAAe,MAAM,CAAC;AAGpC,UAAM,OAAO,IAAI,MAAM,KAAK,IAAI,GAAG,CAAC;AAEpC,WAAO,MAAM;AAAA,MACT;AAAA,MACA;AAAA,MACA,WAAW,cAAc,KAAK;AAAA,MAC9B;AAAA,MACA;AAAA,IACJ,CAAC;AAED,WAAO,OAAO,eAAe,MAAM,WAAW,SAAS;AAAA,EAC3D;AAAA,EAEA,YAAY,UAAU,MAAM;AACxB,UAAM,IAAI,KAAK,UAAU,IAAI;AAC7B,QAAI,KAAK,MAAM;AAAE;AAAA,IAAQ;AACzB,UAAM,MAAM,KAAK,eAAe,QAAQ;AACxC,QAAI,CAAC,MAAM,QAAQ,GAAG,GAAG;AAAE;AAAA,IAAQ;AACnC,WAAO,IAAI,CAAC;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU,MAAM;AAChB,UAAM,gBAAgB,QAAQ,KAAK;AACnC,UAAM,OAAO,KAAK,YAAY,UAAU,aAAa;AAErD,QAAI,QAAQ,MAAM;AAAE,aAAO;AAAA,IAAM;AACjC,QAAI,KAAK,QAAQ;AAAE,aAAO,KAAK,OAAO,IAAI,UAAU,aAAa;AAAA,IAAG;AAEpE,UAAM,IAAI,MAAM,WAAW,QAAQ,sBAAsB,aAAa,KAAK;AAAA,EAC/E;AAAA,EAEA,SAAS,MAAM;AACX,WAAO,KAAK,OAAO,EAAC,aAAY,KAAI,CAAC;AAAA,EACzC;AAAA,EAEA,OAAO,EAAE,aAAa,OAAO,aAAY,IAAI,CAAC,GAAG;AAC7C,QAAI,CAAC,OAAO;AAAE,cAAQ,KAAK;AAAA,IAAO,WACzB,CAAC,aAAa;AAAE,oBAAc,KAAK;AAAA,IAAa;AACzD,WAAO,IAAI,KAAI,EAAC,aAAa,OAAO,cAAc,QAAO,KAAI,CAAC;AAAA,EAClE;AAAA,EAEA,IAAI,UAAU,MAAM;AAChB,QAAI;AACA,WAAK,IAAI,UAAU,IAAI;AACvB,aAAO;AAAA,IACX,QAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AAAA,EAEA,MAAM,UAAU,UAAU,MAAM;AAC5B,QAAI;AACA,aAAO,KAAK,IAAI,UAAU,IAAI;AAAA,IAClC,QAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;AAEA,IAAO,gBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|