time-to-botec/squiggle/node_modules/@rescript/std/lib/js/filename.js
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00

495 lines
11 KiB
JavaScript

'use strict';
var Sys = require("./sys.js");
var Bytes = require("./bytes.js");
var Curry = require("./curry.js");
var $$Buffer = require("./buffer.js");
var $$String = require("./string.js");
var Caml_sys = require("./caml_sys.js");
var Caml_string = require("./caml_string.js");
var Caml_js_exceptions = require("./caml_js_exceptions.js");
function generic_basename(is_dir_sep, current_dir_name, name) {
if (name === "") {
return current_dir_name;
} else {
var _n = name.length - 1 | 0;
while(true) {
var n = _n;
if (n < 0) {
return $$String.sub(name, 0, 1);
}
if (!Curry._2(is_dir_sep, name, n)) {
var _n$1 = n;
var p = n + 1 | 0;
while(true) {
var n$1 = _n$1;
if (n$1 < 0) {
return $$String.sub(name, 0, p);
}
if (Curry._2(is_dir_sep, name, n$1)) {
return $$String.sub(name, n$1 + 1 | 0, (p - n$1 | 0) - 1 | 0);
}
_n$1 = n$1 - 1 | 0;
continue ;
};
}
_n = n - 1 | 0;
continue ;
};
}
}
function generic_dirname(is_dir_sep, current_dir_name, name) {
if (name === "") {
return current_dir_name;
} else {
var _n = name.length - 1 | 0;
while(true) {
var n = _n;
if (n < 0) {
return $$String.sub(name, 0, 1);
}
if (!Curry._2(is_dir_sep, name, n)) {
var _n$1 = n;
while(true) {
var n$1 = _n$1;
if (n$1 < 0) {
return current_dir_name;
}
if (Curry._2(is_dir_sep, name, n$1)) {
var _n$2 = n$1;
while(true) {
var n$2 = _n$2;
if (n$2 < 0) {
return $$String.sub(name, 0, 1);
}
if (!Curry._2(is_dir_sep, name, n$2)) {
return $$String.sub(name, 0, n$2 + 1 | 0);
}
_n$2 = n$2 - 1 | 0;
continue ;
};
}
_n$1 = n$1 - 1 | 0;
continue ;
};
}
_n = n - 1 | 0;
continue ;
};
}
}
var current_dir_name = ".";
function is_dir_sep(s, i) {
return Caml_string.get(s, i) === /* '/' */47;
}
function is_relative(n) {
if (n.length < 1) {
return true;
} else {
return Caml_string.get(n, 0) !== /* '/' */47;
}
}
function is_implicit(n) {
if (is_relative(n) && (n.length < 2 || $$String.sub(n, 0, 2) !== "./")) {
if (n.length < 3) {
return true;
} else {
return $$String.sub(n, 0, 3) !== "../";
}
} else {
return false;
}
}
function check_suffix(name, suff) {
if (name.length >= suff.length) {
return $$String.sub(name, name.length - suff.length | 0, suff.length) === suff;
} else {
return false;
}
}
var temp_dir_name;
try {
temp_dir_name = Caml_sys.sys_getenv("TMPDIR");
}
catch (raw_exn){
var exn = Caml_js_exceptions.internalToOCamlException(raw_exn);
if (exn.RE_EXN_ID === "Not_found") {
temp_dir_name = "/tmp";
} else {
throw exn;
}
}
function quote(param) {
var quotequote = "'\\''";
var l = param.length;
var b = $$Buffer.create(l + 20 | 0);
$$Buffer.add_char(b, /* '\'' */39);
for(var i = 0; i < l; ++i){
if (Caml_string.get(param, i) === /* '\'' */39) {
$$Buffer.add_string(b, quotequote);
} else {
$$Buffer.add_char(b, Caml_string.get(param, i));
}
}
$$Buffer.add_char(b, /* '\'' */39);
return $$Buffer.contents(b);
}
function basename(param) {
return generic_basename(is_dir_sep, current_dir_name, param);
}
function dirname(param) {
return generic_dirname(is_dir_sep, current_dir_name, param);
}
var current_dir_name$1 = ".";
function is_dir_sep$1(s, i) {
var c = Caml_string.get(s, i);
if (c === /* '/' */47 || c === /* '\\' */92) {
return true;
} else {
return c === /* ':' */58;
}
}
function is_relative$1(n) {
if ((n.length < 1 || Caml_string.get(n, 0) !== /* '/' */47) && (n.length < 1 || Caml_string.get(n, 0) !== /* '\\' */92)) {
if (n.length < 2) {
return true;
} else {
return Caml_string.get(n, 1) !== /* ':' */58;
}
} else {
return false;
}
}
function is_implicit$1(n) {
if (is_relative$1(n) && (n.length < 2 || $$String.sub(n, 0, 2) !== "./") && (n.length < 2 || $$String.sub(n, 0, 2) !== ".\\") && (n.length < 3 || $$String.sub(n, 0, 3) !== "../")) {
if (n.length < 3) {
return true;
} else {
return $$String.sub(n, 0, 3) !== "..\\";
}
} else {
return false;
}
}
function check_suffix$1(name, suff) {
if (name.length < suff.length) {
return false;
}
var s = $$String.sub(name, name.length - suff.length | 0, suff.length);
return Bytes.unsafe_to_string(Bytes.lowercase_ascii(Bytes.unsafe_of_string(s))) === Bytes.unsafe_to_string(Bytes.lowercase_ascii(Bytes.unsafe_of_string(suff)));
}
var temp_dir_name$1;
try {
temp_dir_name$1 = Caml_sys.sys_getenv("TEMP");
}
catch (raw_exn$1){
var exn$1 = Caml_js_exceptions.internalToOCamlException(raw_exn$1);
if (exn$1.RE_EXN_ID === "Not_found") {
temp_dir_name$1 = ".";
} else {
throw exn$1;
}
}
function quote$1(s) {
var l = s.length;
var b = $$Buffer.create(l + 20 | 0);
$$Buffer.add_char(b, /* '"' */34);
var loop = function (_i) {
while(true) {
var i = _i;
if (i === l) {
return $$Buffer.add_char(b, /* '"' */34);
}
var c = Caml_string.get(s, i);
if (c === 34) {
return loop_bs(0, i);
}
if (c === 92) {
return loop_bs(0, i);
}
$$Buffer.add_char(b, c);
_i = i + 1 | 0;
continue ;
};
};
var loop_bs = function (_n, _i) {
while(true) {
var i = _i;
var n = _n;
if (i === l) {
$$Buffer.add_char(b, /* '"' */34);
return add_bs(n);
}
var match = Caml_string.get(s, i);
if (match !== 34) {
if (match !== 92) {
add_bs(n);
return loop(i);
}
_i = i + 1 | 0;
_n = n + 1 | 0;
continue ;
}
add_bs((n << 1) + 1 | 0);
$$Buffer.add_char(b, /* '"' */34);
return loop(i + 1 | 0);
};
};
var add_bs = function (n) {
for(var _j = 1; _j <= n; ++_j){
$$Buffer.add_char(b, /* '\\' */92);
}
};
loop(0);
return $$Buffer.contents(b);
}
function has_drive(s) {
var is_letter = function (param) {
if (param >= 91) {
return !(param > 122 || param < 97);
} else {
return param >= 65;
}
};
if (s.length >= 2 && is_letter(Caml_string.get(s, 0))) {
return Caml_string.get(s, 1) === /* ':' */58;
} else {
return false;
}
}
function drive_and_path(s) {
if (has_drive(s)) {
return [
$$String.sub(s, 0, 2),
$$String.sub(s, 2, s.length - 2 | 0)
];
} else {
return [
"",
s
];
}
}
function dirname$1(s) {
var match = drive_and_path(s);
var dir = generic_dirname(is_dir_sep$1, current_dir_name$1, match[1]);
return match[0] + dir;
}
function basename$1(s) {
var match = drive_and_path(s);
return generic_basename(is_dir_sep$1, current_dir_name$1, match[1]);
}
var current_dir_name$2 = ".";
function basename$2(param) {
return generic_basename(is_dir_sep$1, current_dir_name$2, param);
}
function dirname$2(param) {
return generic_dirname(is_dir_sep$1, current_dir_name$2, param);
}
var match;
switch (Sys.os_type) {
case "Cygwin" :
match = [
current_dir_name$2,
"..",
"/",
is_dir_sep$1,
is_relative$1,
is_implicit$1,
check_suffix$1,
temp_dir_name,
quote,
basename$2,
dirname$2
];
break;
case "Win32" :
match = [
current_dir_name$1,
"..",
"\\",
is_dir_sep$1,
is_relative$1,
is_implicit$1,
check_suffix$1,
temp_dir_name$1,
quote$1,
basename$1,
dirname$1
];
break;
default:
match = [
current_dir_name,
"..",
"/",
is_dir_sep,
is_relative,
is_implicit,
check_suffix,
temp_dir_name,
quote,
basename,
dirname
];
}
var temp_dir_name$2 = match[7];
var is_dir_sep$2 = match[3];
var dir_sep = match[2];
function concat(dirname, filename) {
var l = dirname.length;
if (l === 0 || Curry._2(is_dir_sep$2, dirname, l - 1 | 0)) {
return dirname + filename;
} else {
return dirname + (dir_sep + filename);
}
}
function chop_suffix(name, suff) {
var n = name.length - suff.length | 0;
if (n < 0) {
throw {
RE_EXN_ID: "Invalid_argument",
_1: "Filename.chop_suffix",
Error: new Error()
};
}
return $$String.sub(name, 0, n);
}
function extension_len(name) {
var _i = name.length - 1 | 0;
while(true) {
var i = _i;
if (i < 0 || Curry._2(is_dir_sep$2, name, i)) {
return 0;
}
if (Caml_string.get(name, i) === /* '.' */46) {
var _i$1 = i - 1 | 0;
while(true) {
var i$1 = _i$1;
if (i$1 < 0 || Curry._2(is_dir_sep$2, name, i$1)) {
return 0;
}
if (Caml_string.get(name, i$1) !== /* '.' */46) {
return name.length - i | 0;
}
_i$1 = i$1 - 1 | 0;
continue ;
};
}
_i = i - 1 | 0;
continue ;
};
}
function extension(name) {
var l = extension_len(name);
if (l === 0) {
return "";
} else {
return $$String.sub(name, name.length - l | 0, l);
}
}
function chop_extension(name) {
var l = extension_len(name);
if (l === 0) {
throw {
RE_EXN_ID: "Invalid_argument",
_1: "Filename.chop_extension",
Error: new Error()
};
}
return $$String.sub(name, 0, name.length - l | 0);
}
function remove_extension(name) {
var l = extension_len(name);
if (l === 0) {
return name;
} else {
return $$String.sub(name, 0, name.length - l | 0);
}
}
var current_temp_dir_name = {
contents: temp_dir_name$2
};
function set_temp_dir_name(s) {
current_temp_dir_name.contents = s;
}
function get_temp_dir_name(param) {
return current_temp_dir_name.contents;
}
var current_dir_name$3 = match[0];
var parent_dir_name = match[1];
var is_relative$2 = match[4];
var is_implicit$2 = match[5];
var check_suffix$2 = match[6];
var basename$3 = match[9];
var dirname$3 = match[10];
var quote$2 = match[8];
exports.current_dir_name = current_dir_name$3;
exports.parent_dir_name = parent_dir_name;
exports.dir_sep = dir_sep;
exports.concat = concat;
exports.is_relative = is_relative$2;
exports.is_implicit = is_implicit$2;
exports.check_suffix = check_suffix$2;
exports.chop_suffix = chop_suffix;
exports.extension = extension;
exports.remove_extension = remove_extension;
exports.chop_extension = chop_extension;
exports.basename = basename$3;
exports.dirname = dirname$3;
exports.get_temp_dir_name = get_temp_dir_name;
exports.set_temp_dir_name = set_temp_dir_name;
exports.temp_dir_name = temp_dir_name$2;
exports.quote = quote$2;
/* temp_dir_name Not a pure module */