Module
x/denoify/res/notes_for_later.md
🦕For NPM module authors that would like to support Deno but do not want to write and maintain a port.
Roadmap
Now that we have ParsedImportExportStatement
we can implement a way to, on a case by case basis, add
support for third party library by writing custom import and enable user to write their own import.
Example with ipaddr.js
:
import { Version } from "../../tools/Version";
import { ParsedImportExportStatement } from "../types/ParsedImportExportStatement";
export async function importExportStatementReplacer(params: { importExportStatement: string; version: string }): Promise<undefined | string> {
const { importExportStatement, version } = params;
const parsedImportExportStatement = ParsedImportExportStatement.parse(importExportStatement);
if (parsedImportExportStatement.argument !== "ipaddr.js") {
return undefined;
}
const typeVersion = Version.compare(Version.parse(version), Version.parse("1.6.0")) <= 0 ? "1.6.0" : version;
return [
`// @deno-types="https://raw.githubusercontent.com/whitequark/ipaddr.js/${typeVersion}/lib/ipaddr.js.d.ts"`,
ParsedImportExportStatement.stringify({
...parsedImportExportStatement,
"argument": `https://raw.githubusercontent.com/whitequark/ipaddr.js/${version}/lib/ipaddr.js`
})
].join("\n");
}