mirror of
https://github.com/aspnet/JavaScriptServices.git
synced 2025-12-25 11:07:29 +00:00
Migrate from hasher.js to history.js to support HTML5-style navigation. Also clean up the HMR support.
This commit is contained in:
116
templates/KnockoutSpa/typings/hasher/hasher.d.ts
vendored
116
templates/KnockoutSpa/typings/hasher/hasher.d.ts
vendored
@@ -1,116 +0,0 @@
|
||||
// Type definitions for Hasher.js
|
||||
// Project: https://github.com/millermedeiros/hasher/
|
||||
// Definitions by: flyfishMT <https://github.com/flyfishMT/>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
/// <reference path="../js-signals/js-signals.d.ts" />
|
||||
|
||||
declare module HasherJs {
|
||||
|
||||
export interface HasherStatic {
|
||||
|
||||
// {string} hasher.appendHash
|
||||
// String that should always be added to the end of Hash value.
|
||||
appendHash(): string;
|
||||
|
||||
// default value: '';
|
||||
// will be automatically removed from `hasher.getHash()`
|
||||
// avoid conflicts with elements that contain ID equal to hash value;
|
||||
// <static> {signals.Signal} hasher.changed
|
||||
// Signal dispatched when hash value changes. - pass current hash as 1st parameter to listeners and previous hash value as 2nd parameter.
|
||||
changed: Signal;
|
||||
|
||||
// <static> {signals.Signal} hasher.initialized
|
||||
// Signal dispatched when hasher is initialized. - pass current hash as first parameter to listeners.
|
||||
initialized: Signal;
|
||||
|
||||
// <static> {string} hasher.prependHash
|
||||
// String that should always be added to the beginning of Hash value.
|
||||
prependHash: string;
|
||||
|
||||
// default value: '/';
|
||||
// will be automatically removed from `hasher.getHash()`
|
||||
// avoid conflicts with elements that contain ID equal to hash value;
|
||||
// <static> {string} hasher.separator
|
||||
// String used to split hash paths; used by hasher.getHashAsArray() to split paths.
|
||||
separator: string;
|
||||
|
||||
// default value: '/';
|
||||
// <static> {signals.Signal} hasher.stopped
|
||||
// Signal dispatched when hasher is stopped. - pass current hash as first parameter to listeners
|
||||
stopped: Signal;
|
||||
|
||||
// <static> <constant> {string} hasher.VERSION
|
||||
// hasher Version Number
|
||||
VERSION: string;
|
||||
|
||||
// Method Detail
|
||||
// <static> hasher.dispose()
|
||||
// Removes all event listeners, stops hasher and destroy hasher object. - IMPORTANT: hasher won't work after calling this method, hasher Object will be deleted.
|
||||
dispose(): void;
|
||||
|
||||
// <static> {string} hasher.getBaseURL()
|
||||
// Returns:
|
||||
// {string} Retrieve URL without query string and hash.
|
||||
getBaseURL(): string;
|
||||
|
||||
// <static> {string} hasher.getHash()
|
||||
// Returns:
|
||||
// {string} Hash value without '#', `hasher.appendHash` and `hasher.prependHash`.
|
||||
getHash(): string;
|
||||
|
||||
// <static> {Array.} hasher.getHashAsArray()
|
||||
// Returns:
|
||||
// {Array.} Hash value split into an Array.
|
||||
getHashAsArray(): string[];
|
||||
|
||||
// <static> {string} hasher.getURL()
|
||||
// Returns:
|
||||
// {string} Full URL.
|
||||
getURL(): string;
|
||||
|
||||
// <static> hasher.init()
|
||||
// Start listening/dispatching changes in the hash/history.
|
||||
init(): void;
|
||||
|
||||
// hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons before calling this method.
|
||||
// <static> {boolean} hasher.isActive()
|
||||
// Returns:
|
||||
// {boolean} If hasher is listening to changes on the browser history and/or hash value.
|
||||
isActive(): boolean;
|
||||
|
||||
// <static> hasher.replaceHash(path)
|
||||
// Set Hash value without keeping previous hash on the history record. Similar to calling window.location.replace("#/hash") but will also work on IE6-7.
|
||||
// hasher.replaceHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor'
|
||||
// Parameters:
|
||||
// {...string} path
|
||||
// Hash value without '#'. Hasher will join path segments using `hasher.separator` and prepend/append hash value with `hasher.appendHash` and `hasher.prependHash`
|
||||
replaceHash(...path: string[]): void;
|
||||
|
||||
// <static> hasher.setHash(path)
|
||||
// Set Hash value, generating a new history record.
|
||||
// hasher.setHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor'
|
||||
// Parameters:
|
||||
// {...string} path
|
||||
// Hash value without '#'. Hasher will join path segments using `hasher.separator` and prepend/append hash value with `hasher.appendHash` and `hasher.prependHash`
|
||||
setHash(...path: string[]): void;
|
||||
|
||||
// <static> hasher.stop()
|
||||
// Stop listening/dispatching changes in the hash/history.
|
||||
// hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons after calling this method, unless you call hasher.init() again.
|
||||
// hasher will still dispatch changes made programatically by calling hasher.setHash();
|
||||
stop(): void;
|
||||
|
||||
// <static> {string} hasher.toString()
|
||||
// Returns:
|
||||
// {string} A string representation of the object.
|
||||
toString(): string;
|
||||
}
|
||||
}
|
||||
|
||||
declare var hasher: HasherJs.HasherStatic;
|
||||
|
||||
// AMD
|
||||
declare module 'hasher'{
|
||||
export = hasher;
|
||||
}
|
||||
61
templates/KnockoutSpa/typings/history/history.d.ts
vendored
Normal file
61
templates/KnockoutSpa/typings/history/history.d.ts
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
// Type definitions for History.js 1.8.0
|
||||
// Project: https://github.com/browserstate/history.js
|
||||
// Definitions by: Boris Yankov <https://github.com/borisyankov/>, Gidon Junge <https://github.com/gjunge/>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
|
||||
interface HistoryAdapter {
|
||||
bind(element: any, event: string, callback: () => void): void;
|
||||
trigger(element: any, event: string): void;
|
||||
onDomLoad(callback: () => void): void;
|
||||
}
|
||||
|
||||
// Since History is defined in lib.d.ts as well
|
||||
// the name for our interfaces was chosen to be Historyjs
|
||||
// However at runtime you would need to do
|
||||
// https://github.com/borisyankov/DefinitelyTyped/issues/277
|
||||
// var Historyjs: Historyjs = <any>History;
|
||||
|
||||
interface Historyjs {
|
||||
|
||||
enabled: boolean;
|
||||
|
||||
pushState(data: any, title: string, url: string): void;
|
||||
replaceState(data: any, title: string, url: string): void;
|
||||
getState(): HistoryState;
|
||||
getStateByIndex(index: number): HistoryState;
|
||||
getCurrentIndex(): number;
|
||||
getHash(): string;
|
||||
|
||||
Adapter: HistoryAdapter;
|
||||
|
||||
back(): void;
|
||||
forward(): void;
|
||||
go(x: Number): void;
|
||||
|
||||
log(...messages: any[]): void;
|
||||
debug(...messages: any[]): void;
|
||||
|
||||
options: HistoryOptions;
|
||||
}
|
||||
|
||||
interface HistoryState {
|
||||
data?: any;
|
||||
title?: string;
|
||||
url: string;
|
||||
}
|
||||
|
||||
interface HistoryOptions {
|
||||
hashChangeInterval?: number;
|
||||
safariPollInterval?: number;
|
||||
doubleCheckInterval?: number;
|
||||
disableSuid?: boolean;
|
||||
storeInterval?: number;
|
||||
busyDelay?: number;
|
||||
debug?: boolean;
|
||||
initialTitle?: string;
|
||||
html4Mode?: boolean;
|
||||
delayInit?: number;
|
||||
|
||||
|
||||
}
|
||||
233
templates/KnockoutSpa/typings/react-router/history.d.ts
vendored
Normal file
233
templates/KnockoutSpa/typings/react-router/history.d.ts
vendored
Normal file
@@ -0,0 +1,233 @@
|
||||
// Type definitions for history v2.0.0
|
||||
// Project: https://github.com/rackt/history
|
||||
// Definitions by: Sergey Buturlakin <https://github.com/sergey-buturlakin>, Nathan Brown <https://github.com/ngbrown>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
|
||||
declare namespace HistoryModule {
|
||||
|
||||
// types based on https://github.com/rackt/history/blob/master/docs/Terms.md
|
||||
|
||||
type Action = string
|
||||
|
||||
type BeforeUnloadHook = () => string | boolean
|
||||
|
||||
type CreateHistory<T> = (options?: HistoryOptions) => T
|
||||
|
||||
type CreateHistoryEnhancer<T, E> = (createHistory: CreateHistory<T>) => CreateHistory<T & E>
|
||||
|
||||
interface History {
|
||||
listenBefore(hook: TransitionHook): () => void
|
||||
listen(listener: LocationListener): () => void
|
||||
transitionTo(location: Location): void
|
||||
push(path: LocationDescriptor): void
|
||||
replace(path: LocationDescriptor): void
|
||||
go(n: number): void
|
||||
goBack(): void
|
||||
goForward(): void
|
||||
createKey(): LocationKey
|
||||
createPath(path: LocationDescriptor): Path
|
||||
createHref(path: LocationDescriptor): Href
|
||||
createLocation(path?: LocationDescriptor, action?: Action, key?: LocationKey): Location
|
||||
|
||||
/** @deprecated use a location descriptor instead */
|
||||
createLocation(path?: Path, state?: LocationState, action?: Action, key?: LocationKey): Location
|
||||
/** @deprecated use location.key to save state instead */
|
||||
pushState(state: LocationState, path: Path): void
|
||||
/** @deprecated use location.key to save state instead */
|
||||
replaceState(state: LocationState, path: Path): void
|
||||
/** @deprecated use location.key to save state instead */
|
||||
setState(state: LocationState): void
|
||||
/** @deprecated use listenBefore instead */
|
||||
registerTransitionHook(hook: TransitionHook): void
|
||||
/** @deprecated use the callback returned from listenBefore instead */
|
||||
unregisterTransitionHook(hook: TransitionHook): void
|
||||
}
|
||||
|
||||
type HistoryOptions = {
|
||||
getCurrentLocation?: () => Location
|
||||
finishTransition?: (nextLocation: Location) => boolean
|
||||
saveState?: (key: LocationKey, state: LocationState) => void
|
||||
go?: (n: number) => void
|
||||
getUserConfirmation?: (message: string, callback: (result: boolean) => void) => void
|
||||
keyLength?: number
|
||||
queryKey?: string | boolean
|
||||
stringifyQuery?: (obj: any) => string
|
||||
parseQueryString?: (str: string) => any
|
||||
basename?: string
|
||||
entries?: string | [any]
|
||||
current?: number
|
||||
}
|
||||
|
||||
type Href = string
|
||||
|
||||
type Location = {
|
||||
pathname: Pathname
|
||||
search: Search
|
||||
query: Query
|
||||
state: LocationState
|
||||
action: Action
|
||||
key: LocationKey
|
||||
basename?: string
|
||||
}
|
||||
|
||||
type LocationDescriptorObject = {
|
||||
pathname?: Pathname
|
||||
search?: Search
|
||||
query?: Query
|
||||
state?: LocationState
|
||||
}
|
||||
|
||||
type LocationDescriptor = LocationDescriptorObject | Path
|
||||
|
||||
type LocationKey = string
|
||||
|
||||
type LocationListener = (location: Location) => void
|
||||
|
||||
type LocationState = Object
|
||||
|
||||
type Path = string // Pathname + QueryString
|
||||
|
||||
type Pathname = string
|
||||
|
||||
type Query = Object
|
||||
|
||||
type QueryString = string
|
||||
|
||||
type Search = string
|
||||
|
||||
type TransitionHook = (location: Location, callback: (result: any) => void) => any
|
||||
|
||||
|
||||
interface HistoryBeforeUnload {
|
||||
listenBeforeUnload(hook: BeforeUnloadHook): () => void
|
||||
}
|
||||
|
||||
interface HistoryQueries {
|
||||
pushState(state: LocationState, pathname: Pathname | Path, query?: Query): void
|
||||
replaceState(state: LocationState, pathname: Pathname | Path, query?: Query): void
|
||||
createPath(path: Path, query?: Query): Path
|
||||
createHref(path: Path, query?: Query): Href
|
||||
}
|
||||
|
||||
|
||||
// Global usage, without modules, needs the small trick, because lib.d.ts
|
||||
// already has `history` and `History` global definitions:
|
||||
// var createHistory = ((window as any).History as HistoryModule.Module).createHistory;
|
||||
interface Module {
|
||||
createHistory: CreateHistory<History>
|
||||
createHashHistory: CreateHistory<History>
|
||||
createMemoryHistory: CreateHistory<History>
|
||||
createLocation(path?: Path, state?: LocationState, action?: Action, key?: LocationKey): Location
|
||||
useBasename<T>(createHistory: CreateHistory<T>): CreateHistory<T>
|
||||
useBeforeUnload<T>(createHistory: CreateHistory<T>): CreateHistory<T & HistoryBeforeUnload>
|
||||
useQueries<T>(createHistory: CreateHistory<T>): CreateHistory<T & HistoryQueries>
|
||||
actions: {
|
||||
PUSH: string
|
||||
REPLACE: string
|
||||
POP: string
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
declare module "history/lib/createBrowserHistory" {
|
||||
|
||||
export default function createBrowserHistory(options?: HistoryModule.HistoryOptions): HistoryModule.History
|
||||
|
||||
}
|
||||
|
||||
|
||||
declare module "history/lib/createHashHistory" {
|
||||
|
||||
export default function createHashHistory(options?: HistoryModule.HistoryOptions): HistoryModule.History
|
||||
|
||||
}
|
||||
|
||||
|
||||
declare module "history/lib/createMemoryHistory" {
|
||||
|
||||
export default function createMemoryHistory(options?: HistoryModule.HistoryOptions): HistoryModule.History
|
||||
|
||||
}
|
||||
|
||||
|
||||
declare module "history/lib/createLocation" {
|
||||
|
||||
export default function createLocation(path?: HistoryModule.Path, state?: HistoryModule.LocationState, action?: HistoryModule.Action, key?: HistoryModule.LocationKey): HistoryModule.Location
|
||||
|
||||
}
|
||||
|
||||
|
||||
declare module "history/lib/useBasename" {
|
||||
|
||||
export default function useBasename<T>(createHistory: HistoryModule.CreateHistory<T>): HistoryModule.CreateHistory<T>
|
||||
|
||||
}
|
||||
|
||||
|
||||
declare module "history/lib/useBeforeUnload" {
|
||||
|
||||
export default function useBeforeUnload<T>(createHistory: HistoryModule.CreateHistory<T>): HistoryModule.CreateHistory<T & HistoryModule.HistoryBeforeUnload>
|
||||
|
||||
}
|
||||
|
||||
|
||||
declare module "history/lib/useQueries" {
|
||||
|
||||
export default function useQueries<T>(createHistory: HistoryModule.CreateHistory<T>): HistoryModule.CreateHistory<T & HistoryModule.HistoryQueries>
|
||||
|
||||
}
|
||||
|
||||
|
||||
declare module "history/lib/actions" {
|
||||
|
||||
export const PUSH: string
|
||||
|
||||
export const REPLACE: string
|
||||
|
||||
export const POP: string
|
||||
|
||||
export default {
|
||||
PUSH,
|
||||
REPLACE,
|
||||
POP
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
declare module "history/lib/DOMUtils" {
|
||||
export function addEventListener(node: EventTarget, event: string, listener: EventListenerOrEventListenerObject): void;
|
||||
export function removeEventListener(node: EventTarget, event: string, listener: EventListenerOrEventListenerObject): void;
|
||||
export function getHashPath(): string;
|
||||
export function replaceHashPath(path: string): void;
|
||||
export function getWindowPath(): string;
|
||||
export function go(n: number): void;
|
||||
export function getUserConfirmation(message: string, callback: (result: boolean) => void): void;
|
||||
export function supportsHistory(): boolean;
|
||||
export function supportsGoWithoutReloadUsingHash(): boolean;
|
||||
}
|
||||
|
||||
|
||||
declare module "history" {
|
||||
|
||||
export { default as createHistory } from "history/lib/createBrowserHistory"
|
||||
|
||||
export { default as createHashHistory } from "history/lib/createHashHistory"
|
||||
|
||||
export { default as createMemoryHistory } from "history/lib/createMemoryHistory"
|
||||
|
||||
export { default as createLocation } from "history/lib/createLocation"
|
||||
|
||||
export { default as useBasename } from "history/lib/useBasename"
|
||||
|
||||
export { default as useBeforeUnload } from "history/lib/useBeforeUnload"
|
||||
|
||||
export { default as useQueries } from "history/lib/useQueries"
|
||||
|
||||
import * as Actions from "history/lib/actions"
|
||||
|
||||
export { Actions }
|
||||
|
||||
}
|
||||
9
templates/KnockoutSpa/typings/tsd.d.ts
vendored
9
templates/KnockoutSpa/typings/tsd.d.ts
vendored
@@ -1,7 +1,8 @@
|
||||
/// <reference path="crossroads/crossroads.d.ts" />
|
||||
/// <reference path="hasher/hasher.d.ts" />
|
||||
/// <reference path="js-signals/js-signals.d.ts" />
|
||||
/// <reference path="es6-promise/es6-promise.d.ts" />
|
||||
/// <reference path="knockout/knockout.d.ts" />
|
||||
/// <reference path="requirejs/require.d.ts" />
|
||||
/// <reference path="whatwg-fetch/whatwg-fetch.d.ts" />
|
||||
/// <reference path="es6-promise/es6-promise.d.ts" />
|
||||
/// <reference path="history/history.d.ts" />
|
||||
/// <reference path="react-router/history.d.ts" />
|
||||
/// <reference path="crossroads/crossroads.d.ts" />
|
||||
/// <reference path="js-signals/js-signals.d.ts" />
|
||||
|
||||
Reference in New Issue
Block a user