Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 18 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
FROM node:4
RUN git clone https://github.com/jsdelivr/api
RUN cd api && npm install
FROM node:22-slim

ENV NODE_ENV=production

WORKDIR /app

RUN chown node:node /app

COPY --chown=node:node package.json package-lock.json ./

USER node

RUN npm ci --omit=dev && npm cache clean --force

COPY --chown=node:node . .
Comment thread
MartinKolarik marked this conversation as resolved.

EXPOSE 8089
CMD ["node", "/api/serve.js"]

CMD ["node", "serve.js"]
47 changes: 38 additions & 9 deletions lib/log.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,44 @@
import Logger from 'le_node';
import config from '../config';
import util from 'util';
import winston from 'winston';

let log = new Logger({
withStack: true,
timestamp: true,
console: true,
token: config.logentriesToken,
bufferSize: 4000,
let logger = winston.createLogger({
levels: {
err: 0,
warning: 1,
info: 2,
},
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.printf(({ timestamp, level, message }) => {
return `${timestamp} ${level} ${message}`;
}),
),
transports: [
new winston.transports.Console(),
],
});

log.on('error', (error) => {
function formatMessage (value) {
if (value instanceof Error) {
return value.stack || value.message;
}

if (typeof value === 'string') {
return value;
}

return util.inspect(value, { depth: null, colors: false });
}

let log = {
info: value => logger.info(formatMessage(value)),
warning: value => logger.warning(formatMessage(value)),
err: value => logger.err(formatMessage(value)),
on: (...args) => logger.on(...args),
};

logger.on('error', (error) => {
console.error('Logger error:', error);
});

Expand Down
4 changes: 2 additions & 2 deletions lib/v1.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import _ from 'lodash';
import minimatch from 'minimatch';
import { makeRe } from 'minimatch';

import ApiError from '../lib/ApiError';
import db from '../db';
Expand Down Expand Up @@ -108,7 +108,7 @@ export function respond (err, result, req, res) {

function buildActionParams (query) {
return _.map(_.pick(query, v1Keys), (val, key) => {
return { [key]: { '$regex': minimatch.makeRe(val, { nocase: true }) } };
return { [key]: { '$regex': makeRe(val, { nocase: true }) } };
});
}

Expand Down
Loading