@officesdk/web
Version:
Web JS SDK for the Office SDK
63 lines (62 loc) • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateUrl = void 0;
var shared_1 = require("../shared");
var shared_2 = require("../shared");
/**
* 获取支持的语言,过滤掉不支持的语言,返回支持的语言。
* @param lang
* @returns
*/
function getLang(lang) {
var supportedLangs = ['en-US', 'zh-CN'];
if (!lang) {
return null;
}
if (supportedLangs.includes(lang)) {
return lang;
}
// TODO: warn 传入的语言不支持
return null;
}
/**
* 生成 Office SDK 的 URL
* @param options
* @returns
*/
function generateUrl(options) {
var defaultPath = '/v1/api/file/page';
var defaultMode = shared_1.EditorModeType.Standard;
var defaultRole = shared_1.EditorStandardRole.Viewer;
var endpoint = options.endpoint, token = options.token, fileId = options.fileId, fileType = options.fileType, userQuery = options.userQuery, _a = options.path, path = _a === void 0 ? defaultPath : _a, _b = options.mode, mode = _b === void 0 ? defaultMode : _b, _c = options.role, role = _c === void 0 ? defaultRole : _c;
var url;
try {
// Office SDK 的 URL 格式
url = new URL(endpoint);
// Check if the URL is valid
if (url.protocol !== 'https:' && url.protocol !== 'http:') {
// TODO: 抛出自定义错误
throw new Error('Invalid URL');
}
// TODO: path、params 支持配置
url.pathname = path;
url.searchParams.set(shared_2.UrlParamKey.FileId, fileId);
url.searchParams.set(shared_2.UrlParamKey.Token, token);
url.searchParams.set(shared_2.UrlParamKey.FileType, fileType);
url.searchParams.set(shared_2.UrlParamKey.ModeType, mode);
url.searchParams.set(shared_2.UrlParamKey.ModeRole, role);
var lang = getLang(options.lang);
if (lang) {
url.searchParams.set(shared_2.UrlParamKey.Language, lang);
}
if (userQuery) {
url.searchParams.set(shared_2.UrlParamKey.UserQuery, encodeURIComponent(JSON.stringify(userQuery)));
}
}
catch (error) {
// TODO: 抛出自定义错误
throw error;
}
return url;
}
exports.generateUrl = generateUrl;