next() Packaged Middleware

    @eik/common
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.1 • Public • Published

    Eik Commons

    This package contains common utilities and schemas

    APIs

    schemas

    eik.json

    Importing schemas

    const { schemas, assert } = require('@eik/common');

    Validating an eik.json file

    const { error, value } = schemas.validate.eikJSON({
        name: 'my-app',
        version: '1.0.0',
        server: 'http://eik-server',
        files: [],
    });
    
    //or
    
    assert.eikJSON({
        name: 'my-app',
        version: '1.0.0',
        server: 'http://eik-server',
        files: [],
    });

    Using individual schema validators

    name
    const { error, value } = schemas.validate.name('my-app');
    
    // or
    
    assert.name('my-app');
    version
    const { error, value } = schemas.validate.version('1.0.0');
    
    // or
    
    assert.version('1.0.0');
    type
    const { error, value } = schemas.validate.type('package');
    
    // or
    
    assert.type('package');
    server
    const { error, value } = schemas.validate.server('http://myeikserver.com');
    
    // or
    
    assert.server('http://myeikserver.com');
    files
    const { error, value } = schemas.validate.files({
        './index.js': '/path/to/file.js',
    });
    
    // or
    
    assert.files({
        './index.js': '/path/to/file.js',
    });
    import map
    const { error, value } = schemas.validate.importMap(
        'http://meserver.com/map.json',
    );
    
    const { error, value } = schemas.validate.importMap([
        'http://meserver.com/map1.json',
        'http://meserver.com/map2.json',
    ]);
    
    // or
    
    assert.importMap([
        'http://meserver.com/map1.json',
        'http://meserver.com/map2.json',
    ]);
    out
    const { error, value } = schemas.validate.out('./.eik');
    
    // or
    
    assert.out('./.eik');

    helpers

    localAssets

    A function to help development by mounting development routes to an Express.js or Fastify app based on values defined in eik.json

    const express = require('express');
    const { helpers } = require('@eik/common');
    const app = express();
    await helpers.localAssets(app);

    For an eik.json file such as

    {
        "name": "my-app",
        "version": "1.0.0",
        "server": "https://assets.myeikserver.com",
        "files": {
            "esm.js": "./assets/esm.js",
            "esm.css": "./assets/esm.css",
            "/": "./assets/**/*.map"
        }
    }

    A number of routes would be mounted into your app.

    /pkg/my-app/1.0.0/esm.js
    /pkg/my-app/1.0.0/esm.css
    /pkg/my-app/1.0.0/esm.js.map
    /pkg/my-app/1.0.0/esm.css.map
    

    packageURL

    This helper function can be used to build URLs for given entries in an eik.json files section.

    Given the following eik.json file:

    {
        "name": "my-app",
        "version": "1.0.0",
        "server": "https://assets.myeikserver.com",
        "files": {
            "esm.js": "./assets/esm.js",
            "esm.css": "./assets/esm.css",
            "/": "./assets/**/*.map"
        }
    }

    and the following call to packageURL

    const { helpers } = require('@eik/common');
    const url = await helpers.packageURL('esm.js');

    The URL returned will be https://assets.myeikserver.com/pkg/my-app/1.0.0/esm.js

    Keywords

    none

    Install

    npm i @eik/common

    DownloadsWeekly Downloads

    1,398

    Version

    3.0.1

    License

    ISC

    Unpacked Size

    61.7 kB

    Total Files

    59

    Last publish

    Collaborators

    • trygve
    • digitalsadhu
    • trygve-bot
    • stipsan