style: rename platform to bridge (#452)
* style: rename platform to bridge * chore: tsc
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
declare const __VERSION__: string;
|
||||
declare const __PLATFORM_WEB__: boolean;
|
||||
declare const __WEB__: boolean;
|
||||
|
||||
import angular from 'angular';
|
||||
import { configRoutes } from './routes';
|
||||
@@ -51,22 +51,22 @@ import {
|
||||
|
||||
import { trusted } from './filters';
|
||||
import { isDev } from './utils';
|
||||
import { Platform, WebPlatform } from './services/platform';
|
||||
import { Bridge, BrowserBridge } from './services/bridge';
|
||||
|
||||
if (__PLATFORM_WEB__) {
|
||||
startApplication(new WebPlatform());
|
||||
if (__WEB__) {
|
||||
startApplication(new BrowserBridge());
|
||||
} else {
|
||||
(window as any).startApplication = startApplication;
|
||||
}
|
||||
|
||||
function startApplication(platform: Platform) {
|
||||
function startApplication(bridge: Bridge) {
|
||||
angular.module('app', ['ngSanitize']);
|
||||
|
||||
// Config
|
||||
angular
|
||||
.module('app')
|
||||
.config(configRoutes)
|
||||
.constant('platform', platform)
|
||||
.constant('bridge', bridge)
|
||||
.constant('appVersion', __VERSION__);
|
||||
|
||||
// Controllers
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/** Platform-specific (i-e desktop/web) behavior is handled by a Platform object. */
|
||||
export interface Platform {
|
||||
/** Platform-specific (i-e Electron/browser) behavior is handled by a Bridge object. */
|
||||
export interface Bridge {
|
||||
getKeychainValue(): Promise<unknown>;
|
||||
setKeychainValue(value: any): Promise<void>;
|
||||
clearKeychainValue(): Promise<void>;
|
||||
@@ -7,7 +7,7 @@ export interface Platform {
|
||||
|
||||
const KEYCHAIN_STORAGE_KEY = 'keychain';
|
||||
|
||||
export class WebPlatform implements Platform {
|
||||
export class BrowserBridge implements Bridge {
|
||||
async getKeychainValue(): Promise<unknown> {
|
||||
const value = localStorage.getItem(KEYCHAIN_STORAGE_KEY);
|
||||
if (value) {
|
||||
@@ -21,4 +21,4 @@ export class WebPlatform implements Platform {
|
||||
async clearKeychainValue(): Promise<void> {
|
||||
localStorage.removeItem(KEYCHAIN_STORAGE_KEY);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
import angular from 'angular';
|
||||
import { getPlatformString } from '@/utils';
|
||||
import { AlertService } from '@/services/alertService';
|
||||
import { WebDeviceInterface } from '@/interface';
|
||||
import { WebDeviceInterface } from '@/web_device_interface';
|
||||
import {
|
||||
DesktopManager,
|
||||
LockManager,
|
||||
@@ -26,7 +26,7 @@ import {
|
||||
} from '@/services';
|
||||
import { AppState } from '@/ui_models/app_state';
|
||||
import { SNWebCrypto } from 'sncrypto/dist/sncrypto-web';
|
||||
import { Platform } from '@/services/platform';
|
||||
import { Bridge } from '@/services/bridge';
|
||||
|
||||
type WebServices = {
|
||||
appState: AppState
|
||||
@@ -56,13 +56,13 @@ export class WebApplication extends SNApplication {
|
||||
$timeout: ng.ITimeoutService,
|
||||
scope: ng.IScope,
|
||||
onDeinit: (app: WebApplication) => void,
|
||||
platform: Platform,
|
||||
bridge: Bridge,
|
||||
) {
|
||||
const namespace = '';
|
||||
const deviceInterface = new WebDeviceInterface(
|
||||
namespace,
|
||||
$timeout,
|
||||
platform
|
||||
bridge
|
||||
);
|
||||
super(
|
||||
Environment.Web,
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
ThemeManager
|
||||
} from '@/services';
|
||||
import { AppState } from '@/ui_models/app_state';
|
||||
import { Platform } from '@/services/platform';
|
||||
import { Bridge } from '@/services/bridge';
|
||||
|
||||
type AppManagerChangeCallback = () => void
|
||||
|
||||
@@ -29,7 +29,7 @@ export class ApplicationGroup {
|
||||
$compile: ng.ICompileService,
|
||||
$rootScope: ng.IRootScopeService,
|
||||
$timeout: ng.ITimeoutService,
|
||||
private platform: Platform
|
||||
private bridge: Bridge
|
||||
) {
|
||||
this.$compile = $compile;
|
||||
this.$timeout = $timeout;
|
||||
@@ -71,7 +71,7 @@ export class ApplicationGroup {
|
||||
this.$timeout,
|
||||
scope,
|
||||
this.onApplicationDeinit,
|
||||
this.platform
|
||||
this.bridge
|
||||
);
|
||||
const appState = new AppState(
|
||||
this.$rootScope,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { DeviceInterface, getGlobalScope, SNApplication } from 'snjs';
|
||||
import { Database } from '@/database';
|
||||
import { Platform } from './services/platform';
|
||||
import { Bridge } from './services/bridge';
|
||||
|
||||
export class WebDeviceInterface extends DeviceInterface {
|
||||
|
||||
@@ -9,7 +9,7 @@ export class WebDeviceInterface extends DeviceInterface {
|
||||
constructor(
|
||||
namespace: string,
|
||||
timeout: any,
|
||||
private platform: Platform
|
||||
private bridge: Bridge
|
||||
) {
|
||||
super(
|
||||
namespace,
|
||||
@@ -101,15 +101,15 @@ export class WebDeviceInterface extends DeviceInterface {
|
||||
}
|
||||
|
||||
getKeychainValue(): Promise<unknown> {
|
||||
return this.platform.getKeychainValue();
|
||||
return this.bridge.getKeychainValue();
|
||||
}
|
||||
|
||||
setKeychainValue(value: any) {
|
||||
return this.platform.setKeychainValue(value);
|
||||
return this.bridge.setKeychainValue(value);
|
||||
}
|
||||
|
||||
clearKeychainValue() {
|
||||
return this.platform.clearKeychainValue();
|
||||
return this.bridge.clearKeychainValue();
|
||||
}
|
||||
|
||||
openUrl(url: string) {
|
||||
11
dist/@types/app/assets/javascripts/services/bridge.d.ts
vendored
Normal file
11
dist/@types/app/assets/javascripts/services/bridge.d.ts
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/** Platform-specific (i-e Electron/browser) behavior is handled by a Bridge object. */
|
||||
export interface Bridge {
|
||||
getKeychainValue(): Promise<unknown>;
|
||||
setKeychainValue(value: any): Promise<void>;
|
||||
clearKeychainValue(): Promise<void>;
|
||||
}
|
||||
export declare class BrowserBridge implements Bridge {
|
||||
getKeychainValue(): Promise<unknown>;
|
||||
setKeychainValue(value: any): Promise<void>;
|
||||
clearKeychainValue(): Promise<void>;
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import { PasswordWizardType } from '@/types';
|
||||
import { SNApplication, Challenge, ProtectedAction } from 'snjs';
|
||||
import { DesktopManager, LockManager, ArchiveManager, NativeExtManager, StatusManager, ThemeManager, PreferencesManager, KeyboardManager } from '@/services';
|
||||
import { AppState } from '@/ui_models/app_state';
|
||||
import { Platform } from '@/services/platform';
|
||||
import { Bridge } from '@/services/bridge';
|
||||
declare type WebServices = {
|
||||
appState: AppState;
|
||||
desktopService: DesktopManager;
|
||||
@@ -25,7 +25,7 @@ export declare class WebApplication extends SNApplication {
|
||||
private currentAuthenticationElement?;
|
||||
editorGroup: EditorGroup;
|
||||
componentGroup: ComponentGroup;
|
||||
constructor($compile: ng.ICompileService, $timeout: ng.ITimeoutService, scope: ng.IScope, onDeinit: (app: WebApplication) => void, platform: Platform);
|
||||
constructor($compile: ng.ICompileService, $timeout: ng.ITimeoutService, scope: ng.IScope, onDeinit: (app: WebApplication) => void, bridge: Bridge);
|
||||
/** @override */
|
||||
deinit(): void;
|
||||
setWebServices(services: WebServices): void;
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
/// <reference types="angular" />
|
||||
import { WebApplication } from './application';
|
||||
import { Platform } from '@/services/platform';
|
||||
import { Bridge } from '@/services/bridge';
|
||||
declare type AppManagerChangeCallback = () => void;
|
||||
export declare class ApplicationGroup {
|
||||
private platform;
|
||||
private bridge;
|
||||
$compile: ng.ICompileService;
|
||||
$rootScope: ng.IRootScopeService;
|
||||
$timeout: ng.ITimeoutService;
|
||||
applications: WebApplication[];
|
||||
changeObservers: AppManagerChangeCallback[];
|
||||
activeApplication?: WebApplication;
|
||||
constructor($compile: ng.ICompileService, $rootScope: ng.IRootScopeService, $timeout: ng.ITimeoutService, platform: Platform);
|
||||
constructor($compile: ng.ICompileService, $rootScope: ng.IRootScopeService, $timeout: ng.ITimeoutService, bridge: Bridge);
|
||||
private createDefaultApplication;
|
||||
/** @callback */
|
||||
onApplicationDeinit(application: WebApplication): void;
|
||||
|
||||
@@ -22,7 +22,8 @@ export declare class PureViewCtrl<P = CtrlProps, S = CtrlState> {
|
||||
/** @override */
|
||||
getInitialState(): S;
|
||||
setState(state: Partial<S>): Promise<unknown>;
|
||||
updateUI(func: () => void): Promise<void>;
|
||||
/** @returns a promise that resolves after the UI has been updated. */
|
||||
flushUI(): import("angular").IPromise<void>;
|
||||
initProps(props: CtrlProps): void;
|
||||
addAppStateObserver(): void;
|
||||
onAppStateEvent(eventName: any, data: any): void;
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import { DeviceInterface, SNApplication } from 'snjs';
|
||||
import { Bridge } from './services/bridge';
|
||||
export declare class WebDeviceInterface extends DeviceInterface {
|
||||
private bridge;
|
||||
private database;
|
||||
constructor(namespace: string, timeout: any);
|
||||
constructor(namespace: string, timeout: any, bridge: Bridge);
|
||||
setApplication(application: SNApplication): void;
|
||||
deinit(): void;
|
||||
getRawStorageValue(key: string): Promise<string | null>;
|
||||
@@ -22,7 +24,7 @@ export declare class WebDeviceInterface extends DeviceInterface {
|
||||
saveRawDatabasePayloads(payloads: any[]): Promise<void>;
|
||||
removeRawDatabasePayloadWithId(id: string): Promise<void>;
|
||||
removeAllRawDatabasePayloads(): Promise<void>;
|
||||
getKeychainValue(): Promise<any>;
|
||||
getKeychainValue(): Promise<unknown>;
|
||||
setKeychainValue(value: any): Promise<void>;
|
||||
clearKeychainValue(): Promise<void>;
|
||||
openUrl(url: string): void;
|
||||
|
||||
@@ -12,7 +12,7 @@ module.exports = (env = {
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
__VERSION__: JSON.stringify(require('./package.json').version),
|
||||
__PLATFORM_WEB__: JSON.stringify(env.platform === 'web'),
|
||||
__WEB__: JSON.stringify(env.platform === 'web'),
|
||||
}),
|
||||
new MiniCssExtractPlugin({
|
||||
// Options similar to the same options in webpackOptions.output
|
||||
|
||||
Reference in New Issue
Block a user