Skip to content

Commit fcee80d

Browse files
committed
chore: drop process (#61)
BREAKING CHANGE: introduces package exports
1 parent ab6ad5a commit fcee80d

File tree

27 files changed

+114
-60
lines changed

27 files changed

+114
-60
lines changed

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
18

lib/environment/browser.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/* eslint-env browser */
2+
"use strict";
3+
4+
exports.environment = "browser";
5+
exports.getCwd = () => location.origin + location.pathname;

lib/environment/index.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"use strict";
2+
3+
exports.env = {
4+
platform: "unknown",
5+
environment: "unknown",
6+
getEnvironment () {
7+
return this.environment;
8+
},
9+
setEnvironment (newEnvironment) {
10+
this.environment = newEnvironment;
11+
},
12+
getCwd () {
13+
return "/";
14+
},
15+
isBrowser () {
16+
return this.environment === "browser";
17+
},
18+
TextDecoder: globalThis.TextDecoder || class {
19+
constructor () {
20+
throw new Error("TextDecoder not available");
21+
}
22+
}
23+
};

lib/environment/node.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
"use strict";
2+
3+
const { cwd: processCwd, platform } = require("process");
4+
5+
exports.environment = "node";
6+
exports.platform = platform;
7+
8+
exports.getCwd = () => processCwd();
9+
10+
exports.TextDecoder = globalThis.TextDecoder || require("util").TextDecoder;

lib/index.browser.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
"use strict";
2+
3+
const browser = require("./environment/browser.js");
4+
const { env } = require("./environment/index.js");
5+
6+
Object.assign(env, browser);
7+
8+
module.exports = require("./index.js");

lib/index.d.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,4 +501,12 @@ declare namespace $RefParser {
501501
public readonly name = "InvalidPointerError";
502502
public readonly code ="EINVALIDPOINTER";
503503
}
504+
505+
export const env: {
506+
readonly platform: string;
507+
readonly environment: string;
508+
getCwd(): string;
509+
setEnvironment(newEnv: string): void;
510+
getEnvironment(): string;
511+
};
504512
}

lib/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const maybe = require("call-me-maybe");
1313
const { ono } = require("@jsdevtools/ono");
1414

1515
module.exports = $RefParser;
16+
module.exports.env = require("./environment/index.js").env;
1617
module.exports.default = $RefParser;
1718
module.exports.JSONParserError = JSONParserError;
1819
module.exports.JSONParserErrorGroup = JSONParserErrorGroup;

lib/index.node.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
"use strict";
2+
3+
const node = require("./environment/node.js");
4+
const { env } = require("./environment/index.js");
5+
6+
Object.assign(env, node);
7+
8+
module.exports = require("./index.js");

lib/parsers/json.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
"use strict";
22

3-
const { ParserError } = require("../util/errors");
4-
const TextDecoder = require("../util/text-decoder");
5-
6-
const decoder = new TextDecoder();
3+
const { ParserError } = require("../util/errors.js");
4+
const { env } = require("../environment/index.js");
75

86
module.exports = {
97
/**
@@ -42,6 +40,7 @@ module.exports = {
4240
async parse (file) { // eslint-disable-line require-await
4341
let data = file.data;
4442
if (ArrayBuffer.isView(data)) {
43+
let decoder = new env.TextDecoder();
4544
data = decoder.decode(data);
4645
}
4746

lib/parsers/text.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use strict";
22

3-
const { ParserError } = require("../util/errors");
4-
const TextDecoder = require("../util/text-decoder");
3+
const { ParserError } = require("../util/errors.js");
4+
const { env } = require("../environment/index.js");
55

66
let TEXT_REGEXP = /\.(txt|htm|html|md|xml|js|min|map|css|scss|less|svg)$/i;
77

@@ -58,7 +58,7 @@ module.exports = {
5858
return file.data;
5959
}
6060
else if (ArrayBuffer.isView(file.data)) {
61-
let decoder = new TextDecoder(this.encoding);
61+
let decoder = new env.TextDecoder(this.encoding);
6262
return decoder.decode(file.data);
6363
}
6464
else {

0 commit comments

Comments
 (0)