35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
'use strict';
|
|
|
|
const { validateOptions } = require("../deprecated/api-utils");
|
|
const { data } = require("../self");
|
|
|
|
function Options(options) {
|
|
if ('string' === typeof options)
|
|
options = { url: options };
|
|
|
|
return validateOptions(options, {
|
|
url: {
|
|
is: ["string"],
|
|
map: (v) => v ? data.url(v) : v
|
|
},
|
|
inBackground: {
|
|
map: Boolean,
|
|
is: ["undefined", "boolean"]
|
|
},
|
|
isPinned: { is: ["undefined", "boolean"] },
|
|
isPrivate: { is: ["undefined", "boolean"] },
|
|
inNewWindow: { is: ["undefined", "boolean"] },
|
|
onOpen: { is: ["undefined", "function"] },
|
|
onClose: { is: ["undefined", "function"] },
|
|
onReady: { is: ["undefined", "function"] },
|
|
onLoad: { is: ["undefined", "function"] },
|
|
onPageShow: { is: ["undefined", "function"] },
|
|
onActivate: { is: ["undefined", "function"] },
|
|
onDeactivate: { is: ["undefined", "function"] }
|
|
});
|
|
}
|
|
exports.Options = Options;
|