forked from mystiq/hydrogen-web
Merge pull request #262 from vector-im/bwindels/useaslib
Make hydrogen usable as a npm/yarn dependency
This commit is contained in:
commit
ed7d12b90f
2 changed files with 27 additions and 21 deletions
|
@ -10,7 +10,7 @@
|
||||||
"test": "node_modules/.bin/impunity --entry-point src/main.js --force-esm-dirs lib/ src/",
|
"test": "node_modules/.bin/impunity --entry-point src/main.js --force-esm-dirs lib/ src/",
|
||||||
"start": "node scripts/serve-local.js",
|
"start": "node scripts/serve-local.js",
|
||||||
"build": "node --experimental-modules scripts/build.mjs",
|
"build": "node --experimental-modules scripts/build.mjs",
|
||||||
"postinstall": "node ./scripts/post-install.mjs"
|
"postinstall": "node ./scripts/post-install.js"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -26,9 +26,7 @@
|
||||||
"@babel/core": "^7.11.1",
|
"@babel/core": "^7.11.1",
|
||||||
"@babel/preset-env": "^7.11.0",
|
"@babel/preset-env": "^7.11.0",
|
||||||
"@rollup/plugin-babel": "^5.1.0",
|
"@rollup/plugin-babel": "^5.1.0",
|
||||||
"@rollup/plugin-commonjs": "^15.0.0",
|
|
||||||
"@rollup/plugin-multi-entry": "^4.0.0",
|
"@rollup/plugin-multi-entry": "^4.0.0",
|
||||||
"@rollup/plugin-node-resolve": "^9.0.0",
|
|
||||||
"autoprefixer": "^10.0.1",
|
"autoprefixer": "^10.0.1",
|
||||||
"cheerio": "^1.0.0-rc.3",
|
"cheerio": "^1.0.0-rc.3",
|
||||||
"commander": "^6.0.0",
|
"commander": "^6.0.0",
|
||||||
|
@ -42,12 +40,14 @@
|
||||||
"postcss-import": "^12.0.1",
|
"postcss-import": "^12.0.1",
|
||||||
"postcss-url": "^8.0.0",
|
"postcss-url": "^8.0.0",
|
||||||
"regenerator-runtime": "^0.13.7",
|
"regenerator-runtime": "^0.13.7",
|
||||||
"rollup": "^2.26.4",
|
|
||||||
"rollup-plugin-cleanup": "^3.1.1",
|
"rollup-plugin-cleanup": "^3.1.1",
|
||||||
"serve-static": "^1.13.2",
|
"serve-static": "^1.13.2",
|
||||||
"xxhashjs": "^0.2.2"
|
"xxhashjs": "^0.2.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"rollup": "^2.26.4",
|
||||||
|
"@rollup/plugin-commonjs": "^15.0.0",
|
||||||
|
"@rollup/plugin-node-resolve": "^9.0.0",
|
||||||
"aes-js": "^3.1.2",
|
"aes-js": "^3.1.2",
|
||||||
"another-json": "^0.2.0",
|
"another-json": "^0.2.0",
|
||||||
"base64-arraybuffer": "^0.2.0",
|
"base64-arraybuffer": "^0.2.0",
|
||||||
|
|
|
@ -14,21 +14,28 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import fsRoot from "fs";
|
const fsRoot = require("fs");
|
||||||
const fs = fsRoot.promises;
|
const fs = fsRoot.promises;
|
||||||
import path from "path";
|
const path = require("path");
|
||||||
import { rollup } from 'rollup';
|
const { rollup } = require('rollup');
|
||||||
import { fileURLToPath } from 'url';
|
const { fileURLToPath } = require('url');
|
||||||
import { dirname } from 'path';
|
const { dirname } = require('path');
|
||||||
// needed to translate commonjs modules to esm
|
// needed to translate commonjs modules to esm
|
||||||
import commonjs from '@rollup/plugin-commonjs';
|
const commonjs = require('@rollup/plugin-commonjs');
|
||||||
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
const { nodeResolve } = require('@rollup/plugin-node-resolve');
|
||||||
import {removeDirIfExists} from "./common.mjs";
|
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
|
||||||
const __dirname = dirname(__filename);
|
|
||||||
const projectDir = path.join(__dirname, "../");
|
const projectDir = path.join(__dirname, "../");
|
||||||
|
|
||||||
|
async function removeDirIfExists(targetDir) {
|
||||||
|
try {
|
||||||
|
await fs.rmdir(targetDir, {recursive: true});
|
||||||
|
} catch (err) {
|
||||||
|
if (err.code !== "ENOENT") {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** function used to resolve common-js require calls below. */
|
/** function used to resolve common-js require calls below. */
|
||||||
function packageIterator(request, start, defaultIterator) {
|
function packageIterator(request, start, defaultIterator) {
|
||||||
// this is just working for bs58, would need to tune it further for other dependencies
|
// this is just working for bs58, would need to tune it further for other dependencies
|
||||||
|
@ -60,10 +67,9 @@ async function commonjsToESM(src, dst) {
|
||||||
|
|
||||||
async function populateLib() {
|
async function populateLib() {
|
||||||
const libDir = path.join(projectDir, "lib/");
|
const libDir = path.join(projectDir, "lib/");
|
||||||
const modulesDir = path.join(projectDir, "node_modules/");
|
|
||||||
await removeDirIfExists(libDir);
|
await removeDirIfExists(libDir);
|
||||||
await fs.mkdir(libDir);
|
await fs.mkdir(libDir);
|
||||||
const olmSrcDir = path.join(modulesDir, "olm/");
|
const olmSrcDir = path.dirname(require.resolve("olm"));
|
||||||
const olmDstDir = path.join(libDir, "olm/");
|
const olmDstDir = path.join(libDir, "olm/");
|
||||||
await fs.mkdir(olmDstDir);
|
await fs.mkdir(olmDstDir);
|
||||||
for (const file of ["olm.js", "olm.wasm", "olm_legacy.js"]) {
|
for (const file of ["olm.js", "olm.wasm", "olm_legacy.js"]) {
|
||||||
|
@ -72,19 +78,19 @@ async function populateLib() {
|
||||||
// transpile another-json to esm
|
// transpile another-json to esm
|
||||||
await fs.mkdir(path.join(libDir, "another-json/"));
|
await fs.mkdir(path.join(libDir, "another-json/"));
|
||||||
await commonjsToESM(
|
await commonjsToESM(
|
||||||
path.join(modulesDir, 'another-json/another-json.js'),
|
require.resolve('another-json/another-json.js'),
|
||||||
path.join(libDir, "another-json/index.js")
|
path.join(libDir, "another-json/index.js")
|
||||||
);
|
);
|
||||||
// transpile bs58 to esm
|
// transpile bs58 to esm
|
||||||
await fs.mkdir(path.join(libDir, "bs58/"));
|
await fs.mkdir(path.join(libDir, "bs58/"));
|
||||||
await commonjsToESM(
|
await commonjsToESM(
|
||||||
path.join(modulesDir, 'bs58/index.js'),
|
require.resolve('bs58/index.js'),
|
||||||
path.join(libDir, "bs58/index.js")
|
path.join(libDir, "bs58/index.js")
|
||||||
);
|
);
|
||||||
// transpile base64-arraybuffer to esm
|
// transpile base64-arraybuffer to esm
|
||||||
await fs.mkdir(path.join(libDir, "base64-arraybuffer/"));
|
await fs.mkdir(path.join(libDir, "base64-arraybuffer/"));
|
||||||
await commonjsToESM(
|
await commonjsToESM(
|
||||||
path.join(modulesDir, 'base64-arraybuffer/lib/base64-arraybuffer.js'),
|
require.resolve('base64-arraybuffer/lib/base64-arraybuffer.js'),
|
||||||
path.join(libDir, "base64-arraybuffer/index.js")
|
path.join(libDir, "base64-arraybuffer/index.js")
|
||||||
);
|
);
|
||||||
// this probably should no go in here, we can just import "aes-js" from legacy-extras.js
|
// this probably should no go in here, we can just import "aes-js" from legacy-extras.js
|
||||||
|
@ -93,7 +99,7 @@ async function populateLib() {
|
||||||
// transpile aesjs to esm
|
// transpile aesjs to esm
|
||||||
await fs.mkdir(path.join(libDir, "aes-js/"));
|
await fs.mkdir(path.join(libDir, "aes-js/"));
|
||||||
await commonjsToESM(
|
await commonjsToESM(
|
||||||
path.join(modulesDir, 'aes-js/index.js'),
|
require.resolve('aes-js/index.js'),
|
||||||
path.join(libDir, "aes-js/index.js")
|
path.join(libDir, "aes-js/index.js")
|
||||||
);
|
);
|
||||||
// es6-promise is already written as an es module,
|
// es6-promise is already written as an es module,
|
||||||
|
@ -102,7 +108,7 @@ async function populateLib() {
|
||||||
// is conveniently not placed in node_modules rather than symlinking.
|
// is conveniently not placed in node_modules rather than symlinking.
|
||||||
await fs.mkdir(path.join(libDir, "es6-promise/"));
|
await fs.mkdir(path.join(libDir, "es6-promise/"));
|
||||||
await commonjsToESM(
|
await commonjsToESM(
|
||||||
path.join(modulesDir, 'es6-promise/lib/es6-promise/promise.js'),
|
require.resolve('es6-promise/lib/es6-promise/promise.js'),
|
||||||
path.join(libDir, "es6-promise/index.js")
|
path.join(libDir, "es6-promise/index.js")
|
||||||
);
|
);
|
||||||
}
|
}
|
Loading…
Reference in a new issue