pilotjs

WebJar for pilotjs

Лицензия

Лицензия

MIT
Группа

Группа

org.webjars.npm
Идентификатор

Идентификатор

pilotjs
Последняя версия

Последняя версия

1.7.0
Дата

Дата

Тип

Тип

jar
Описание

Описание

pilotjs
WebJar for pilotjs
Ссылка на сайт

Ссылка на сайт

http://webjars.org
Система контроля версий

Система контроля версий

https://github.com/rubaxa/Pilot

Скачать pilotjs

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/org.webjars.npm/pilotjs/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>pilotjs</artifactId>
    <version>1.7.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/pilotjs/
implementation 'org.webjars.npm:pilotjs:1.7.0'
// https://jarcasting.com/artifacts/org.webjars.npm/pilotjs/
implementation ("org.webjars.npm:pilotjs:1.7.0")
'org.webjars.npm:pilotjs:jar:1.7.0'
<dependency org="org.webjars.npm" name="pilotjs" rev="1.7.0">
  <artifact name="pilotjs" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='pilotjs', version='1.7.0')
)
libraryDependencies += "org.webjars.npm" % "pilotjs" % "1.7.0"
[org.webjars.npm/pilotjs "1.7.0"]

Зависимости

Библиотека не имеет зависимостей. Это самодостаточное приложение, которое не зависит ни от каких других библиотек.

Модули Проекта

Данный проект не имеет модулей.

Pilot v2

Multifunctional JavaScript router solves the problem of routing your application, providing full control over the route.

Get started

const router = Pilot.create({
	'#route-id': {
    url: '/:type(/:detail)?', // route pattern
    model: {
      user: (req) => fetch(`/api/${req.params.type}`).then(r => r.json()),
    },
		onroute(/**Pilot.Request*/req) {
      console.log(this.model.user);
		}
	}
});

// Запускаем перехват ссылок и history api
router.listenFrom(document, {autoStart: true});

// Где-то в коде
router.go('#route-id').then(() => ...);
router.getUrl('#route-id', {type: 'user'}); // '/user';
router.route.getUrl({type: 'user'}); // '/user';
router.route.getUrl({type: 'user', detail: 123}); // '/user/123';

API

  • create(stitemap: Object): Pilot
  • URL([url: string[, base: string]]) — see Native URL and
    • parse(url: string)
    • toMatcher(pattern: string|RegExp)
    • #properties
      • protocol: string
      • protocolSeparator: string
      • credhost: string
      • cred: string
      • username: string
      • password: string
      • host: string
      • hostname: string
      • port: string
      • origin: string
      • path: string or pathname
      • segment1: string
      • segment2: string
      • search: string
      • query: object
      • params: object
      • hash: string
    • #methods
      • addToQuery(add: object|string|null)
      • removeFromQuery(remove: string[])
      • setQuery(add: object|string|null[, remove: string[])
  • queryString
    • parse(value: string): object
    • stringify(query: object): string

Pilot lifecycle

beforeroute

  • req:Pilot.Request

route

  • req:Pilot.Request
  • route:Pilot.Route

routefail

  • req:Pilot.Request
  • route:Pilot.Route
  • error:Error

routeend

  • req:Pilot.Request
  • route:Pilot.Route

Pilot methods and properties

model:Object

List of all models


request:Pilot.Request

Current Request.


activeUrl:URL

Active/Current URL.


route:Pilot.Route

Current route.


getUrl(id[, params[, query]]):string

  • id:string — route id
  • params:object — route parametrs (optional)
  • query:object|inherit — route GET-query parametrs (optional)

go(id[, params[, query[, details]]]):Promise

  • id:string — route id
  • params:object — route parameters (optional)
  • query:object|inherit — route GET-query parameters (optional)
  • details:object - route navigation details (options)

nav(url[, details]):Promise

  • url:string
  • details:object - route navigation details (options)

reload():Promise

Emits beforereload and reload events. if a handler to beforereload returns false, does not perform actual reload and returns a resolved promise instead.


Pilot.Route methods and properties

model:Object

Local models (inherit global models).


init()

Protected method.


getUrl([params, [query]]):string

  • params:Object (optional)
  • query:object|inherit — route GET-query parametrs (optional)

is(id):boolean

id:string — route id or space-separated list


Pilot.Loader

const modelLoader = new Pilot.Loader({
  user: ({params:{id}}) => fetch(`/api/user/${id}`).then(r => r.json()),
  status: () => fetch(`/api/status`).then(r => r.json()),
}, {
  // неважно сколько раз вызвать `fetch`,
  // если уже есть запрос на сервер, новый не последует
  persist: true,

  // Обработку данных загруженной модели
  processingModel(modelName, modelData, req, models) {
    return {...modelData, pathed: true}; // or Promise
  },

  // Обработка ошибки при загрузки модели
  processingModelError(modelName, error, req, models) {
    return Promise.resolve({defaultData: 123}); // или undefined для reject
  },

  // Финальная обработка полученных данных
  processing(req, models) {
    return {...models, patched: true};
  },
});

// Используем `modelLoader`
const router = Pilot.create({
  model: modelLoader,
});

// Где-то в коде
modelLoader.fetch().then(model => {
  console.log(model.user);
  console.log(model.status);
});

Версии библиотеки

Версия
1.7.0