summaryrefslogtreecommitdiff
path: root/node_modules/is-json/index.js
diff options
context:
space:
mode:
authorShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
committerShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
commit7a52ddeba2a68388b544f529d2d92104420f77b0 (patch)
tree15ddd47457a2cb4a96060747437d36474e4f6b4e /node_modules/is-json/index.js
parent53d6ae2b5568437afa5e4995580a3fb679b7b91b (diff)
Changed from static to 11ty!
Diffstat (limited to 'node_modules/is-json/index.js')
-rw-r--r--node_modules/is-json/index.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/node_modules/is-json/index.js b/node_modules/is-json/index.js
new file mode 100644
index 0000000..2a09a3a
--- /dev/null
+++ b/node_modules/is-json/index.js
@@ -0,0 +1,48 @@
+'use strict'
+
+module.exports = isJSON;
+isJSON.strict = strict;
+
+function isJSON (str, pass_object) {
+ if (pass_object && isObject(str)) return true;
+
+ if (!isString(str)) return false;
+
+ str = str.replace(/\s/g, '').replace(/\n|\r/, '');
+
+ if (/^\{(.*?)\}$/.test(str))
+ return /"(.*?)":(.*?)/g.test(str);
+
+ if (/^\[(.*?)\]$/.test(str)) {
+ return str.replace(/^\[/, '')
+ .replace(/\]$/, '')
+ .replace(/},{/g, '}\n{')
+ .split(/\n/)
+ .map(function (s) { return isJSON(s); })
+ .reduce(function (prev, curr) { return !!curr; });
+ }
+
+ return false;
+}
+
+
+function strict (str) {
+ if (isObject(str)) {
+ return true;
+ }
+
+ try {
+ return JSON.parse(str) && true;
+ } catch (ex) {
+ return false;
+ }
+}
+
+function isString (x) {
+ return Object.prototype.toString.call(x) === '[object String]';
+}
+
+function isObject (obj) {
+ return Object.prototype.toString.call(obj) === '[object Object]';
+}
+