diff --git a/.github/workflows/publish-adapter-minio.yml b/.github/workflows/publish-adapter-minio.yml new file mode 100644 index 00000000..0a622c03 --- /dev/null +++ b/.github/workflows/publish-adapter-minio.yml @@ -0,0 +1,21 @@ +name: Publish Adapter Minio +on: + push: + branches: + - main + paths: + - "packages/adapter-minio/**" +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: "14.x" + registry-url: "https://registry.npmjs.org" + scope: "@hyper63" + - run: cd packages/adapter-minio && yarn + - run: cd packages/adapter-minio && npm publish --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/test-adapter-minio.yml b/.github/workflows/test-adapter-minio.yml new file mode 100644 index 00000000..5d237618 --- /dev/null +++ b/.github/workflows/test-adapter-minio.yml @@ -0,0 +1,22 @@ +name: test minio adapter +on: + push: + branches-ignore: main + paths: + - "packages/adapter-minio/**" +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [14.x] + steps: + - uses: actions/checkout@v2 + - name: Use NodeJS ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: cd packages/adapter-minio && yarn + - run: cd packages/adapter-minio && yarn test + env: + CI: true diff --git a/package.json b/package.json index c63b21ea..859e9122 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "packages/adapter-fs", "packages/adapter-minisearch", "packages/adapter-hooks", + "packages/adapter-minio", "packages/app-express", "packages/app-graphql", "packages/port-data", diff --git a/packages/adapter-minio/README.md b/packages/adapter-minio/README.md index e69de29b..12ede700 100644 --- a/packages/adapter-minio/README.md +++ b/packages/adapter-minio/README.md @@ -0,0 +1,26 @@ +# hyper63 MINIO Adapter + +MinIO is a storage service that allows you to create +buckets and upload objects, like files, and media to +a storage solution. + +## Install + +```sh +npm install @hyper63/adapter-minio +``` + +## Configuration + +```js +const minio = require("@hyper63/adapter-minio"); + +module.exports = { + adapter: [ + { + port: "storage", + plugins: [minio({ url: "http://[user]:[password]/minio:9000" })], + }, + ], +}; +``` diff --git a/packages/adapter-minio/adapter.js b/packages/adapter-minio/adapter.js index 1ba140de..3f430e02 100644 --- a/packages/adapter-minio/adapter.js +++ b/packages/adapter-minio/adapter.js @@ -1,11 +1,11 @@ -import { Async } from 'crocks' +const { Async } = require('crocks') const prop = (key) => (obj) => obj[key]; const asyncify = (client, method) => Async.fromPromise(client[method].bind(client)); -export default (client) => ({ +module.exports = (client) => ({ makeBucket: (name) => asyncify( client, diff --git a/packages/adapter-minio/adapter_test.js b/packages/adapter-minio/adapter_test.js index 3b64570f..be8e36da 100644 --- a/packages/adapter-minio/adapter_test.js +++ b/packages/adapter-minio/adapter_test.js @@ -1,5 +1,5 @@ -import { default as test } from 'tape' -import { default as createAdapter } from './adapter' +const test = require('tape') +const createAdapter = require('./adapter') const client = ({ makeBucket(name) { diff --git a/packages/adapter-minio/index.js b/packages/adapter-minio/index.js index 054fc041..13b104f8 100644 --- a/packages/adapter-minio/index.js +++ b/packages/adapter-minio/index.js @@ -1,11 +1,11 @@ -import { default as createAdapter } from './adapter' -import * as Minio from 'minio' +const createAdapter = require('./adapter') +const Minio = require('minio') /** * @param {object} config * @returns {object} */ -export default function MinioStorageAdapter (config) { +module.exports = function MinioStorageAdapter (config) { /** * @param {object} env */ diff --git a/packages/adapter-minio/package.json b/packages/adapter-minio/package.json index decfd952..55371d48 100644 --- a/packages/adapter-minio/package.json +++ b/packages/adapter-minio/package.json @@ -12,6 +12,6 @@ "tape": "^5.0.1" }, "scripts": { - "test": "tape -r esm *_test.js" + "test": "tape *_test.js" } }