@i18never/shared
Advanced tools
Comparing version 1.1.6 to 1.1.7
@@ -8,2 +8,4 @@ import type { Tags } from './visitors'; | ||
}; | ||
export declare const supportExts: readonly [".vue", ".js", ".ts", ".mjs", ".mts", ".jsx", ".tsx", ".pug", ".jade"]; | ||
export type SupportExt = (typeof supportExts)[number]; | ||
export declare function parseString(str: string): KeyWithTags; | ||
@@ -10,0 +12,0 @@ export declare function getSdk(uri?: string): { |
@@ -5,2 +5,3 @@ export * from './graphql'; | ||
export * from './options'; | ||
export * from './plugin'; | ||
export { getSdk } from './helpers'; |
@@ -109,2 +109,13 @@ import gql from 'graphql-tag'; | ||
const supportExts = [ | ||
'.vue', | ||
'.js', | ||
'.ts', | ||
'.mjs', | ||
'.mts', | ||
'.jsx', | ||
'.tsx', | ||
'.pug', | ||
'.jade', | ||
]; | ||
function parseString(str) { | ||
@@ -271,2 +282,92 @@ const matches = str.match(parseRegexp); | ||
export { CreateVersionDocument, ImportDeclaration, MemberExpression, ObjectProperty, QueryOrCreateDictsDocument, StringLiteral, TSTypeLiteral, TagFragmentDoc, TemplateLiteral, Text, TranslationFragmentDoc, defaultConfigFile, getLoc, getSdk, getSourceByLoc, initOptions, isIgnore, isString, matched, options, parseRegexp, parseString, setOptions }; | ||
/****************************************************************************** | ||
Copyright (c) Microsoft Corporation. | ||
Permission to use, copy, modify, and/or distribute this software for any | ||
purpose with or without fee is hereby granted. | ||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */ | ||
/* global Reflect, Promise, SuppressedError, Symbol */ | ||
function __awaiter(thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
} | ||
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { | ||
var e = new Error(message); | ||
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; | ||
}; | ||
function generateScript(version, options) { | ||
const { langKey = 'ksc_lang', storageType = 'cookie' } = options; | ||
let lang; | ||
switch (storageType) { | ||
case 'cookie': | ||
// lang = `document.cookie.replace(/(?:(?:^|.*;\\s*)${langKey}\\s*\=\\s*([^;]*).*$)|^.*$/, "$1");`; | ||
// @reference: https://stackoverflow.com/questions/10730362/get-cookie-by-name?page=1&tab=scoredesc | ||
lang = `('; '+document.cookie).split('; ${langKey}=').pop().split(';').shift() || 'zh'`; | ||
break; | ||
case 'localStorage': | ||
case 'sessionStorage': | ||
lang = `${storageType}.getItem('${langKey}')`; | ||
break; | ||
default: | ||
throw new Error(`storageType: ${storageType} is not supported`); | ||
} | ||
return ` | ||
var lang = ${lang}; | ||
document.write('<scr'+'ipt src="//i18never.ksyun.com/dict/'+lang+'/${version}"></scr'+'ipt>'); | ||
`; | ||
} | ||
function queryVersion(keys) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const sdk = getSdk(); | ||
const { getVerionId: data } = yield sdk.CreateVersion({ | ||
source: 'i18never', | ||
values: sortKeys(keys), | ||
}); | ||
return data.Id; | ||
}); | ||
} | ||
function sortKeys(keys) { | ||
return sortBy(keys.map(({ key, tags }) => { | ||
return { | ||
key, | ||
tags: tags | ||
? sortBy(Object.keys(tags).map((language) => { | ||
const name = tags[language]; | ||
return { language, name }; | ||
}), 'language') | ||
: undefined, | ||
}; | ||
}), 'key'); | ||
} | ||
function sortBy(list, key) { | ||
return list.sort((a, b) => { | ||
if (a[key] < b[key]) { | ||
return -1; | ||
} | ||
else if (a[key] > b[key]) { | ||
return 1; | ||
} | ||
else { | ||
return 0; | ||
} | ||
}); | ||
} | ||
export { CreateVersionDocument, ImportDeclaration, MemberExpression, ObjectProperty, QueryOrCreateDictsDocument, StringLiteral, TSTypeLiteral, TagFragmentDoc, TemplateLiteral, Text, TranslationFragmentDoc, defaultConfigFile, generateScript, getLoc, getSdk, getSourceByLoc, initOptions, isIgnore, isString, matched, options, parseRegexp, parseString, queryVersion, setOptions, supportExts }; |
'use strict'; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
var gql = require('graphql-tag'); | ||
@@ -11,6 +9,6 @@ var t = require('@babel/types'); | ||
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } | ||
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } | ||
function _interopNamespace(e) { | ||
if (e && e.__esModule) return e; | ||
function _interopNamespaceCompat(e) { | ||
if (e && typeof e === 'object' && 'default' in e) return e; | ||
var n = Object.create(null); | ||
@@ -28,12 +26,12 @@ if (e) { | ||
} | ||
n["default"] = e; | ||
n.default = e; | ||
return Object.freeze(n); | ||
} | ||
var gql__default = /*#__PURE__*/_interopDefaultLegacy(gql); | ||
var t__namespace = /*#__PURE__*/_interopNamespace(t); | ||
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); | ||
var path__default = /*#__PURE__*/_interopDefaultLegacy(path); | ||
var gql__default = /*#__PURE__*/_interopDefaultCompat(gql); | ||
var t__namespace = /*#__PURE__*/_interopNamespaceCompat(t); | ||
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs); | ||
var path__default = /*#__PURE__*/_interopDefaultCompat(path); | ||
const TagFragmentDoc = gql__default["default"] ` | ||
const TagFragmentDoc = gql__default.default ` | ||
fragment Tag on Tag { | ||
@@ -44,3 +42,3 @@ name | ||
`; | ||
const TranslationFragmentDoc = gql__default["default"] ` | ||
const TranslationFragmentDoc = gql__default.default ` | ||
fragment Translation on Translation { | ||
@@ -53,3 +51,3 @@ language | ||
${TagFragmentDoc}`; | ||
const QueryOrCreateDictsDocument = gql__default["default"] ` | ||
const QueryOrCreateDictsDocument = gql__default.default ` | ||
query QueryOrCreateDicts($source: String!, $values: [ValueArg!]!) { | ||
@@ -64,3 +62,3 @@ dicts(source: $source, values: $values) { | ||
${TranslationFragmentDoc}`; | ||
const CreateVersionDocument = gql__default["default"] ` | ||
const CreateVersionDocument = gql__default.default ` | ||
query CreateVersion($source: String!, $values: [ValueArg!]!) { | ||
@@ -126,7 +124,7 @@ getVerionId(source: $source, values: $values) { | ||
while (currentDir !== '/') { | ||
const file = path__default["default"].join(currentDir, defaultConfigFile); | ||
if (fs__default["default"].existsSync(file)) { | ||
const file = path__default.default.join(currentDir, defaultConfigFile); | ||
if (fs__default.default.existsSync(file)) { | ||
return require(file); | ||
} | ||
currentDir = path__default["default"].dirname(currentDir); | ||
currentDir = path__default.default.dirname(currentDir); | ||
} | ||
@@ -144,2 +142,13 @@ } | ||
const supportExts = [ | ||
'.vue', | ||
'.js', | ||
'.ts', | ||
'.mjs', | ||
'.mts', | ||
'.jsx', | ||
'.tsx', | ||
'.pug', | ||
'.jade', | ||
]; | ||
function parseString(str) { | ||
@@ -306,2 +315,92 @@ const matches = str.match(exports.parseRegexp); | ||
/****************************************************************************** | ||
Copyright (c) Microsoft Corporation. | ||
Permission to use, copy, modify, and/or distribute this software for any | ||
purpose with or without fee is hereby granted. | ||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */ | ||
/* global Reflect, Promise, SuppressedError, Symbol */ | ||
function __awaiter(thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
} | ||
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { | ||
var e = new Error(message); | ||
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; | ||
}; | ||
function generateScript(version, options) { | ||
const { langKey = 'ksc_lang', storageType = 'cookie' } = options; | ||
let lang; | ||
switch (storageType) { | ||
case 'cookie': | ||
// lang = `document.cookie.replace(/(?:(?:^|.*;\\s*)${langKey}\\s*\=\\s*([^;]*).*$)|^.*$/, "$1");`; | ||
// @reference: https://stackoverflow.com/questions/10730362/get-cookie-by-name?page=1&tab=scoredesc | ||
lang = `('; '+document.cookie).split('; ${langKey}=').pop().split(';').shift() || 'zh'`; | ||
break; | ||
case 'localStorage': | ||
case 'sessionStorage': | ||
lang = `${storageType}.getItem('${langKey}')`; | ||
break; | ||
default: | ||
throw new Error(`storageType: ${storageType} is not supported`); | ||
} | ||
return ` | ||
var lang = ${lang}; | ||
document.write('<scr'+'ipt src="//i18never.ksyun.com/dict/'+lang+'/${version}"></scr'+'ipt>'); | ||
`; | ||
} | ||
function queryVersion(keys) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const sdk = getSdk(); | ||
const { getVerionId: data } = yield sdk.CreateVersion({ | ||
source: 'i18never', | ||
values: sortKeys(keys), | ||
}); | ||
return data.Id; | ||
}); | ||
} | ||
function sortKeys(keys) { | ||
return sortBy(keys.map(({ key, tags }) => { | ||
return { | ||
key, | ||
tags: tags | ||
? sortBy(Object.keys(tags).map((language) => { | ||
const name = tags[language]; | ||
return { language, name }; | ||
}), 'language') | ||
: undefined, | ||
}; | ||
}), 'key'); | ||
} | ||
function sortBy(list, key) { | ||
return list.sort((a, b) => { | ||
if (a[key] < b[key]) { | ||
return -1; | ||
} | ||
else if (a[key] > b[key]) { | ||
return 1; | ||
} | ||
else { | ||
return 0; | ||
} | ||
}); | ||
} | ||
exports.CreateVersionDocument = CreateVersionDocument; | ||
@@ -319,2 +418,3 @@ exports.ImportDeclaration = ImportDeclaration; | ||
exports.defaultConfigFile = defaultConfigFile; | ||
exports.generateScript = generateScript; | ||
exports.getLoc = getLoc; | ||
@@ -329,2 +429,4 @@ exports.getSdk = getSdk; | ||
exports.parseString = parseString; | ||
exports.queryVersion = queryVersion; | ||
exports.setOptions = setOptions; | ||
exports.supportExts = supportExts; |
{ | ||
"name": "@i18never/shared", | ||
"version": "1.1.6", | ||
"version": "1.1.7", | ||
"description": "Base graphQL for i18never", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
40330
16
1105