初始化
This commit is contained in:
111
uni_modules/UniDevTools/node_modules/@intlify/runtime/dist/runtime.esm-bundler.js
generated
vendored
Normal file
111
uni_modules/UniDevTools/node_modules/@intlify/runtime/dist/runtime.esm-bundler.js
generated
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
/*!
|
||||
* @intlify/runtime v9.1.9
|
||||
* (c) 2021 kazuya kawaguchi
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
import { isNumber, isObject, isString, isFunction, isPlainObject, toDisplayString } from '@intlify/shared';
|
||||
|
||||
const DEFAULT_MODIFIER = (str) => str;
|
||||
const DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line
|
||||
const DEFAULT_MESSAGE_DATA_TYPE = 'text';
|
||||
const DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');
|
||||
const DEFAULT_INTERPOLATE = toDisplayString;
|
||||
function pluralDefault(choice, choicesLength) {
|
||||
choice = Math.abs(choice);
|
||||
if (choicesLength === 2) {
|
||||
// prettier-ignore
|
||||
return choice
|
||||
? choice > 1
|
||||
? 1
|
||||
: 0
|
||||
: 1;
|
||||
}
|
||||
return choice ? Math.min(choice, 2) : 0;
|
||||
}
|
||||
function getPluralIndex(options) {
|
||||
// prettier-ignore
|
||||
const index = isNumber(options.pluralIndex)
|
||||
? options.pluralIndex
|
||||
: -1;
|
||||
// prettier-ignore
|
||||
return options.named && (isNumber(options.named.count) || isNumber(options.named.n))
|
||||
? isNumber(options.named.count)
|
||||
? options.named.count
|
||||
: isNumber(options.named.n)
|
||||
? options.named.n
|
||||
: index
|
||||
: index;
|
||||
}
|
||||
function normalizeNamed(pluralIndex, props) {
|
||||
if (!props.count) {
|
||||
props.count = pluralIndex;
|
||||
}
|
||||
if (!props.n) {
|
||||
props.n = pluralIndex;
|
||||
}
|
||||
}
|
||||
function createMessageContext(options = {}) {
|
||||
const locale = options.locale;
|
||||
const pluralIndex = getPluralIndex(options);
|
||||
const pluralRule = isObject(options.pluralRules) &&
|
||||
isString(locale) &&
|
||||
isFunction(options.pluralRules[locale])
|
||||
? options.pluralRules[locale]
|
||||
: pluralDefault;
|
||||
const orgPluralRule = isObject(options.pluralRules) &&
|
||||
isString(locale) &&
|
||||
isFunction(options.pluralRules[locale])
|
||||
? pluralDefault
|
||||
: undefined;
|
||||
const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];
|
||||
const _list = options.list || [];
|
||||
const list = (index) => _list[index];
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const _named = options.named || {};
|
||||
isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);
|
||||
const named = (key) => _named[key];
|
||||
// TODO: need to design resolve message function?
|
||||
function message(key) {
|
||||
// prettier-ignore
|
||||
const msg = isFunction(options.messages)
|
||||
? options.messages(key)
|
||||
: isObject(options.messages)
|
||||
? options.messages[key]
|
||||
: false;
|
||||
return !msg
|
||||
? options.parent
|
||||
? options.parent.message(key) // resolve from parent messages
|
||||
: DEFAULT_MESSAGE
|
||||
: msg;
|
||||
}
|
||||
const _modifier = (name) => options.modifiers
|
||||
? options.modifiers[name]
|
||||
: DEFAULT_MODIFIER;
|
||||
const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)
|
||||
? options.processor.normalize
|
||||
: DEFAULT_NORMALIZE;
|
||||
const interpolate = isPlainObject(options.processor) &&
|
||||
isFunction(options.processor.interpolate)
|
||||
? options.processor.interpolate
|
||||
: DEFAULT_INTERPOLATE;
|
||||
const type = isPlainObject(options.processor) && isString(options.processor.type)
|
||||
? options.processor.type
|
||||
: DEFAULT_MESSAGE_DATA_TYPE;
|
||||
const ctx = {
|
||||
["list" /* LIST */]: list,
|
||||
["named" /* NAMED */]: named,
|
||||
["plural" /* PLURAL */]: plural,
|
||||
["linked" /* LINKED */]: (key, modifier) => {
|
||||
// TODO: should check `key`
|
||||
const msg = message(key)(ctx);
|
||||
return isString(modifier) ? _modifier(modifier)(msg) : msg;
|
||||
},
|
||||
["message" /* MESSAGE */]: message,
|
||||
["type" /* TYPE */]: type,
|
||||
["interpolate" /* INTERPOLATE */]: interpolate,
|
||||
["normalize" /* NORMALIZE */]: normalize
|
||||
};
|
||||
return ctx;
|
||||
}
|
||||
|
||||
export { DEFAULT_MESSAGE_DATA_TYPE, createMessageContext };
|
||||
Reference in New Issue
Block a user