mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-10 02:08:38 +09:00
Move Add-on SDK source to toolkit/jetpack
This commit is contained in:
parent
0a03067ee3
commit
23b67db438
993 changed files with 484 additions and 100663 deletions
|
|
@ -1,74 +0,0 @@
|
|||
/* 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";
|
||||
|
||||
module.metadata = {
|
||||
"stability": "unstable"
|
||||
};
|
||||
|
||||
const { isValidURI, isLocalURL, URL } = require('../url');
|
||||
const { contract } = require('../util/contract');
|
||||
const { isString, isNil, instanceOf, isJSONable } = require('../lang/type');
|
||||
const { validateOptions,
|
||||
string, array, object, either, required } = require('../deprecated/api-utils');
|
||||
|
||||
const isValidScriptFile = (value) =>
|
||||
(isString(value) || instanceOf(value, URL)) && isLocalURL(value);
|
||||
|
||||
// map of property validations
|
||||
const valid = {
|
||||
contentURL: {
|
||||
is: either(string, object),
|
||||
ok: url => isNil(url) || isLocalURL(url) || isValidURI(url),
|
||||
msg: 'The `contentURL` option must be a valid URL.'
|
||||
},
|
||||
contentScriptFile: {
|
||||
is: either(string, object, array),
|
||||
ok: value => isNil(value) || [].concat(value).every(isValidScriptFile),
|
||||
msg: 'The `contentScriptFile` option must be a local URL or an array of URLs.'
|
||||
},
|
||||
contentScript: {
|
||||
is: either(string, array),
|
||||
ok: value => isNil(value) || [].concat(value).every(isString),
|
||||
msg: 'The `contentScript` option must be a string or an array of strings.'
|
||||
},
|
||||
contentScriptWhen: {
|
||||
is: required(string),
|
||||
map: value => value || 'end',
|
||||
ok: value => ~['start', 'ready', 'end'].indexOf(value),
|
||||
msg: 'The `contentScriptWhen` option must be either "start", "ready" or "end".'
|
||||
},
|
||||
contentScriptOptions: {
|
||||
ok: value => isNil(value) || isJSONable(value),
|
||||
msg: 'The contentScriptOptions should be a jsonable value.'
|
||||
}
|
||||
};
|
||||
exports.validationAttributes = valid;
|
||||
|
||||
/**
|
||||
* Shortcut function to validate property with validation.
|
||||
* @param {Object|Number|String} suspect
|
||||
* value to validate
|
||||
* @param {Object} validation
|
||||
* validation rule passed to `api-utils`
|
||||
*/
|
||||
function validate(suspect, validation) {
|
||||
return validateOptions(
|
||||
{ $: suspect },
|
||||
{ $: validation }
|
||||
).$;
|
||||
}
|
||||
|
||||
function Allow(script) {
|
||||
return {
|
||||
get script() {
|
||||
return script;
|
||||
},
|
||||
set script(value) {
|
||||
script = !!value;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
exports.contract = contract(valid);
|
||||
Loading…
Add table
Add a link
Reference in a new issue