@proofkit/fmodata
Version:
FileMaker OData API client
45 lines (44 loc) • 1.57 kB
JavaScript
const FMP12_EXT_REGEX = /\.fmp12$/i;
function stripFmp12Extension(databaseName) {
return databaseName.replace(FMP12_EXT_REGEX, "");
}
function ensureFmp12Extension(databaseName) {
return FMP12_EXT_REGEX.test(databaseName) ? databaseName : `${databaseName}.fmp12`;
}
function normalizeDatabaseSegment(databaseName, normalizeDatabaseName, mode = "default") {
if (!normalizeDatabaseName) {
return databaseName;
}
return mode === "ensureExtension" ? ensureFmp12Extension(databaseName) : stripFmp12Extension(databaseName);
}
function normalizeDatabasePath(path, options) {
if (!path.startsWith("/")) {
return path;
}
const secondSlashIndex = path.indexOf("/", 1);
const hasDatabaseSegment = secondSlashIndex !== -1;
const databaseSegment = hasDatabaseSegment ? path.slice(1, secondSlashIndex) : path.slice(1);
if (!databaseSegment || databaseSegment.startsWith("$")) {
return path;
}
let normalizedInput = databaseSegment;
try {
normalizedInput = decodeURIComponent(databaseSegment);
} catch {
normalizedInput = databaseSegment;
}
const normalizedDatabaseSegment = normalizeDatabaseSegment(
normalizedInput,
options.normalizeDatabaseName,
options.mode
);
const encodedDatabaseSegment = encodeURIComponent(normalizedDatabaseSegment);
return hasDatabaseSegment ? `/${encodedDatabaseSegment}${path.slice(secondSlashIndex)}` : `/${encodedDatabaseSegment}`;
}
export {
ensureFmp12Extension,
normalizeDatabasePath,
normalizeDatabaseSegment,
stripFmp12Extension
};
//# sourceMappingURL=database-name.js.map