mirror of
https://github.com/discordjs/discord-api-types.git
synced 2026-06-02 08:50:09 +00:00
fix(TypeScript): imports not working in TypeScript (#113)
This commit is contained in:
3
.babelrc
Normal file
3
.babelrc
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"plugins": ["@babel/plugin-syntax-top-level-await"]
|
||||
}
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -6,6 +6,11 @@ globals.*map
|
||||
globals.d.ts
|
||||
globals.mjs
|
||||
|
||||
v*.js
|
||||
v*.*map
|
||||
v*.d.ts
|
||||
v*.mjs
|
||||
|
||||
gateway/**/*.js
|
||||
gateway/**/*.map
|
||||
gateway/**/*.d.ts
|
||||
|
||||
2
.npmrc
2
.npmrc
@@ -2,4 +2,4 @@ audit=false
|
||||
fund=false
|
||||
legacy-peer-deps=true
|
||||
tag-version-prefix=""
|
||||
message="chore(release): %s :tada:"
|
||||
message="chore(release): %s 🎉"
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
## [0.15.1](https://github.com/discordjs/discord-api-types/compare/0.15.0...0.15.1) (2021-04-12)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **TypeScript:** imports not working in TypeScript ([4738c33](https://github.com/discordjs/discord-api-types/commit/4738c33b062d359a1c2fbb35cdd2daf128ab6e5b))
|
||||
|
||||
# [0.15.0](https://github.com/discordjs/discord-api-types/compare/0.14.0...0.15.0) (2021-04-11)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -53,21 +53,21 @@ We also provide typings compatible with the [deno](https://deno.land/) runtime.
|
||||
|
||||
```ts
|
||||
// Importing a specific API version
|
||||
import { APIUser } from 'https://raw.githubusercontent.com/discordjs/discord-api-types/main/deno/shortcuts/v8/mod.ts';
|
||||
import { APIUser } from 'https://raw.githubusercontent.com/discordjs/discord-api-types/main/deno/v8.ts';
|
||||
```
|
||||
|
||||
2. From [deno.land/x](https://deno.land/x)
|
||||
|
||||
```ts
|
||||
// Importing a specific API version
|
||||
import { APIUser } from 'https://deno.land/x/discord_api_types/shortcuts/v8.ts';
|
||||
import { APIUser } from 'https://deno.land/x/discord_api_types/v8.ts';
|
||||
```
|
||||
|
||||
3. From [skypack.dev](https://www.skypack.dev/)
|
||||
|
||||
```ts
|
||||
// Importing a specific API version
|
||||
import { APIUser } from 'https://cdn.skypack.dev/discord-api-types/shortcuts/v8?dts';
|
||||
import { APIUser } from 'https://cdn.skypack.dev/discord-api-types/v8?dts';
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
@@ -53,21 +53,21 @@ We also provide typings compatible with the [deno](https://deno.land/) runtime.
|
||||
|
||||
```ts
|
||||
// Importing a specific API version
|
||||
import { APIUser } from 'https://raw.githubusercontent.com/discordjs/discord-api-types/main/deno/shortcuts/v8/mod.ts';
|
||||
import { APIUser } from 'https://raw.githubusercontent.com/discordjs/discord-api-types/main/deno/v8.ts';
|
||||
```
|
||||
|
||||
2. From [deno.land/x](https://deno.land/x)
|
||||
|
||||
```ts
|
||||
// Importing a specific API version
|
||||
import { APIUser } from 'https://deno.land/x/discord_api_types/shortcuts/v8.ts';
|
||||
import { APIUser } from 'https://deno.land/x/discord_api_types/v8.ts';
|
||||
```
|
||||
|
||||
3. From [skypack.dev](https://www.skypack.dev/)
|
||||
|
||||
```ts
|
||||
// Importing a specific API version
|
||||
import { APIUser } from 'https://cdn.skypack.dev/discord-api-types/shortcuts/v8?dts';
|
||||
import { APIUser } from 'https://cdn.skypack.dev/discord-api-types/v8?dts';
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
export * from '../globals.ts';
|
||||
export * from '../gateway/v6.ts';
|
||||
export * from '../payloads/v6/mod.ts';
|
||||
export * from '../rest/v6/mod.ts';
|
||||
@@ -1,6 +0,0 @@
|
||||
export * from '../globals.ts';
|
||||
export * from '../gateway/v8.ts';
|
||||
export * from '../payloads/v8/mod.ts';
|
||||
export * from '../rest/v8/mod.ts';
|
||||
export * from '../rpc/v8.ts';
|
||||
export * as Utils from '../utils/v8.ts';
|
||||
4
deno/v6.ts
Normal file
4
deno/v6.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export * from './globals.ts';
|
||||
export * from './gateway/v6.ts';
|
||||
export * from './payloads/v6/mod.ts';
|
||||
export * from './rest/v6/mod.ts';
|
||||
6
deno/v8.ts
Normal file
6
deno/v8.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export * from './globals.ts';
|
||||
export * from './gateway/v8.ts';
|
||||
export * from './payloads/v8/mod.ts';
|
||||
export * from './rest/v8/mod.ts';
|
||||
export * from './rpc/v8.ts';
|
||||
export * as Utils from './utils/v8.ts';
|
||||
856
package-lock.json
generated
856
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
31
package.json
31
package.json
@@ -1,22 +1,22 @@
|
||||
{
|
||||
"name": "discord-api-types",
|
||||
"version": "0.15.0",
|
||||
"version": "0.15.1",
|
||||
"description": "Discord API typings that are kept up to date for use in bot library creation.",
|
||||
"main": "./shortcuts/v8.js",
|
||||
"module": "./shortcuts/v8.mjs",
|
||||
"types": "./shortcuts/v8.d.ts",
|
||||
"main": "./v8.js",
|
||||
"module": "./v8.mjs",
|
||||
"types": "./v8.d.ts",
|
||||
"exports": {
|
||||
"./globals": {
|
||||
"require": "./globals.js",
|
||||
"import": "./globals.mjs"
|
||||
},
|
||||
"./v6": {
|
||||
"require": "./shortcuts/v6.js",
|
||||
"import": "./shortcuts/v6.mjs"
|
||||
"require": "./v6.js",
|
||||
"import": "./v6.mjs"
|
||||
},
|
||||
"./v8": {
|
||||
"require": "./shortcuts/v8.js",
|
||||
"import": "./shortcuts/v8.mjs"
|
||||
"require": "./v8.js",
|
||||
"import": "./v8.mjs"
|
||||
},
|
||||
"./gateway": {
|
||||
"require": "./gateway/index.js",
|
||||
@@ -72,7 +72,7 @@
|
||||
"build:deno": "node ./scripts/deno.mjs",
|
||||
"build:node": "tsc && run-p esm:*",
|
||||
"clean:deno": "rimraf deno/",
|
||||
"clean:node": "rimraf {gateway,payloads,rest,rpc,voice,shortcuts,utils}/**/*.{js,mjs,d.ts,map} globals.{js,mjs,d.ts,*map}",
|
||||
"clean:node": "rimraf {gateway,payloads,rest,rpc,voice,utils}/**/*.{js,mjs,d.ts,map} {globals,v*}.{js,mjs,d.ts,*map}",
|
||||
"clean": "run-p clean:*",
|
||||
"esm:gateway": "gen-esm-wrapper ./gateway/index.js ./gateway/index.mjs",
|
||||
"esm:payloads": "gen-esm-wrapper ./payloads/index.js ./payloads/index.mjs",
|
||||
@@ -82,8 +82,8 @@
|
||||
"esm:voice": "gen-esm-wrapper ./voice/index.js ./voice/index.mjs",
|
||||
"esm:globals": "gen-esm-wrapper ./globals.js ./globals.mjs",
|
||||
"esm:versions": "node ./scripts/versions.mjs",
|
||||
"lint": "eslint --fix --ext mjs,ts {gateway,payloads,rest,rpc,voice,shortcuts,utils}/** globals.ts",
|
||||
"test:lint": "eslint --ext mjs,ts {gateway,payloads,rest,rpc,voice,shortcuts,utils}/** globals.ts",
|
||||
"lint": "eslint --fix --ext mjs,ts {gateway,payloads,rest,rpc,voice,utils}/** {globals,v*}.ts",
|
||||
"test:lint": "eslint --ext mjs,ts {gateway,payloads,rest,rpc,voice,utils}/** {globals,v*}.ts",
|
||||
"prepublishOnly": "run-s clean test:lint build:node",
|
||||
"postpublish": "run-s clean:node build:deno",
|
||||
"version": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md"
|
||||
@@ -97,13 +97,16 @@
|
||||
"author": "Vlad Frangu <kingdgrizzle@gmail.com>",
|
||||
"license": "MIT",
|
||||
"files": [
|
||||
"{gateway,payloads,rest,rpc,voice,shortcuts,utils}/**/*.{js,js.map,d.ts,d.ts.map,mjs}",
|
||||
"globals.{js,js.map,d.ts,d.ts.map,mjs}"
|
||||
"{gateway,payloads,rest,rpc,voice,utils}/**/*.{js,js.map,d.ts,d.ts.map,mjs}",
|
||||
"{globals,v*}.{js,js.map,d.ts,d.ts.map,mjs}"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.13.15",
|
||||
"@babel/eslint-parser": "^7.13.14",
|
||||
"@babel/plugin-syntax-top-level-await": "^7.12.13",
|
||||
"@commitlint/cli": "^12.1.1",
|
||||
"@commitlint/config-angular": "^12.1.1",
|
||||
"@types/node": "^14.14.37",
|
||||
@@ -143,7 +146,9 @@
|
||||
"files": [
|
||||
"scripts/**/*.mjs"
|
||||
],
|
||||
"parser": "@babel/eslint-parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 2021,
|
||||
"sourceType": "module"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,14 @@ function convertConstEnums(source) {
|
||||
|
||||
const transformers = [convertImports, convertConstEnums];
|
||||
|
||||
async function convertFile(fullFilePath, finalDenoPath) {
|
||||
const originalFile = await readFile(fullFilePath, { encoding: 'utf8' });
|
||||
|
||||
const finalFile = transformers.reduce((code, transformer) => transformer(code), originalFile);
|
||||
|
||||
await writeFile(finalDenoPath, finalFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} folderName The folder name
|
||||
* @param {URL} node The node path
|
||||
@@ -61,21 +69,17 @@ async function adaptFolderToDeno(folderName, node = baseDirectory, deno = denoPa
|
||||
const fullFilePath = new URL(file.name, nodeDirectory);
|
||||
const finalDenoPath = new URL(file.name.includes('index') ? 'mod.ts' : file.name, denoDirectory);
|
||||
|
||||
const originalFile = await readFile(fullFilePath, { encoding: 'utf8' });
|
||||
|
||||
const finalFile = transformers.reduce((code, transformer) => transformer(code), originalFile);
|
||||
|
||||
await writeFile(finalDenoPath, finalFile);
|
||||
await convertFile(fullFilePath, finalDenoPath);
|
||||
}
|
||||
}
|
||||
|
||||
// Convert folders
|
||||
const folderResults = await Promise.allSettled(
|
||||
[
|
||||
'gateway/', //
|
||||
'payloads/',
|
||||
'rest/',
|
||||
'rpc/',
|
||||
'shortcuts/',
|
||||
'utils/',
|
||||
'voice/',
|
||||
].map((item) => adaptFolderToDeno(item)),
|
||||
@@ -85,6 +89,7 @@ for (const result of folderResults) {
|
||||
if (result.status === 'rejected') console.error(result.reason);
|
||||
}
|
||||
|
||||
// Copy over core files
|
||||
const copyResults = await Promise.allSettled(
|
||||
[
|
||||
'LICENSE', //
|
||||
@@ -96,3 +101,15 @@ const copyResults = await Promise.allSettled(
|
||||
for (const result of copyResults) {
|
||||
if (result.status === 'rejected') console.error(result.reason);
|
||||
}
|
||||
|
||||
// Copy over shortcuts for versions, converting imports
|
||||
const globalFileResults = await Promise.allSettled(
|
||||
[
|
||||
'v6.ts', //
|
||||
'v8.ts',
|
||||
].map((version) => convertFile(new URL(version, baseDirectory), new URL(version, denoPath))),
|
||||
);
|
||||
|
||||
for (const result of globalFileResults) {
|
||||
if (result.status === 'rejected') console.error(result.reason);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
import { exec } from 'node:child_process';
|
||||
import { dirname, join } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { promisify } from 'node:util';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
const rootDir = join(__dirname, '..');
|
||||
const execAsync = promisify(exec);
|
||||
|
||||
const fileToESMWrapperCall = (path, version) =>
|
||||
execAsync(`npx gen-esm-wrapper ./${path}/${version}.js ./${path}/${version}.mjs`);
|
||||
execAsync(`npx gen-esm-wrapper "${join(rootDir, path, `${version}.js`)}" "${join(rootDir, path, `${version}.mjs`)}"`);
|
||||
|
||||
await Promise.allSettled(
|
||||
[
|
||||
@@ -29,7 +34,7 @@ await Promise.allSettled(
|
||||
fileToESMWrapperCall('utils', version),
|
||||
|
||||
// Shortcuts
|
||||
fileToESMWrapperCall('shortcuts', version),
|
||||
fileToESMWrapperCall('', version),
|
||||
])
|
||||
.flat(),
|
||||
);
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
export * from '../globals';
|
||||
export * from '../gateway/v6';
|
||||
export * from '../payloads/v6/index';
|
||||
export * from '../rest/v6/index';
|
||||
@@ -1,6 +0,0 @@
|
||||
export * from '../globals';
|
||||
export * from '../gateway/v8';
|
||||
export * from '../payloads/v8/index';
|
||||
export * from '../rest/v8/index';
|
||||
export * from '../rpc/v8';
|
||||
export * as Utils from '../utils/v8';
|
||||
@@ -6,11 +6,12 @@
|
||||
},
|
||||
"include": [
|
||||
"globals.ts",
|
||||
"v6.ts",
|
||||
"v8.ts",
|
||||
"gateway/**/*.ts",
|
||||
"payloads/**/*.ts",
|
||||
"rest/**/*.ts",
|
||||
"rpc/**/*.ts",
|
||||
"shortcuts/**/*.ts",
|
||||
"utils/**/*.ts",
|
||||
"voice/**/*.ts",
|
||||
"scripts",
|
||||
|
||||
@@ -17,11 +17,12 @@
|
||||
},
|
||||
"include": [
|
||||
"globals.ts",
|
||||
"v6.ts",
|
||||
"v8.ts",
|
||||
"gateway/**/*.ts",
|
||||
"payloads/**/*.ts",
|
||||
"rest/**/*.ts",
|
||||
"rpc/**/*.ts",
|
||||
"shortcuts/**/*.ts",
|
||||
"utils/**/*.ts",
|
||||
"voice/**/*.ts"
|
||||
]
|
||||
|
||||
4
v6.ts
Normal file
4
v6.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export * from './globals';
|
||||
export * from './gateway/v6';
|
||||
export * from './payloads/v6/index';
|
||||
export * from './rest/v6/index';
|
||||
Reference in New Issue
Block a user