@sapphire/docusaurus-plugin-ts2esm2cjs 1.1.0-next.410e846.0 → 1.1.0-next.7411ff7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/dist/index.d.ts +4 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +138 -133
- package/dist/index.js.map +1 -1
- package/package.json +58 -59
- package/LICENSE.md +0 -24
- package/dist/index.mjs +0 -119
- package/dist/index.mjs.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [1.0.3](https://github.com/sapphiredev/documentation-plugins/compare/@sapphire/docusaurus-plugin-ts2esm2cjs@1.0.2...@sapphire/docusaurus-plugin-ts2esm2cjs@1.0.3) (2022-01-13)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **ts2esm2cjs:** switch back to published package of esm-to-cjs ([0ca3884](https://github.com/sapphiredev/documentation-plugins/commit/0ca388495cf91a7c4ab19c24bd48e0d992e0f821))
|
|
10
|
+
|
|
11
|
+
### Reverts
|
|
12
|
+
|
|
13
|
+
- Revert "fix(ts2esm2cjs): fixed imports that have `as` in their name" ([684b297](https://github.com/sapphiredev/documentation-plugins/commit/684b2975f08df8a00ed2a6f5576770e6c7168383))
|
|
14
|
+
|
|
15
|
+
## [1.0.2](https://github.com/sapphiredev/documentation-plugins/compare/@sapphire/docusaurus-plugin-ts2esm2cjs@1.0.1...@sapphire/docusaurus-plugin-ts2esm2cjs@1.0.2) (2022-01-12)
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
- **ts2esm2cjs:** fixed imports that have `as` in their name ([147c85d](https://github.com/sapphiredev/documentation-plugins/commit/147c85db866ac0544b4bcc62aa5e54a9f3009903))
|
|
20
|
+
|
|
21
|
+
### Reverts
|
|
22
|
+
|
|
23
|
+
- Revert "ci: try adding extra dev deps for ci" ([de49260](https://github.com/sapphiredev/documentation-plugins/commit/de49260d4d8c4be4bb27d53f13472946e4cd3700))
|
|
24
|
+
|
|
25
|
+
## [1.0.1](https://github.com/sapphiredev/documentation-plugins/compare/@sapphire/docusaurus-plugin-ts2esm2cjs@1.0.0...@sapphire/docusaurus-plugin-ts2esm2cjs@1.0.1) (2021-11-30)
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
- **ts2esm2cjs:** allow longer lengths for esm to cjs ([280746c](https://github.com/sapphiredev/documentation-plugins/commit/280746cbf7120c9baddf8deac436ea0a9ba1835e))
|
|
30
|
+
|
|
31
|
+
# 1.0.0 (2021-11-26)
|
|
32
|
+
|
|
33
|
+
### Bug Fixes
|
|
34
|
+
|
|
35
|
+
- **ts2esm2cjs:** removed esm exports to ensure cjs works fine with require syntax ([73b6898](https://github.com/sapphiredev/documentation-plugins/commit/73b6898881374259f9a38b74fe741cf46a468e06))
|
|
36
|
+
- **ts2esm2cjs:** removed exports field from package.json ([7dfac94](https://github.com/sapphiredev/documentation-plugins/commit/7dfac9464b28caa8e2d0dc03040a1b38f6b02d68))
|
|
37
|
+
|
|
38
|
+
### Features
|
|
39
|
+
|
|
40
|
+
- add ts2esm2cjs package ([35ec87d](https://github.com/sapphiredev/documentation-plugins/commit/35ec87dd8743aecc57c344b1d2d4ae88038fcd7b))
|
|
41
|
+
- **ts2esm2cjs:** add option to customize tsc options ([af19a1d](https://github.com/sapphiredev/documentation-plugins/commit/af19a1d8473b8a3723933f87f8a0c6f79e98ebc7))
|
|
42
|
+
|
|
43
|
+
### Reverts
|
|
44
|
+
|
|
45
|
+
- Revert "fix(typedoc-djs-links): removed esm exports to ensure cjs works fine with require syntax" ([7b4c6ab](https://github.com/sapphiredev/documentation-plugins/commit/7b4c6ab434265903213d7d965b0e927912b1aba1))
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
import { Options } from 'prettier';
|
|
2
2
|
import { CompilerOptions } from 'typescript';
|
|
3
|
-
|
|
3
|
+
import type { Plugin } from 'unified';
|
|
4
|
+
interface PluginOptions {
|
|
4
5
|
sync?: boolean;
|
|
5
6
|
prettierOptions?: Options;
|
|
6
7
|
typescriptCompilerOptions?: CompilerOptions;
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
value: string;
|
|
11
|
-
lang?: undefined;
|
|
12
|
-
meta?: undefined;
|
|
13
|
-
} | {
|
|
14
|
-
type: any;
|
|
15
|
-
lang: any;
|
|
16
|
-
meta: any;
|
|
17
|
-
value: any;
|
|
18
|
-
})[] | null;
|
|
9
|
+
declare const ts2esm2cjs: Plugin<[PluginOptions?]>;
|
|
10
|
+
export = ts2esm2cjs;
|
|
19
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAiB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAmItC,UAAU,aAAa;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yBAAyB,CAAC,EAAE,eAAe,CAAC;CAC5C;AAED,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAmCvC,CAAC;AAEH,SAAS,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,146 +1,151 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
const tslib_1 = require("tslib");
|
|
3
|
+
const prettier_config_1 = tslib_1.__importDefault(require("@sapphire/prettier-config"));
|
|
4
|
+
const esm_to_cjs_1 = require("esm-to-cjs");
|
|
5
|
+
const prettier_1 = tslib_1.__importDefault(require("prettier"));
|
|
6
|
+
const typescript_1 = tslib_1.__importDefault(require("typescript"));
|
|
7
|
+
const unist_util_visit_1 = tslib_1.__importDefault(require("unist-util-visit"));
|
|
8
|
+
const documentationPrettierConfig = {
|
|
9
|
+
...prettier_config_1.default,
|
|
10
|
+
tabWidth: 2,
|
|
11
|
+
useTabs: false,
|
|
12
|
+
printWidth: 120,
|
|
13
|
+
parser: 'babel'
|
|
10
14
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
-
|
|
22
|
-
// src/index.ts
|
|
23
|
-
var src_exports = {};
|
|
24
|
-
__export(src_exports, {
|
|
25
|
-
ts2esm2cjs: () => ts2esm2cjs
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(src_exports);
|
|
28
|
-
var import_prettier_config = __toESM(require("@sapphire/prettier-config"));
|
|
29
|
-
var import_esm_to_cjs = require("esm-to-cjs");
|
|
30
|
-
var import_prettier = __toESM(require("prettier"));
|
|
31
|
-
var import_typescript = __toESM(require("typescript"));
|
|
32
|
-
var documentationPrettierConfig = {
|
|
33
|
-
...import_prettier_config.default,
|
|
34
|
-
tabWidth: 2,
|
|
35
|
-
useTabs: false,
|
|
36
|
-
printWidth: 120,
|
|
37
|
-
parser: "babel"
|
|
38
|
-
};
|
|
39
|
-
var makeTsCompilerOptions = (overrideOptions) => ({
|
|
40
|
-
newLine: import_typescript.default.NewLineKind.LineFeed,
|
|
41
|
-
removeComments: false,
|
|
42
|
-
esModuleInterop: true,
|
|
43
|
-
pretty: true,
|
|
44
|
-
...overrideOptions,
|
|
45
|
-
module: import_typescript.default.ModuleKind.ESNext,
|
|
46
|
-
moduleResolution: import_typescript.default.ModuleResolutionKind.NodeJs,
|
|
47
|
-
target: import_typescript.default.ScriptTarget.ESNext
|
|
15
|
+
const makeTsCompilerOptions = (overrideOptions) => ({
|
|
16
|
+
newLine: typescript_1.default.NewLineKind.LineFeed,
|
|
17
|
+
removeComments: false,
|
|
18
|
+
esModuleInterop: true,
|
|
19
|
+
pretty: true,
|
|
20
|
+
...overrideOptions,
|
|
21
|
+
module: typescript_1.default.ModuleKind.ESNext,
|
|
22
|
+
moduleResolution: typescript_1.default.ModuleResolutionKind.NodeJs,
|
|
23
|
+
target: typescript_1.default.ScriptTarget.ESNext
|
|
48
24
|
});
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Transpiles input TypeScript code to ESM code.
|
|
27
|
+
* @param code The code to transpile
|
|
28
|
+
* @returns Input code transpiled to ESM
|
|
29
|
+
*/
|
|
30
|
+
const tsToEsm = (code, options) => typescript_1.default.transpileModule(code, { reportDiagnostics: false, compilerOptions: makeTsCompilerOptions(options.typescriptCompilerOptions) });
|
|
31
|
+
/**
|
|
32
|
+
* Transforms input ESM code to CJS code.
|
|
33
|
+
* @param code The code to transform
|
|
34
|
+
* @returns Input code transformed to CommonJS
|
|
35
|
+
*/
|
|
36
|
+
const esmToCjs = (code) => (0, esm_to_cjs_1.runTransform)(code, { quote: 'single', lenDestructure: 128, lenModuleName: 128, lenIdentifier: 128 });
|
|
37
|
+
/**
|
|
38
|
+
* Escaped new lines in code with block comments so they can be restored by {@link restoreNewLines}
|
|
39
|
+
* @param code The code to escape new lines in
|
|
40
|
+
* @returns The same code but with new lines escaped using block comments
|
|
41
|
+
*/
|
|
42
|
+
const escapeNewLines = (code) => code.replace(/\n\n/g, '\n/* :newline: */');
|
|
43
|
+
/**
|
|
44
|
+
* Reverses {@link escapeNewLines} and restores new lines
|
|
45
|
+
* @param code The code with escaped new lines
|
|
46
|
+
* @returns The same code with new lines restored
|
|
47
|
+
*/
|
|
48
|
+
const restoreNewLines = (code) => code.replace(/\/\* :newline: \*\//g, '\n');
|
|
49
|
+
/**
|
|
50
|
+
* Formats the code using Prettier
|
|
51
|
+
* @param code The code to prettier format
|
|
52
|
+
* @param prettierConfig Additional prettier options to use for formatting
|
|
53
|
+
* @returns Prettier formatted code
|
|
54
|
+
*/
|
|
55
|
+
const prettierFormatCode = (code, prettierConfig) => prettier_1.default.format(code, { ...documentationPrettierConfig, ...prettierConfig }).slice(0, -1);
|
|
56
|
+
/**
|
|
57
|
+
* Transforms a Docusaurus node from TypeScript to ESM and CJS
|
|
58
|
+
* @param node The Docusaurus node to transform
|
|
59
|
+
* @param options The plugin options to pass to the transformer
|
|
60
|
+
* @returns The transformed node in the form of Tabs.
|
|
61
|
+
*/
|
|
62
|
+
const transformNode = (node, options) => {
|
|
63
|
+
const groupIdProp = options.sync ? 'groupId="ts2esm2cjs" ' : '';
|
|
64
|
+
const tsCode = escapeNewLines(node.value);
|
|
65
|
+
const esmCode = tsToEsm(tsCode, { typescriptCompilerOptions: options.typescriptCompilerOptions }).outputText;
|
|
66
|
+
const cjsCode = esmToCjs(esmCode);
|
|
67
|
+
const [, jsHighlight, tsHighlight] = node.meta.split('|');
|
|
68
|
+
return [
|
|
69
|
+
{
|
|
70
|
+
type: 'jsx',
|
|
71
|
+
value: `<Tabs defaultValue="typescript" ${groupIdProp}` +
|
|
72
|
+
`values={[
|
|
64
73
|
{ label: 'JavaScript', value: 'javascript', },
|
|
65
74
|
{ label: 'ESM', value: 'esm', },
|
|
66
75
|
{ label: 'TypeScript', value: 'typescript', },
|
|
67
76
|
]}
|
|
68
77
|
>
|
|
69
78
|
<TabItem value="javascript">`
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: node.type,
|
|
82
|
+
lang: node.lang,
|
|
83
|
+
meta: `${jsHighlight} showLineNumbers`,
|
|
84
|
+
value: prettierFormatCode(restoreNewLines(cjsCode), options.prettierOptions)
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
type: 'jsx',
|
|
88
|
+
value: '</TabItem>\n<TabItem value="esm">'
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
type: node.type,
|
|
92
|
+
lang: node.lang,
|
|
93
|
+
meta: `${jsHighlight} showLineNumbers`,
|
|
94
|
+
value: prettierFormatCode(restoreNewLines(esmCode), options.prettierOptions)
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'jsx',
|
|
98
|
+
value: '</TabItem>\n<TabItem value="typescript">'
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: node.type,
|
|
102
|
+
lang: node.lang,
|
|
103
|
+
meta: `${tsHighlight} showLineNumbers`,
|
|
104
|
+
value: node.value
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'jsx',
|
|
108
|
+
value: '</TabItem>\n</Tabs>'
|
|
109
|
+
}
|
|
110
|
+
];
|
|
102
111
|
};
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
112
|
+
const isImport = (node) => node.type === 'import';
|
|
113
|
+
const isParent = (node) => Array.isArray(node.children);
|
|
114
|
+
const matchNode = (node) => node.type === 'code' && typeof node.meta === 'string' && node.meta.startsWith('ts2esm2cjs');
|
|
115
|
+
const nodeForImport = {
|
|
116
|
+
type: 'import',
|
|
117
|
+
value: "import Tabs from '@theme/Tabs';\nimport TabItem from '@theme/TabItem';"
|
|
107
118
|
};
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
if (matchNode(node)) {
|
|
120
|
-
transformed = true;
|
|
121
|
-
return transformNode(node, { sync, prettierOptions, typescriptCompilerOptions });
|
|
122
|
-
}
|
|
123
|
-
if (Array.isArray(node.children)) {
|
|
124
|
-
let index = 0;
|
|
125
|
-
while (index < node.children.length) {
|
|
126
|
-
const result = transformer(node.children[index]);
|
|
127
|
-
if (result) {
|
|
128
|
-
node.children.splice(index, 1, ...result);
|
|
129
|
-
index += result.length;
|
|
130
|
-
} else {
|
|
131
|
-
index += 1;
|
|
119
|
+
const ts2esm2cjs = ({ sync = true, prettierOptions = {}, typescriptCompilerOptions = {} } = {
|
|
120
|
+
sync: true,
|
|
121
|
+
prettierOptions: {},
|
|
122
|
+
typescriptCompilerOptions: {}
|
|
123
|
+
}) => (root) => {
|
|
124
|
+
let transformed = false;
|
|
125
|
+
let alreadyImported = false;
|
|
126
|
+
(0, unist_util_visit_1.default)(root, (node) => {
|
|
127
|
+
if (isImport(node) && node.value.includes('@theme/Tabs')) {
|
|
128
|
+
alreadyImported = true;
|
|
132
129
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
130
|
+
if (isParent(node)) {
|
|
131
|
+
let index = 0;
|
|
132
|
+
while (index < node.children.length) {
|
|
133
|
+
const child = node.children[index];
|
|
134
|
+
if (matchNode(child)) {
|
|
135
|
+
const result = transformNode(child, { sync, prettierOptions, typescriptCompilerOptions });
|
|
136
|
+
node.children.splice(index, 1, ...result);
|
|
137
|
+
index += result.length;
|
|
138
|
+
transformed = true;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
index += 1;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
if (transformed && !alreadyImported) {
|
|
147
|
+
root.children.unshift(nodeForImport);
|
|
137
148
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
return transformer;
|
|
141
|
-
}
|
|
142
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
143
|
-
0 && (module.exports = {
|
|
144
|
-
ts2esm2cjs
|
|
145
|
-
});
|
|
149
|
+
};
|
|
150
|
+
module.exports = ts2esm2cjs;
|
|
146
151
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,60 +1,59 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
2
|
+
"name": "@sapphire/docusaurus-plugin-ts2esm2cjs",
|
|
3
|
+
"version": "1.1.0-next.7411ff7.0",
|
|
4
|
+
"description": "Docusaurus Remark plugin for converting TypeScript code to ESM and CJS code",
|
|
5
|
+
"author": "@sapphire",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"lint": "eslint src --ext ts --fix",
|
|
11
|
+
"build": "tsc -b src",
|
|
12
|
+
"prepack": "yarn build",
|
|
13
|
+
"bump": "cliff-jumper",
|
|
14
|
+
"check-update": "cliff-jumper --dry-run"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@sapphire/prettier-config": "^1.4.3",
|
|
18
|
+
"esm-to-cjs": "^1.2.1",
|
|
19
|
+
"prettier": "^2.6.2",
|
|
20
|
+
"tslib": "^2.4.0",
|
|
21
|
+
"typescript": "^4.6.4",
|
|
22
|
+
"unist-util-visit": "^2.0.3"
|
|
23
|
+
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/sapphiredev/documentation-plugins.git",
|
|
27
|
+
"directory": "packages/ts2esm2cjs"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist/**/*.js*",
|
|
31
|
+
"dist/**/*.d*"
|
|
32
|
+
],
|
|
33
|
+
"engines": {
|
|
34
|
+
"node": ">=v16.6.0",
|
|
35
|
+
"npm": ">=7.0.0"
|
|
36
|
+
},
|
|
37
|
+
"keywords": [
|
|
38
|
+
"docusaurus",
|
|
39
|
+
"docusaurus-plugin",
|
|
40
|
+
"@sapphire",
|
|
41
|
+
"typescript",
|
|
42
|
+
"ts",
|
|
43
|
+
"esm",
|
|
44
|
+
"cjs",
|
|
45
|
+
"discord",
|
|
46
|
+
"sapphire",
|
|
47
|
+
"discordjs"
|
|
48
|
+
],
|
|
49
|
+
"bugs": {
|
|
50
|
+
"url": "https://github.com/sapphiredev/documentation-plugins/issues"
|
|
51
|
+
},
|
|
52
|
+
"homepage": "https://www.sapphirejs.dev",
|
|
53
|
+
"publishConfig": {
|
|
54
|
+
"access": "public"
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"typescript": "^4.6.4"
|
|
58
|
+
}
|
|
59
|
+
}
|
package/LICENSE.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright © `2021` `The Sapphire Community and its contributors`
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person
|
|
6
|
-
obtaining a copy of this software and associated documentation
|
|
7
|
-
files (the “Software”), to deal in the Software without
|
|
8
|
-
restriction, including without limitation the rights to use,
|
|
9
|
-
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
-
copies of the Software, and to permit persons to whom the
|
|
11
|
-
Software is furnished to do so, subject to the following
|
|
12
|
-
conditions:
|
|
13
|
-
|
|
14
|
-
The above copyright notice and this permission notice shall be
|
|
15
|
-
included in all copies or substantial portions of the Software.
|
|
16
|
-
|
|
17
|
-
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
|
|
18
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
19
|
-
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
20
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
21
|
-
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
22
|
-
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
23
|
-
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
24
|
-
OTHER DEALINGS IN THE SOFTWARE.
|
package/dist/index.mjs
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
// src/index.ts
|
|
2
|
-
import sapphirePrettierConfig from "@sapphire/prettier-config";
|
|
3
|
-
import { runTransform } from "esm-to-cjs";
|
|
4
|
-
import prettier from "prettier";
|
|
5
|
-
import ts from "typescript";
|
|
6
|
-
var documentationPrettierConfig = {
|
|
7
|
-
...sapphirePrettierConfig,
|
|
8
|
-
tabWidth: 2,
|
|
9
|
-
useTabs: false,
|
|
10
|
-
printWidth: 120,
|
|
11
|
-
parser: "babel"
|
|
12
|
-
};
|
|
13
|
-
var makeTsCompilerOptions = (overrideOptions) => ({
|
|
14
|
-
newLine: ts.NewLineKind.LineFeed,
|
|
15
|
-
removeComments: false,
|
|
16
|
-
esModuleInterop: true,
|
|
17
|
-
pretty: true,
|
|
18
|
-
...overrideOptions,
|
|
19
|
-
module: ts.ModuleKind.ESNext,
|
|
20
|
-
moduleResolution: ts.ModuleResolutionKind.NodeJs,
|
|
21
|
-
target: ts.ScriptTarget.ESNext
|
|
22
|
-
});
|
|
23
|
-
var tsToEsm = (code, options) => ts.transpileModule(code, { reportDiagnostics: false, compilerOptions: makeTsCompilerOptions(options.typescriptCompilerOptions) });
|
|
24
|
-
var esmToCjs = (code) => runTransform(code, { quote: "single", lenDestructure: 128, lenModuleName: 128, lenIdentifier: 128 });
|
|
25
|
-
var escapeNewLines = (code) => code.replace(/\n\n/g, "\n/* :newline: */");
|
|
26
|
-
var restoreNewLines = (code) => code.replace(/\/\* :newline: \*\//g, "\n");
|
|
27
|
-
var prettierFormatCode = (code, prettierConfig) => prettier.format(code, { ...documentationPrettierConfig, ...prettierConfig }).slice(0, -1);
|
|
28
|
-
var transformNode = (node, options) => {
|
|
29
|
-
const groupIdProp = options.sync ? 'groupId="ts2esm2cjs" ' : "";
|
|
30
|
-
const tsCode = escapeNewLines(node.value);
|
|
31
|
-
const esmCode = tsToEsm(tsCode, { typescriptCompilerOptions: options.typescriptCompilerOptions }).outputText;
|
|
32
|
-
const cjsCode = esmToCjs(esmCode);
|
|
33
|
-
const [, jsHighlight, tsHighlight] = node.meta.split("|");
|
|
34
|
-
return [
|
|
35
|
-
{
|
|
36
|
-
type: "jsx",
|
|
37
|
-
value: `<Tabs defaultValue="typescript" ${groupIdProp}values={[
|
|
38
|
-
{ label: 'JavaScript', value: 'javascript', },
|
|
39
|
-
{ label: 'ESM', value: 'esm', },
|
|
40
|
-
{ label: 'TypeScript', value: 'typescript', },
|
|
41
|
-
]}
|
|
42
|
-
>
|
|
43
|
-
<TabItem value="javascript">`
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
type: node.type,
|
|
47
|
-
lang: node.lang,
|
|
48
|
-
meta: jsHighlight,
|
|
49
|
-
value: prettierFormatCode(restoreNewLines(cjsCode), options.prettierOptions)
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
type: "jsx",
|
|
53
|
-
value: '</TabItem>\n<TabItem value="esm">'
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
type: node.type,
|
|
57
|
-
lang: node.lang,
|
|
58
|
-
meta: jsHighlight,
|
|
59
|
-
value: prettierFormatCode(restoreNewLines(esmCode), options.prettierOptions)
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
type: "jsx",
|
|
63
|
-
value: '</TabItem>\n<TabItem value="typescript">'
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
type: node.type,
|
|
67
|
-
lang: node.lang,
|
|
68
|
-
meta: tsHighlight,
|
|
69
|
-
value: node.value
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
type: "jsx",
|
|
73
|
-
value: "</TabItem>\n</Tabs>"
|
|
74
|
-
}
|
|
75
|
-
];
|
|
76
|
-
};
|
|
77
|
-
var matchNode = (node) => node.type === "code" && typeof node.meta === "string" && node.meta.startsWith("ts2esm2cjs");
|
|
78
|
-
var nodeForImport = {
|
|
79
|
-
type: "import",
|
|
80
|
-
value: "import Tabs from '@theme/Tabs';\nimport TabItem from '@theme/TabItem';"
|
|
81
|
-
};
|
|
82
|
-
function ts2esm2cjs({ sync = true, prettierOptions = {}, typescriptCompilerOptions = {} } = {
|
|
83
|
-
sync: true,
|
|
84
|
-
prettierOptions: {},
|
|
85
|
-
typescriptCompilerOptions: {}
|
|
86
|
-
}) {
|
|
87
|
-
let transformed = false;
|
|
88
|
-
let alreadyImported = false;
|
|
89
|
-
const transformer = (node) => {
|
|
90
|
-
if (node.type === "import" && node.value.includes("@theme/Tabs")) {
|
|
91
|
-
alreadyImported = true;
|
|
92
|
-
}
|
|
93
|
-
if (matchNode(node)) {
|
|
94
|
-
transformed = true;
|
|
95
|
-
return transformNode(node, { sync, prettierOptions, typescriptCompilerOptions });
|
|
96
|
-
}
|
|
97
|
-
if (Array.isArray(node.children)) {
|
|
98
|
-
let index = 0;
|
|
99
|
-
while (index < node.children.length) {
|
|
100
|
-
const result = transformer(node.children[index]);
|
|
101
|
-
if (result) {
|
|
102
|
-
node.children.splice(index, 1, ...result);
|
|
103
|
-
index += result.length;
|
|
104
|
-
} else {
|
|
105
|
-
index += 1;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
if (node.type === "root" && transformed && !alreadyImported) {
|
|
110
|
-
node.children.unshift(nodeForImport);
|
|
111
|
-
}
|
|
112
|
-
return null;
|
|
113
|
-
};
|
|
114
|
-
return transformer;
|
|
115
|
-
}
|
|
116
|
-
export {
|
|
117
|
-
ts2esm2cjs
|
|
118
|
-
};
|
|
119
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import sapphirePrettierConfig from '@sapphire/prettier-config';\nimport { runTransform } from 'esm-to-cjs';\nimport prettier, { Options } from 'prettier';\nimport ts, { CompilerOptions } from 'typescript';\n\nconst documentationPrettierConfig: Options = {\n\t...sapphirePrettierConfig,\n\ttabWidth: 2,\n\tuseTabs: false,\n\tprintWidth: 120,\n\tparser: 'babel'\n};\n\nconst makeTsCompilerOptions = (overrideOptions?: CompilerOptions): CompilerOptions => ({\n\tnewLine: ts.NewLineKind.LineFeed,\n\tremoveComments: false,\n\tesModuleInterop: true,\n\tpretty: true,\n\t...overrideOptions,\n\tmodule: ts.ModuleKind.ESNext,\n\tmoduleResolution: ts.ModuleResolutionKind.NodeJs,\n\ttarget: ts.ScriptTarget.ESNext\n});\n\n/**\n * Transpiles input TypeScript code to ESM code.\n * @param code The code to transpile\n * @returns Input code transpiled to ESM\n */\nconst tsToEsm = (code: string, options: Pick<PluginOptions, 'typescriptCompilerOptions'>): ts.TranspileOutput =>\n\tts.transpileModule(code, { reportDiagnostics: false, compilerOptions: makeTsCompilerOptions(options.typescriptCompilerOptions) });\n\n/**\n * Transforms input ESM code to CJS code.\n * @param code The code to transform\n * @returns Input code transformed to CommonJS\n */\nconst esmToCjs = (code: string): string => runTransform(code, { quote: 'single', lenDestructure: 128, lenModuleName: 128, lenIdentifier: 128 });\n\n/**\n * Escaped new lines in code with block comments so they can be restored by {@link restoreNewLines}\n * @param code The code to escape new lines in\n * @returns The same code but with new lines escaped using block comments\n */\nconst escapeNewLines = (code: string) => code.replace(/\\n\\n/g, '\\n/* :newline: */');\n\n/**\n * Reverses {@link escapeNewLines} and restores new lines\n * @param code The code with escaped new lines\n * @returns The same code with new lines restored\n */\nconst restoreNewLines = (code: string): string => code.replace(/\\/\\* :newline: \\*\\//g, '\\n');\n\n/**\n * Formats the code using Prettier\n * @param code The code to prettier format\n * @param prettierConfig Additional prettier options to use for formatting\n * @returns Prettier formatted code\n */\nconst prettierFormatCode = (code: string, prettierConfig?: Options) =>\n\tprettier.format(code, { ...documentationPrettierConfig, ...prettierConfig }).slice(0, -1);\n\n/**\n * Transforms a Docusaurus node from TypeScript to ESM and CJS\n * @param node The Docusaurus node to transform\n * @param isSync Whether the transform should synchronize between all entries of this type\n * @returns The transformed node in the form of Tabs.\n */\nconst transformNode = (node: any, options: PluginOptions) => {\n\tconst groupIdProp = options.sync ? 'groupId=\"ts2esm2cjs\" ' : '';\n\n\tconst tsCode = escapeNewLines(node.value);\n\tconst esmCode = tsToEsm(tsCode, { typescriptCompilerOptions: options.typescriptCompilerOptions }).outputText;\n\tconst cjsCode = esmToCjs(esmCode);\n\n\tconst [, jsHighlight, tsHighlight] = node.meta.split('|');\n\n\treturn [\n\t\t{\n\t\t\ttype: 'jsx',\n\t\t\tvalue:\n\t\t\t\t`<Tabs defaultValue=\"typescript\" ${groupIdProp}` +\n\t\t\t\t`values={[\n { label: 'JavaScript', value: 'javascript', },\n { label: 'ESM', value: 'esm', },\n { label: 'TypeScript', value: 'typescript', },\n ]}\n>\n<TabItem value=\"javascript\">`\n\t\t},\n\t\t{\n\t\t\ttype: node.type,\n\t\t\tlang: node.lang,\n\t\t\tmeta: jsHighlight,\n\t\t\tvalue: prettierFormatCode(restoreNewLines(cjsCode), options.prettierOptions)\n\t\t},\n\t\t{\n\t\t\ttype: 'jsx',\n\t\t\tvalue: '</TabItem>\\n<TabItem value=\"esm\">'\n\t\t},\n\t\t{\n\t\t\ttype: node.type,\n\t\t\tlang: node.lang,\n\t\t\tmeta: jsHighlight,\n\t\t\tvalue: prettierFormatCode(restoreNewLines(esmCode), options.prettierOptions)\n\t\t},\n\t\t{\n\t\t\ttype: 'jsx',\n\t\t\tvalue: '</TabItem>\\n<TabItem value=\"typescript\">'\n\t\t},\n\t\t{\n\t\t\ttype: node.type,\n\t\t\tlang: node.lang,\n\t\t\tmeta: tsHighlight,\n\t\t\tvalue: node.value\n\t\t},\n\t\t{\n\t\t\ttype: 'jsx',\n\t\t\tvalue: '</TabItem>\\n</Tabs>'\n\t\t}\n\t];\n};\n\nconst matchNode = (node: any) => node.type === 'code' && typeof node.meta === 'string' && node.meta.startsWith('ts2esm2cjs');\nconst nodeForImport = {\n\ttype: 'import',\n\tvalue: \"import Tabs from '@theme/Tabs';\\nimport TabItem from '@theme/TabItem';\"\n};\n\nexport interface PluginOptions {\n\tsync?: boolean;\n\tprettierOptions?: Options;\n\ttypescriptCompilerOptions?: CompilerOptions;\n}\n\nexport function ts2esm2cjs(\n\t{ sync = true, prettierOptions = {}, typescriptCompilerOptions = {} }: PluginOptions = {\n\t\tsync: true,\n\t\tprettierOptions: {},\n\t\ttypescriptCompilerOptions: {}\n\t}\n) {\n\tlet transformed = false;\n\tlet alreadyImported = false;\n\n\tconst transformer = (node: any) => {\n\t\tif (node.type === 'import' && node.value.includes('@theme/Tabs')) {\n\t\t\talreadyImported = true;\n\t\t}\n\n\t\tif (matchNode(node)) {\n\t\t\ttransformed = true;\n\t\t\treturn transformNode(node, { sync, prettierOptions, typescriptCompilerOptions });\n\t\t}\n\n\t\tif (Array.isArray(node.children)) {\n\t\t\tlet index = 0;\n\t\t\twhile (index < node.children.length) {\n\t\t\t\tconst result = transformer(node.children[index]);\n\t\t\t\tif (result) {\n\t\t\t\t\tnode.children.splice(index, 1, ...result);\n\t\t\t\t\tindex += result.length;\n\t\t\t\t} else {\n\t\t\t\t\tindex += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (node.type === 'root' && transformed && !alreadyImported) {\n\t\t\tnode.children.unshift(nodeForImport);\n\t\t}\n\n\t\treturn null;\n\t};\n\n\treturn transformer;\n}\n"],"mappings":"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","names":[]}
|