Skip to content

Commit

Permalink
chore: Convert to ESM
Browse files Browse the repository at this point in the history
BREAKING CHANGE: The modules is now ESM and will not we compatible with use in a Common JS project.
  • Loading branch information
Trygve Lie committed Oct 12, 2021
1 parent d2a32aa commit cadf6dc
Show file tree
Hide file tree
Showing 19 changed files with 195 additions and 187 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 14.x
node-version: 16.x
- name: npm install
run: |
npm install
Expand All @@ -35,7 +35,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 14.x
node-version: 16.x
- name: npm install
run: |
npm install
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
node-version: [12.x, 14.x, 16.x]
node-version: [14.x, 16.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
Expand Down
35 changes: 16 additions & 19 deletions bin/eik-server.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,23 @@
#!/usr/bin/env node

const fastify = require('fastify');
const Eik = require("..");
import Fastify from 'fastify'
import Eik from '../lib/main.js';

const run = async () => {
const eik = new Eik();
const eik = new Eik();

const app = fastify({
ignoreTrailingSlash: true,
modifyCoreObjects: false,
trustProxy: true,
http2: eik.config.get('http.http2'),
});
const app = Fastify({
ignoreTrailingSlash: true,
modifyCoreObjects: false,
trustProxy: true,
http2: eik.config.get('http.http2'),
});

app.register(eik.api());
app.register(eik.api());

try {
await eik.health();
} catch (error) {
// Do accept errors
}

await app.listen(eik.config.get('http.port'), eik.config.get('http.address'));
try {
await eik.health();
} catch (error) {
// Do accept errors
}
run();

await app.listen(eik.config.get('http.port'), eik.config.get('http.address'));
29 changes: 18 additions & 11 deletions lib/config.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
'use strict';
import convict from 'convict';
import yaml from 'js-yaml';
import pino from 'pino';
import path from 'path';
import fs from 'fs';
import os from 'os';
import { dirname, join } from 'path';
import { fileURLToPath } from 'url';

const convict = require('convict');
const yaml = require('js-yaml');
const path = require('path');
const pino = require('pino');
const fs = require('fs');
const os = require('os');
const pack = require('../package.json');
const __dirname = dirname(fileURLToPath(import.meta.url));

let pack = {};
try {
pack = JSON.parse(fs.readFileSync(join(__dirname, '../../package.json')));
} catch (error) {
/* empty */
}

convict.addParser({ extension: ['yml', 'yaml'], parse: yaml.load });

Expand Down Expand Up @@ -153,12 +161,11 @@ const logger = pino({
});

try {
const dir = process.cwd();
conf.loadFile(path.join(dir, `/config/${env}.yaml`));
conf.loadFile(path.join(__dirname, `../config/${env}.yaml`));
} catch (error) {
logger.error(error);
}

conf.validate();

module.exports = conf;
export default conf;
22 changes: 11 additions & 11 deletions lib/main.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
'use strict;'
import { PassThrough } from 'stream';
import compression from 'fastify-compress';
import HttpError from 'http-errors';
import pino from 'pino';
import cors from 'fastify-cors';
import jwt from 'fastify-jwt';
import eik from '@eik/core';

const { PassThrough } = require('stream');
const compression = require('fastify-compress');
const HttpError = require('http-errors');
const pino = require('pino');
const cors = require('fastify-cors');
const jwt = require('fastify-jwt');
const eik = require('@eik/core');

const config = require('./config');
const utils = require('./utils');
import config from './config.js';
import * as utils from './utils.js';

const EikService = class EikService {
constructor({
Expand Down Expand Up @@ -571,4 +570,5 @@ const EikService = class EikService {
}
}
};
module.exports = EikService;

export default EikService;
15 changes: 8 additions & 7 deletions lib/utils.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,25 @@
'use strict';

const path = require('path');
import path from 'path';

const sanitizeExtras = (extras, version) => {
if (version && extras) {
return path.join(version, extras);
}
return extras || '';
};
module.exports.sanitizeExtras = sanitizeExtras;

const sanitizeName = (scope, name) => {
if (scope && name) {
return path.join(scope, name);
}
return scope || '';
};
module.exports.sanitizeName = sanitizeName;

const sanitizeAlias = (alias = '') => {
if (alias.startsWith('v')) {
return alias.slice(1);
}
return alias;
};
module.exports.sanitizeAlias = sanitizeAlias;

const sanitizeParameters = (url = '') => {
const { pathname } = new URL(url, 'http://localhost/');
Expand All @@ -48,4 +43,10 @@ const sanitizeParameters = (url = '') => {
type: paths[1] || '',
};
};
module.exports.sanitizeParameters = sanitizeParameters;

export {
sanitizeParameters,
sanitizeExtras,
sanitizeAlias,
sanitizeName,
}
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"name": "@eik/service",
"version": "1.2.98",
"description": "Eik REST API as a standalone HTTP service",
"type": "module",
"main": "./lib/main.js",
"bin": {
"eik-server": "bin/eik-server.js",
Expand Down Expand Up @@ -52,10 +53,10 @@
"eslint": "7.32.0",
"eslint-config-airbnb-base": "14.2.1",
"eslint-config-prettier": "8.3.0",
"eslint-plugin-import": "2.24.2",
"eslint-plugin-import": "2.25.1",
"eslint-plugin-prettier": "4.0.0",
"form-data": "4.0.0",
"node-fetch": "2.6.5",
"node-fetch": "3.0.0",
"pino-pretty": "7.0.1",
"prettier": "2.4.1",
"semantic-release": "18.0.0",
Expand Down
18 changes: 8 additions & 10 deletions test/404.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
'use strict';
import FormData from 'form-data';
import Fastify from 'fastify';
import fetch from 'node-fetch';
import tap from 'tap';

const FormData = require('form-data');
const fastify = require('fastify');
const fetch = require('node-fetch');
const tap = require('tap');

const Server = require("..");
const Sink = require('../node_modules/@eik/core/lib/sinks/test');
import Server from '../lib/main.js';
import Sink from '../node_modules/@eik/core/lib/sinks/test.js';

tap.test('404 - POST request to non existing pathname', async (t) => {
const sink = new Sink();
const service = new Server({ customSink: sink });

const app = fastify({
const app = Fastify({
ignoreTrailingSlash: true,
});
app.register(service.api());
Expand All @@ -38,7 +36,7 @@ tap.test('404 - GET request to non existing pathname', async (t) => {
const sink = new Sink();
const service = new Server({ customSink: sink });

const app = fastify({
const app = Fastify({
ignoreTrailingSlash: true,
});
app.register(service.api());
Expand Down
21 changes: 11 additions & 10 deletions test/alias.map.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
'use strict';
import FormData from 'form-data';
import Fastify from 'fastify';
import fetch from 'node-fetch';
import path from 'path';
import tap from 'tap';
import url from 'url';
import fs from 'fs';

const FormData = require('form-data');
const fastify = require('fastify');
const fetch = require('node-fetch');
const path = require('path');
const tap = require('tap');
const fs = require('fs');
import Server from '../lib/main.js';
import Sink from '../node_modules/@eik/core/lib/sinks/test.js';

const Server = require("..");
const Sink = require('../node_modules/@eik/core/lib/sinks/test');
const __dirname = path.dirname(url.fileURLToPath(import.meta.url));

const FIXTURE_MAP = path.resolve(__dirname, '../fixtures/import-map.json');
const FIXTURE_MAP_B = path.resolve(__dirname, '../fixtures/import-map-b.json');
Expand All @@ -17,7 +18,7 @@ tap.beforeEach(async (t) => {
const sink = new Sink();
const service = new Server({ customSink: sink });

const app = fastify({
const app = Fastify({
ignoreTrailingSlash: true,
});
app.register(service.api());
Expand Down
21 changes: 11 additions & 10 deletions test/alias.npm.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
'use strict';
import FormData from 'form-data';
import Fastify from 'fastify';
import fetch from 'node-fetch';
import path from 'path';
import tap from 'tap';
import url from 'url';
import fs from 'fs';

const FormData = require('form-data');
const fastify = require('fastify');
const fetch = require('node-fetch');
const path = require('path');
const tap = require('tap');
const fs = require('fs');
import Server from '../lib/main.js';
import Sink from '../node_modules/@eik/core/lib/sinks/test.js';

const Server = require("..");
const Sink = require('../node_modules/@eik/core/lib/sinks/test');
const __dirname = path.dirname(url.fileURLToPath(import.meta.url));

const FIXTURE_PKG = path.resolve(__dirname, '../fixtures/archive.tgz');

Expand All @@ -22,7 +23,7 @@ tap.beforeEach(async (t) => {
const sink = new Sink();
const service = new Server({ customSink: sink });

const app = fastify({
const app = Fastify({
ignoreTrailingSlash: true,
});
app.register(service.api());
Expand Down
21 changes: 11 additions & 10 deletions test/alias.pkg.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
'use strict';
import FormData from 'form-data';
import Fastify from 'fastify';
import fetch from 'node-fetch';
import path from 'path';
import tap from 'tap';
import url from 'url';
import fs from 'fs';

const FormData = require('form-data');
const fastify = require('fastify');
const fetch = require('node-fetch');
const path = require('path');
const tap = require('tap');
const fs = require('fs');
import Server from '../lib/main.js';
import Sink from '../node_modules/@eik/core/lib/sinks/test.js';

const Server = require("..");
const Sink = require('../node_modules/@eik/core/lib/sinks/test');
const __dirname = path.dirname(url.fileURLToPath(import.meta.url));

const FIXTURE_PKG = path.resolve(__dirname, '../fixtures/archive.tgz');

Expand All @@ -22,7 +23,7 @@ tap.beforeEach(async (t) => {
const sink = new Sink();
const service = new Server({ customSink: sink });

const app = fastify({
const app = Fastify({
ignoreTrailingSlash: true,
});
app.register(service.api());
Expand Down
18 changes: 8 additions & 10 deletions test/auth.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
'use strict';
import FormData from 'form-data';
import Fastify from 'fastify';
import fetch from 'node-fetch';
import tap from 'tap';

const FormData = require('form-data');
const fastify = require('fastify');
const fetch = require('node-fetch');
const tap = require('tap');

const Server = require("..");
const Sink = require('../node_modules/@eik/core/lib/sinks/test');
import Server from '../lib/main.js';
import Sink from '../node_modules/@eik/core/lib/sinks/test.js';

tap.test('auth - authenticate - legal "key" value', async (t) => {
const sink = new Sink();
const service = new Server({ customSink: sink });

const app = fastify({
const app = Fastify({
ignoreTrailingSlash: true,
});
app.register(service.api());
Expand Down Expand Up @@ -40,7 +38,7 @@ tap.test('auth - authenticate - illegal "key" value', async (t) => {
const sink = new Sink();
const service = new Server({ customSink: sink, port: 0, logger: false });

const app = fastify({
const app = Fastify({
ignoreTrailingSlash: true,
});
app.register(service.api());
Expand Down
Loading

0 comments on commit cadf6dc

Please sign in to comment.