noodl-loader
Version:
Loader for noodl applications
101 lines • 3.86 kB
JavaScript
"use strict";
var _NoodlCadlEndpoint_config;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const invariant_1 = tslib_1.__importDefault(require("invariant"));
const key_value_cache_1 = tslib_1.__importDefault(require("./cache/key-value-cache"));
const format_1 = require("./utils/format");
const replace_1 = require("./utils/replace");
const yml_1 = require("./utils/yml");
class NoodlCadlEndpoint extends key_value_cache_1.default {
[(_NoodlCadlEndpoint_config = new WeakMap(), Symbol.for('nodejs.util.inspect.custom'))]() {
return this.toJSON();
}
constructor(config) {
super();
_NoodlCadlEndpoint_config.set(this, null);
this.setConfig(config || null);
}
get assetsUrl() {
return (this.get('assetsUrl') || '');
}
set assetsUrl(assetsUrl) {
this.set('assetsUrl', assetsUrl);
}
get baseUrl() {
return (this.get('baseUrl') || '');
}
set baseUrl(baseUrl) {
this.set('baseUrl', baseUrl);
}
get startPage() {
return (this.get('startPage') || '');
}
createAssetURL(filename) {
return (0, format_1.endpoint)(this.assetsUrl, filename);
}
preloadExists(value) {
if (value.endsWith('_en'))
value = value.substring(0, value.length - 3);
if (value.endsWith('.yml'))
value = value.substring(0, value.length - 4);
return this.getPreload().some((name) => value.includes(name));
}
pageExists(value) {
if (value.endsWith('_en'))
value = value.substring(0, value.length - 3);
if (value.endsWith('.yml'))
value = value.substring(0, value.length - 4);
return this.getPages().some((name) => value.includes(name));
}
getPreload() {
if (!this.has('preload'))
this.set('preload', []);
return this.get('preload');
}
getPages() {
if (!this.has('page'))
this.set('page', []);
return this.get('page');
}
getURL(name) {
var _a, _b;
const isPreload = this.preloadExists(name);
const isPage = this.pageExists(name);
let url = name;
if (isPreload || isPage) {
name = (0, format_1.ensureSuffix)('.yml', name);
if (isPage) {
let baseUrl = this.baseUrl;
(0, invariant_1.default)(!!baseUrl, `baseUrl cannot be empty`);
baseUrl = (0, replace_1.replacePlaceholders)(baseUrl, (_a = tslib_1.__classPrivateFieldGet(this, _NoodlCadlEndpoint_config, "f")) === null || _a === void 0 ? void 0 : _a.toJSON());
url = `${baseUrl}${name}`;
}
else {
let assetsUrl = this.assetsUrl;
(0, invariant_1.default)(!!assetsUrl, `assetsUrl cannot be empty`);
url = `${assetsUrl}${name}`;
}
}
else {
let baseUrl = this.baseUrl;
(0, invariant_1.default)(!!baseUrl, `baseUrl cannot be empty`);
baseUrl = (0, replace_1.replacePlaceholders)(baseUrl, (_b = tslib_1.__classPrivateFieldGet(this, _NoodlCadlEndpoint_config, "f")) === null || _b === void 0 ? void 0 : _b.toJSON());
url = `${baseUrl}cadlEndpoint.yml`;
}
console.log(`[cadlEndpoint] Returning url via getURL: ${url}`);
return url;
}
setConfig(config) {
tslib_1.__classPrivateFieldSet(this, _NoodlCadlEndpoint_config, config, "f");
return this;
}
toJSON() {
return this.get();
}
toString() {
return (0, yml_1.stringify)(this.toJSON());
}
}
exports.default = NoodlCadlEndpoint;
//# sourceMappingURL=cadlendpoint.js.map