提交 0bce4998 编写于 作者: fxy060608's avatar fxy060608

wip: uni_modules编译模式

上级 b3042f9c
{"version":3,"sources":["uni_modules/test-uniplugin/utssdk/app-ios/index.uts","uni_modules/test-uniplugin/utssdk/interface.uts"],"sourcesContent":["import { UIDevice } from 'UIKit'\nimport { CLLocationManager, CLAuthorizationStatus } from 'CoreLocation'\nimport { ShowToast } from '../interface.uts'\n\ntype GetBatteryInfoOptions = {\n name: string\n pwd: number\n success?: (res: UTSJSONObject) => void\n fail?: (res: UTSJSONObject) => void\n complete?: (res: UTSJSONObject) => void\n}\n\nexport default function getBatteryInfo(options: GetBatteryInfoOptions) {\n new UIAlertController(\n (title = title),\n (message = message),\n (preferredStyle = UIAlertController.Style.alert)\n )\n const res = {\n errMsg: 'getBatteryInfo:ok',\n level: UIDevice.current.batteryLevel * 100,\n isCharging: UIDevice.current.batteryState == UIDevice.BatteryState.charging,\n }\n if (options.success != null) {\n options.success!(res)\n }\n if (options.complete != null) {\n options.complete!(res)\n }\n}\n\nexport function test1(callback: () => void): string {\n console.log({ \"a\": \"b\" })\n console.log('test1')\n\n\n\n\n console.log('def ios')\n\n\n console.log('ndef android')\n\n\n\n\n\n console.log('def android || def ios')\n\n\n\n\n console.log(CLLocationManager, CLAuthorizationStatus)\n const a = -3\n console.log(~a)\n return 'test1'\n}\n\nclass Test1 { }\nexport class Test {\n constructor() {\n new Test1()\n }\n test(): string | null {\n if (UTSiOS.macros(\"swift(>=1)\")) {\n console.log(\"swift(>=1)\")\n }\n if (UTSiOS.macros(\"arch(i386) || arch(arm)\")) {\n console.log(\"arch(i386) || arch(arm)\")\n }\n if (UTSiOS.available(\"iOS 14, macOS 11.0, *\")) {\n console.log(\"iOS 14, macOS 11.0, *\")\n } else if (UTSiOS.available(\"iOS 13,*\")) {\n console.log(\"iOS 13,*\")\n } else if (UTSiOS.unavailable(\"tvOS 12\")) {\n console.log(\"tvOS 12\")\n }\n return null\n }\n}\n\nexport async function testAsync() {\n uni.showToast()\n uni.showToast()\n uni.showModel()\n return { a: 1 }\n}\n\nexport const showToast1: ShowToast = (msg) => { }\nexport const showToast2: ShowToast = function (msg) { }\nexport const showToast3: ShowToast = function showToast(msg) { }\n","export type ShowToast = (msg: string) => void\n"],"names":[],"mappings":"AACA,oBAAuE;;AADvE,aAAgC;;iBCApB,eAAa,KAAK,MAAM,KAAK,IAAI;ADIhB;;aAAxB;IACH,iBAAM,MAAM,EAAA;IACZ,gBAAK,QAAM,EAAA;IACX,wBAAW,KAAK,kBAAkB,IAAI,GAAA;IACtC,qBAAQ,KAAK,kBAAkB,IAAI,GAAA;IACnC,yBAAY,KAAK,kBAAkB,IAAI,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;oCAJjC,MAAM;kCACP,QAAM;8CACA,KAAK,kBAAkB,IAAI;wCAC9B,KAAK,kBAAkB,IAAI;gDACvB,KAAK,kBAAkB,IAAI;;AACzC;AAEe,YAAS,eAAe,EAAA,SAAS,qBAAqB,EAAE;IACjE,kBACD,OAAQ,OACR,SAAU,SACV,gBAAiB,kBAAkB,KAAK,CAAC,KAAK;IAEjD,IAAM,MAAM;QACV,CAAA,SAAQ;QACR,CAAA,QAAO,SAAS,OAAO,CAAC,YAAY,GAAG,GAAG;QAC1C,CAAA,aAAY,SAAS,OAAO,CAAC,YAAY,IAAI,SAAS,YAAY,CAAC,QAAQ;MAC5E;IACD,IAAI,QAAQ,OAAO,IAAI,GAAI,EAAE;QAC3B,QAAQ,OAAO,EAAE;IACnB;IACA,IAAI,QAAQ,QAAQ,IAAI,GAAI,EAAE;QAC5B,QAAQ,QAAQ,EAAE;IACpB;AACF;AAEO,YAAS,MAAM,EAAA,yBAAgB,IAAI,KAAG,MAAM,CAAC;IAClD,QAAQ,GAAG,CAAC;QAAE,KAAK;MAAK;IACxB,QAAQ,GAAG,CAAC;IAKZ,QAAQ,GAAG,CAAC;IAGZ,QAAQ,GAAG,CAAC;IAMZ,QAAQ,GAAG,CAAC;IAKZ,QAAQ,GAAG,CAAC,mBAAmB;IAC/B,IAAM,cAAI,CAAC,CAAC;IACZ,QAAQ,GAAG,CAAC,CAAC;IACb,OAAO;AACT;AAEA;;aAAM;AAAQ;AACP;;aAAM;IACX,sBAAc;QACR;IACN;IACA,YAAA,UAAQ,MAAM,EAAQ;QACpB;YACE,QAAQ,GAAG,CAAC;cACb;QACD;YACE,QAAQ,GAAG,CAAC;cACb;QACD,qCAA+C;YAC7C,QAAQ,GAAG,CAAC;QACd,OAAO,wBAAkC;YACvC,QAAQ,GAAG,CAAC;QACd,OAAO,yBAAmC;YACxC,QAAQ,GAAG,CAAC;QACd;QACA,OAAO,GAAI;IACb;AACF;AAEO;YAAe,mCAAY;IAChC,gBAAI,SAAS;IACb,gBAAI,SAAS;IACb,gBAAI,SAAS;IACb,OAAO;QAAE,CAAA,IAAG,CAAC;MAAE;AACjB;AAEO,WAAM,wBAAwB;GAAC;;AAC/B,WAAM,wBAAwB;CAAU,EAAA,GAAG;;AAC3C,WAAM,wBAAwB;CAAmB,EAAA,GAAG;;AAtF9B;;;IAC3B,WAAA,MAAM,MAAM,EAAA;IACZ,WAAA,KAAK,QAAM,EAAA;IACX,WAAA,SAAQ,aAA8B;IACtC,WAAA,MAAK,aAA8B;IACnC,WAAA,UAAS,aAA8B;AACzC;+BAEuC,EAAA,SAAS,+BAAqB;;;;;SALxD,KAAK;yBAAL;;;SACH,KAAK;sBAAL;;;SACI,KAAK;0BAAL;;;;wBAsBQ,0BAAuB,MAAM;;;IAA7B;;;;;;8BAgCZ,MAAM;;;;;;;;6BC/DS,KAAK,MAAM,KAAK,IAAI;sBAApB;;6BAAA,KAAK,MAAM,KAAK,IAAI;sBAApB;;6BAAA,KAAK,MAAM,KAAK,IAAI;sBAApB;;;;;4CDYc,EAAA,SAAS,+BAAqB;kCAA9B;;qCAmBjB,0BAAuB,MAAM;yBAA7B;;;;;;0CC/BG,KAAK,MAAM,KAAK,IAAI;8BAApB;;0CAAA,KAAK,MAAM,KAAK,IAAI;8BAApB;;0CAAA,KAAK,MAAM,KAAK,IAAI;8BAApB"}
\ No newline at end of file
{"version":3,"sources":["uni_modules/test-uniplugin/utssdk/app-ios/index.uts","uni_modules/test-uniplugin/utssdk/interface.uts"],"sourcesContent":["import { UIDevice } from 'UIKit'\nimport { CLLocationManager, CLAuthorizationStatus } from 'CoreLocation'\nimport { ShowToast } from '../interface.uts'\n\ntype GetBatteryInfoOptions = {\n name: string\n pwd: number\n success?: (res: UTSJSONObject) => void\n fail?: (res: UTSJSONObject) => void\n complete?: (res: UTSJSONObject) => void\n}\n\nexport default function getBatteryInfo(options: GetBatteryInfoOptions) {\n new UIAlertController(\n (title = title),\n (message = message),\n (preferredStyle = UIAlertController.Style.alert)\n )\n const res = {\n errMsg: 'getBatteryInfo:ok',\n level: UIDevice.current.batteryLevel * 100,\n isCharging: UIDevice.current.batteryState == UIDevice.BatteryState.charging,\n }\n if (options.success != null) {\n options.success!(res)\n }\n if (options.complete != null) {\n options.complete!(res)\n }\n}\n\nexport function test1(callback: () => void): string {\n console.log({ \"a\": \"b\" })\n console.log('test1')\n\n\n\n\n console.log('def ios')\n\n\n console.log('ndef android')\n\n\n\n\n\n console.log('def android || def ios')\n\n\n\n\n console.log(CLLocationManager, CLAuthorizationStatus)\n const a = -3\n console.log(~a)\n return 'test1'\n}\n\nclass Test1 { }\nexport class Test {\n constructor() {\n new Test1()\n }\n test(): string | null {\n if (UTSiOS.macros(\"swift(>=1)\")) {\n console.log(\"swift(>=1)\")\n }\n if (UTSiOS.macros(\"arch(i386) || arch(arm)\")) {\n console.log(\"arch(i386) || arch(arm)\")\n }\n if (UTSiOS.available(\"iOS 14, macOS 11.0, *\")) {\n console.log(\"iOS 14, macOS 11.0, *\")\n } else if (UTSiOS.available(\"iOS 13,*\")) {\n console.log(\"iOS 13,*\")\n } else if (UTSiOS.unavailable(\"tvOS 12\")) {\n console.log(\"tvOS 12\")\n }\n return null\n }\n}\n\nexport async function testAsync() {\n uni.showToast()\n uni.showToast()\n uni.showModel()\n return { a: 1 }\n}\n\nexport const showToast1: ShowToast = (msg) => { }\nexport const showToast2: ShowToast = function (msg) { }\nexport const showToast3: ShowToast = function showToast(msg) { }\n","export type ShowToast = (msg: string) => void\n"],"names":[],"mappings":"AACA,oBAAuE;;AADvE,aAAgC;;iBCApB,eAAa,KAAK,MAAM,KAAK,IAAI;ADIhB;;aAAxB;;;;IACH,iBAAM,MAAM,EAAA;IACZ,gBAAK,QAAM,EAAA;IACX,wBAAW,KAAK,kBAAkB,IAAI,GAAA;IACtC,qBAAQ,KAAK,kBAAkB,IAAI,GAAA;IACnC,yBAAY,KAAK,kBAAkB,IAAI,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;oCAJjC,MAAM;kCACP,QAAM;8CACA,KAAK,kBAAkB,IAAI;wCAC9B,KAAK,kBAAkB,IAAI;gDACvB,KAAK,kBAAkB,IAAI;;AACzC;AAEe,YAAS,eAAe,EAAA,SAAS,qBAAqB,EAAE;IACjE,kBACD,OAAQ,OACR,SAAU,SACV,gBAAiB,kBAAkB,KAAK,CAAC,KAAK;IAEjD,IAAM,MAAM;;QACV,CAAA,SAAQ;QACR,CAAA,QAAO,SAAS,OAAO,CAAC,YAAY,GAAG,GAAG;QAC1C,CAAA,aAAY,SAAS,OAAO,CAAC,YAAY,IAAI,SAAS,YAAY,CAAC,QAAQ;MAC5E;IACD,IAAI,QAAQ,OAAO,IAAI,GAAI,EAAE;QAC3B,QAAQ,OAAO,EAAE;IACnB;IACA,IAAI,QAAQ,QAAQ,IAAI,GAAI,EAAE;QAC5B,QAAQ,QAAQ,EAAE;IACpB;AACF;AAEO,YAAS,MAAM,EAAA,yBAAgB,IAAI,KAAG,MAAM,CAAC;IAClD,QAAQ,GAAG,CAAC;QAAE,KAAK;MAAK;IACxB,QAAQ,GAAG,CAAC;IAKZ,QAAQ,GAAG,CAAC;IAGZ,QAAQ,GAAG,CAAC;IAMZ,QAAQ,GAAG,CAAC;IAKZ,QAAQ,GAAG,CAAC,mBAAmB;IAC/B,IAAM,cAAI,CAAC,CAAC;IACZ,QAAQ,GAAG,CAAC,CAAC;IACb,OAAO;AACT;AAEA;;aAAM;;;;AAAQ;AACP;;aAAM;;;;IACX,sBAAc;QACR;IACN;IACA,YAAA,UAAQ,MAAM,EAAQ;QACpB;YACE,QAAQ,GAAG,CAAC;cACb;QACD;YACE,QAAQ,GAAG,CAAC;cACb;QACD,qCAA+C;YAC7C,QAAQ,GAAG,CAAC;QACd,OAAO,wBAAkC;YACvC,QAAQ,GAAG,CAAC;QACd,OAAO,yBAAmC;YACxC,QAAQ,GAAG,CAAC;QACd;QACA,OAAO,GAAI;IACb;AACF;AAEO;YAAe,mCAAY;IAChC,gBAAI,SAAS;IACb,gBAAI,SAAS;IACb,gBAAI,SAAS;IACb,OAAO;QAAE,CAAA,IAAG,CAAC;MAAE;AACjB;AAEO,WAAM,wBAAwB;GAAC;;AAC/B,WAAM,wBAAwB;CAAU,EAAA,GAAG;;AAC3C,WAAM,wBAAwB;CAAmB,EAAA,GAAG;;AAtF9B;;;IAC3B,WAAA,MAAM,MAAM,EAAA;IACZ,WAAA,KAAK,QAAM,EAAA;IACX,WAAA,SAAQ,aAA8B;IACtC,WAAA,MAAK,aAA8B;IACnC,WAAA,UAAS,aAA8B;AACzC;+BAEuC,EAAA,SAAS,+BAAqB;;;;;SALxD,KAAK;yBAAL;;;SACH,KAAK;sBAAL;;;SACI,KAAK;0BAAL;;;;wBAsBQ,0BAAuB,MAAM;;;IAA7B;;;;;;8BAgCZ,MAAM;;;;;;;;6BC/DS,KAAK,MAAM,KAAK,IAAI;sBAApB;;6BAAA,KAAK,MAAM,KAAK,IAAI;sBAApB;;6BAAA,KAAK,MAAM,KAAK,IAAI;sBAApB;;;;;4CDYc,EAAA,SAAS,+BAAqB;kCAA9B;;qCAmBjB,0BAAuB,MAAM;yBAA7B;;;;;;0CC/BG,KAAK,MAAM,KAAK,IAAI;8BAApB;;0CAAA,KAAK,MAAM,KAAK,IAAI;8BAApB;;0CAAA,KAAK,MAAM,KAAK,IAAI;8BAApB"}
\ No newline at end of file
......@@ -5,7 +5,10 @@ import DCloudUTSExtAPI;
public typealias ShowToast = (_ msg: String) -> Void;
@objc(UTSSDKModulesTestUniPluginGetBatteryInfoOptions)
@objcMembers
public class GetBatteryInfoOptions : NSObject, UTSObject {
public class GetBatteryInfoOptions : NSObject, UTSObject, IUTSSourceMap {
public func __$getOriginalPosition() -> UTSSourceMapPosition? {
return UTSSourceMapPosition("GetBatteryInfoOptions", "uni_modules/test-uniplugin/utssdk/app-ios/index.uts", 5, 6);
}
public var name: String!;
public var pwd: NSNumber!;
public var success: ((_ res: UTSJSONObject) -> Void)?;
......@@ -46,6 +49,7 @@ public class GetBatteryInfoOptions : NSObject, UTSObject {
public func getBatteryInfo(_ options: GetBatteryInfoOptions) {
UIAlertController(title: title, message: message, preferredStyle: UIAlertController.Style.alert);
var res = UTSJSONObject([
"__$originalPosition": UTSSourceMapPosition("res", "uni_modules/test-uniplugin/utssdk/app-ios/index.uts", 19, 9),
"errMsg": "getBatteryInfo:ok",
"level": UIDevice.current.batteryLevel * 100,
"isCharging": UIDevice.current.batteryState == UIDevice.BatteryState.charging
......@@ -72,11 +76,17 @@ public func test1(_ callback:@escaping () -> Void) -> String {
}
@objc(UTSSDKModulesTestUniPluginTest1)
@objcMembers
public class Test1 : NSObject {
public class Test1 : NSObject, IUTSSourceMap {
public func __$getOriginalPosition() -> UTSSourceMapPosition? {
return UTSSourceMapPosition("Test1", "uni_modules/test-uniplugin/utssdk/app-ios/index.uts", 59, 7);
}
}
@objc(UTSSDKModulesTestUniPluginTest)
@objcMembers
public class Test : NSObject {
public class Test : NSObject, IUTSSourceMap {
public func __$getOriginalPosition() -> UTSSourceMapPosition? {
return UTSSourceMapPosition("Test", "uni_modules/test-uniplugin/utssdk/app-ios/index.uts", 60, 14);
}
override public init(){
Test1();
}
......
......@@ -31,6 +31,7 @@ export {
DefineOptions,
Defines,
getUniExtApiProviderRegisters,
resolveEncryptUniModule,
} from './uni_modules'
export { M } from './messages'
......
......@@ -57,4 +57,5 @@ export default {
'uvue.unsupported': 'uvue does not support {platform} platform',
'uvue.dev.watching.end.empty':
'The compilation outcome remains unchanged; there is no need to synchronize.',
'uni_modules.import': 'Plug-in [{0}] only supports @/uni_modules/{1}.',
} as const
......@@ -57,4 +57,6 @@ export default {
'uvue.unsupported': 'uvue 暂不支持 {platform} 平台',
'uvue.dev.watching.end.empty':
'本次代码变更,编译结果未发生变化,跳过同步手机端程序文件。',
'uni_modules.import':
'插件[{0}]仅支持 @/uni_modules/{1} 方式引入,不支持直接导入内部文件 {2}。',
} as const
......@@ -5,6 +5,7 @@ import { sync } from 'fast-glob'
import type { UTSTargetLanguage } from './uts'
import { normalizePath } from './utils'
import { genUTSComponentPublicInstanceIdent } from './easycom'
import { M } from './messages'
export type DefineOptions = {
name?: string
......@@ -665,6 +666,14 @@ export function resolveEncryptUniModule(
if (index !== -1) {
const uniModuleId = parts[index + 1]
if (uniModuleId in encryptUniModules) {
if (parts[index + 2]) {
console.warn(
M['uni_modules.import']
.replace('{0}', uniModuleId)
.replace('{1}', uniModuleId)
.replace('{2}', parts.slice(index + 2).join('/'))
)
}
// 原生平台走旧的uts-proxy
return normalizePath(
path.join(
......
......@@ -193,7 +193,7 @@ describe('uts:sourceMap', () => {
)
const { line, column, source } = await originalPositionFor({
sourceMapFile,
line: 48,
line: 51,
column: 0,
})
......
......@@ -5,6 +5,7 @@ import {
isWindows,
normalizePath,
requireResolve,
resolveEncryptUniModule,
resolveUTSAppModule,
resolveUTSModule,
uni_app_x_extensions,
......@@ -38,6 +39,14 @@ export const customResolver: ResolverFunction = (updatedId, importer) => {
requireResolve(updatedId, importer || process.env.UNI_INPUT_DIR)
)
}
const resolveId = resolveEncryptUniModule(
updatedId,
process.env.UNI_UTS_PLATFORM,
process.env.UNI_APP_X === 'true'
)
if (resolveId) {
return resolveId
}
return requireResolve(updatedId, importer || process.env.UNI_INPUT_DIR)
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册