| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.githubUrl = githubUrl;
- exports.getS3LikeProviderBaseUrl = getS3LikeProviderBaseUrl;
- /** @private */
- function githubUrl(options, defaultHost = "github.com") {
- return `${options.protocol || "https"}://${options.host || defaultHost}`;
- }
- function getS3LikeProviderBaseUrl(configuration) {
- const provider = configuration.provider;
- if (provider === "s3") {
- return s3Url(configuration);
- }
- if (provider === "spaces") {
- return spacesUrl(configuration);
- }
- throw new Error(`Not supported provider: ${provider}`);
- }
- function s3Url(options) {
- let url;
- if (options.endpoint != null) {
- url = `${options.endpoint}/${options.bucket}`;
- } else if (options.bucket.includes(".")) {
- if (options.region == null) {
- throw new Error(`Bucket name "${options.bucket}" includes a dot, but S3 region is missing`);
- } // special case, see http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro
- if (options.region === "us-east-1") {
- url = `https://s3.amazonaws.com/${options.bucket}`;
- } else {
- url = `https://s3-${options.region}.amazonaws.com/${options.bucket}`;
- }
- } else if (options.region === "cn-north-1") {
- url = `https://${options.bucket}.s3.${options.region}.amazonaws.com.cn`;
- } else {
- url = `https://${options.bucket}.s3.amazonaws.com`;
- }
- return appendPath(url, options.path);
- }
- function appendPath(url, p) {
- if (p != null && p.length > 0) {
- if (!p.startsWith("/")) {
- url += "/";
- }
- url += p;
- }
- return url;
- }
- function spacesUrl(options) {
- if (options.name == null) {
- throw new Error(`name is missing`);
- }
- if (options.region == null) {
- throw new Error(`region is missing`);
- }
- return appendPath(`https://${options.name}.${options.region}.digitaloceanspaces.com`, options.path);
- }
- //# sourceMappingURL=publishOptions.js.map
|